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

Yan*_*iav 2 c# selenium selenium-grid

我找到了在多个浏览器上一个接一个地运行测试的方法,但是我找不到一种使用 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 Code Online (Sandbox Code Playgroud)

从 C# NUnit 一个接一个地在多个浏览器中运行 Selenium 测试

小智 5

  1. 在 Visual Studio 的测试资源管理器中,应该有一个按钮,该按钮具有三行,线的左侧带有圆圈,右侧带有箭头(如果将鼠标悬停在它上面,则会显示“并行运行测试”)。确保选中此项(选中时,其背景将与测试资源管理器面板的颜色不同)。

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

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