我正在寻找一种推荐/最有效的方式来使Selenium测试在多个浏览器中依次执行。我正在测试的网站并不大,所以我还不需要并行解决方案。
我有一个平时测试的建立方法[SetUp],[TearDown]以及[Test]。当然,SetUp实例将ISelenium使用我要测试的任何浏览器实例化一个新对象。
[SetUp]
[TearDown]
[Test]
ISelenium
因此,我想以编程方式说:该测试将依次在Chrome,IE和Firefox上运行。我怎么做?
编辑:
这可能会有所帮助。成功构建后,我们将使用CruiseControl.NET来启动NUnit测试。有什么方法可以将参数传递给NUnit可执行文件,然后在测试中使用该参数?这样,我们可以使NUnit在不同的浏览器参数下运行多次。
NUnit 2.5+现在支持通用测试治具,使在多个浏览器中的测试非常简单。 http://www.nunit.org/index.php?p=testFixture&r=2.5
运行以下示例将两次执行GoogleTest,一次是在Firefox中,一次是在IE中。
using NUnit.Framework; using OpenQA.Selenium; using OpenQA.Selenium.Firefox; using OpenQA.Selenium.IE; using System.Threading; namespace SeleniumTests { [TestFixture(typeof(FirefoxDriver))] [TestFixture(typeof(InternetExplorerDriver))] public class TestWithMultipleBrowsers<TWebDriver> where TWebDriver : IWebDriver, new() { private IWebDriver driver; [SetUp] public void CreateDriver () { this.driver = new TWebDriver(); } [Test] public void GoogleTest() { driver.Navigate().GoToUrl("http://www.google.com/"); IWebElement query = driver.FindElement(By.Name("q")); query.SendKeys("Bread" + Keys.Enter); Thread.Sleep(2000); Assert.AreEqual("bread - Google Search", driver.Title); driver.Quit(); } } }