使用 C# 和 selenium 网格进行并行测试

parallel test with C# and selenium grid

我有一个测试,我正在尝试 运行 在多个浏览器(IE、Chrome 和 Firefox)中并行。

[SetUp]
        public void TestInitialize()
        {
            //EnvironmentAccess.LoadEnvironment();

            // Create a new instance of the Firefox driver
            //driver = new FirefoxDriver();

            DesiredCapabilities capabilities = new DesiredCapabilities();
            capabilities = DesiredCapabilities.Firefox();
            capabilities.SetCapability(CapabilityType.BrowserName, "firefox");

        capabilities.SetCapability(CapabilityType.Platform, new Platform(PlatformType.Windows));

        driver = new RemoteWebDriver(new Uri("http://localhost:4444/wd/hub"), capabilities);
    }


[Test]
        public void SampleTest()
        {
            string url = "https://google.com";
            try
            {
                driver.Navigate().GoToUrl(url);
            }
//other test code 
}

[TearDown]
        public void TearDown()
        {
            driver.Quit();
            driver.Dispose();
        }

我不知道如何运行 跨多个浏览器。我已经看到它是在 java 中完成的,但我正在尝试通过 c# 来完成。我阅读了有关 gallio 的内容,但无法理解如何将其正确集成到我的代码中。

当您使用远程 webdriver 时,使用它的浏览器由所需的功能决定。 在构建驱动程序时,您需要为其他浏览器提供所需的功能。

您要使用的浏览器也需要安装并注册为节点的能力。

https://code.google.com/p/selenium/wiki/DesiredCapabilities

Gallio 是启动执行运行的绝佳工具,但您可能想探索使用 MBUnit 作为您的测试框架以及 Selenium。当我们在工作中处理这个问题时,我们发现 NUnit 在 运行 可靠地并行测试(如果有的话)方面相当固执。

MBUnit 作为 Nuget 包提供,因此安装很容易。从那里开始,您只需要根据需要重新调整方法上的注释。

我要声明,MBUnit 在这一点上几乎是一个死项目,并且已经有一段时间没有看到积极的发展。话虽如此,我们已经看到在我的团队中使用它取得了很大的成功。它很稳定,性能很好,并行化也很容易。考虑到项目的状态,值得考虑一下,但我确实推荐它。