运行 在多个浏览器上并行测试

Run Tests on multiple browsers in parallel

我找到了 运行 在多个浏览器上一个一个地进行测试的方法,但是我找不到使用 selenium grid 来 运行 我在多个浏览器上并行测试的方法(使用 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

  1. 在 Visual Studio 的测试资源管理器中应该有一个按钮,该按钮具有三行,行的左侧有圆圈,右侧有箭头(如果将鼠标悬停在它上面它说 'Run Tests in Parallel')。确保选中此项(选中时其背景颜色与测试资源管理器面板的颜色不同)。

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

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