当前位置: 首页 > 面试题库 >

使用Nunit在C#并行执行中的Selenium Grid

谷梁德容
2023-03-14
问题内容

我刚刚为selenium网格2进行了设置。集线器和节点已启动并正在运行。我正在使用Selenium Webdriver + C#+
Nunit来运行测试,我现在想执行以下操作:

1) 将测试用例分布在不同的节点之间(并行),例如,节点1运行测试x,节点2运行测试y

2)
我需要能够为每个节点配置浏览器和平台类型,我现在要做的就是我做一个设置功能,并且所有节点都使用相同的平台和浏览器,那么如何我通过分配每个节点所需的功能来实现这一目标。

问题是当我运行即将到来的代码时,我发现测试同时运行而不是并行运行。

我的代码快照:

using System;
using OpenQA.Selenium;
using OpenQA.Selenium.Firefox;
using OpenQA.Selenium.Chrome;
using OpenQA.Selenium.Safari;
using OpenQA.Selenium.Edge;
using OpenQA.Selenium.IE;
using OpenQA.Selenium.Support.UI;
using OpenQA.Selenium.Remote;
using NUnit;
using NUnit.Framework;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;


namespace GridTest
{
    [TestFixture]
    [Parallelizable]
    public class Test_Grid
    {
        IWebDriver driver;

        [SetUp]
        public void Setup()
        {

            /////IE Setup/////////
            var capabilities = new DesiredCapabilities("internet explorer", string.Empty, new Platform(PlatformType.Any));
            capabilities.SetCapability("ignoreProtectedModeSettings", true);

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

         }

        //Search google test 
        [Test]
        [Parallelizable]
        public void GoogleSearch()
        {
            string homepage = "http://www.google.com";
            //Navigate to the site
            driver.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(10));

            driver.Navigate().GoToUrl(homepage);

        }

        [Test]
        [Parallelizable]
        public void BingSearch()
        {
            //var driver = new FirefoxDriver();
            driver.Navigate().GoToUrl("http://www.bing.com");

        }


      [TearDown]
       public void Teardown()
        {

           driver.Quit();
        }
    }
}

问题答案:

简单一个…但是您不喜欢答案。:-(

NUnit尚不支持在夹具中并行运行测试方法。它仅并行运行单个灯具。

因此,您需要使用OneTimeSetUp选择正确的浏览器来对要在灯具级别并行运行的事物进行建模。

更新-2019年9月27日

我在三年前写了以上答案,当时的确如此!人们,请仔细阅读这些问题和答案的日期,因为除非删除,否则他们将永远留在这里。

发布答案几个月后,NUnit增加了并行运行单个测试用例(方法)的功能。有关受支持功能的最新信息的最佳来源是NUnit文档,而不是SO!大多数工具都是如此。



 类似资料:
  • 问题内容: 早上好。 我想将Jenkins服务器配置为使用插件 Jenkins NUnit插件 运行NUnit,但是我尝试了很多事情,但是没有用。 我单击按钮添加构建步骤 >> 执行Windows批处理命令, 但是我在这里看到然后我正在配置此表单: “ c:\ program files \ nunit \ bin \ nunit-console.exe” $(项目本地)\ $(DLLTest).

  • 问题内容: 如何实现的?在这里,它说的Java版本是: 但是我找不到C#代码来做到这一点。 问题答案: .NET语言绑定中的对象,方法和属性名称与Java绑定中的对象,方法和属性名称不完全对应。该项目的原则之一是,每种语言绑定都应该使那些习惯于该语言的人“感到自然”。在C#中,您想要执行JavaScript的代码如下

  • 我试图使用Selenium和TestNG进行测试设计,我将每个@test放在一个单独的类中,并对所有类使用once@beforeSuite&@afterSuite,原因是: 代码易于维护 数据驱动,以便能够选择通过文件运行的类。 案例1类: 注意:如果上面的代码在套件中使用单个运行,它就可以正常工作。 问题是它是否像下面的配置那样并行运行。

  • 问题内容: 我有一个测试,可以从数据提供者那里接收数据。我希望此测试与数据提供者的不同值并行运行。 我尝试了类似的方法: } 我收到的输出是: 你好:10 你好:12 你好:17 你好:11 你好:16 你好:14 你好:13 你好:15 产生10个线程,而我在线程池大小中指定5个。您能否告诉我们必须在上述代码段中添加哪些内容来控制数据提供程序线程池的大小。 问题答案: 您需要使用。在和不需要的值

  • 我使用testNg用于使用java的自动化,我使用从excel获取数据并作为参数传递给测试脚本。 假设我在中有10行数据,我的测试用例将按顺序执行10次,但现在我想并行运行这10个测试,同时使用线程。 这能做到吗?如果是的话,有人能给我一个同样的例子吗?

  • 问题内容: 我当前的项目使用NUnit进行单元测试并驱动用Selenium编写的UAT。开发人员通常在VS.Net 2003中使用ReSharper的测试运行器来运行测试,而我们的构建框则通过NAnt启动测试。 我们想并行运行UAT测试,以便我们可以利用Selenium Grid / RC,以便它们能够更快地运行。 是否有人对如何实现这一目标有任何想法?和/或在多个浏览器环境下测试Selenium