2017-05-04 124 views
1

我找到了在多个浏览器上逐一运行测试的方法,但我找不到使用硒网格的方式,以便在多个浏览器上并行运行我的测试(使用C# )。 这是我使用的是什么目前:在多个浏览器上并行运行测试

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(); 
    } 
    } 
} 

Run Selenium tests in multiple browsers one after another from C# NUnit

回答

2
  1. 在Visual Studio中的测试资源管理应该是对线的左侧三条线为圆形的按钮,右边的箭头(如果你把鼠标悬停在它上面,说'并行运行测试')。确保选中此项(选中时,其背景将与测试浏览器面板颜色不同)。

  2. 对于每个要并行添加的测试,请添加属性Parallelizable。所以你的方法上面的东西看起来像[Test]将变成[Test, Parallelizable]

  3. 额外 - 这不适用于你,但将适用于一些人,所以我会添加它。如果您的驱动程序是一个静态实例(如Singleton),则需要使用[ThreadStatic]对其进行注释,否则将在同一驱动程序上调用不同的测试。

+0

我应该在代码中插入哪些代码,以便在Chrome和IE上运行测试?和我上面的例子一样吗? –

+0

你刚刚把我留在我头上的头发@理查德城堡。建议3是我正在寻找的。谢谢! –

相关问题