Selenium Grid Hub和节点问题

时间:2016-08-21 12:06:46

标签: c# selenium selenium-webdriver nunit selenium-grid

HELPPPP PLEASSEE!

现在我已经使用以下内容设置了selenium网格:

-Machine A上有一个集线器和节点(集线器在同一台机器上的节点)。 -Machine B(与集线器不同的机器不一样),上面有2个节点。

因此,我现在拥有一个集线器和3个节点:集线器机器(机器A)上的1个节点也充当节点,而另一个物理节点机器上的节点2(机器B)。

因此,通过此设置,我可以并行AFAIK运行3个测试用例。

我会帮助我所做的一切。

集线器的设置命令:

  

java -jar selenium-server-standalone-3.0.0-beta2.jar -role hub -port 4445

(我更改了默认端口号)

节点的设置命令:

  

java -jar -Dwebdriver.ie.driver =" C:\ Libraries \ IEDriverServer.exe" -Dwebdriver.chrome.driver =" C:\库\ chromedriver.exe" selenium-server-standalone-3.0.0-beta2.jar -role webdriver -hub http://HubIP:4445/grid/register -port 4453

然后是C#中用于设置和测试的代码:

     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 Grid_Test
    {
        private IWebDriver driver;
        [SetUp]
        public void Setup()
        {


            ///Chrome setup///
          DesiredCapabilities capabilities = new DesiredCapabilities();
          capabilities = DesiredCapabilities.Chrome();
          capabilities.SetCapability(CapabilityType.BrowserName, "chrome");
          capabilities.SetCapability("marionette", false);
          capabilities.SetCapability(CapabilityType.Platform, new Platform(PlatformType.Any));
          driver = new RemoteWebDriver(new Uri("http://10.10.17.223:4445/wd/hub"), capabilities);

        }



        [Test]

        [Parallelizable]
        public void SeleniumSearch()
        {
            //var driver = new FirefoxDriver();
            driver.Navigate().GoToUrl("http://www.seleniumhq.org/");

        }

        [TearDown]
        public void Teardown()
        {

            driver.Quit();
        }
    }

    [TestFixture]
    [Parallelizable]
    public class Test_Grid2
    {
        IWebDriver driver2;
        [SetUp]
        public void Setup()
        {

            ///Chrome setup///
           DesiredCapabilities capabilities = new DesiredCapabilities();
           capabilities = DesiredCapabilities.Chrome();
           capabilities.SetCapability(CapabilityType.BrowserName, "chrome");
           capabilities.SetCapability("marionette", false);
           capabilities.SetCapability(CapabilityType.Platform, new Platform(PlatformType.Any));
           driver2 = new RemoteWebDriver(new Uri("http://10.10.17.223:4445/wd/hub"), capabilities);
        }


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

        }


        [TearDown]
        public void Teardown()
        {
            driver2.Quit();
        }
    }

    [TestFixture]
    [Parallelizable]
    public class Test_Grid3
    {
        IWebDriver driver3;
        [SetUp]
        public void Setup()
        {



            DesiredCapabilities capabilities = new DesiredCapabilities();
            capabilities = DesiredCapabilities.Chrome();
            capabilities.SetCapability(CapabilityType.BrowserName, "chrome");
            capabilities.SetCapability("marionette", false);
            capabilities.SetCapability(CapabilityType.Platform, new Platform(PlatformType.Any));
            driver3 = new RemoteWebDriver(new Uri("http://10.10.17.223:4445/wd/hub"), capabilities);


        }


        [Test]
        [Parallelizable]
        public void SeleniumSearch()
        {
            //var driver = new FirefoxDriver();
            driver3.Navigate().GoToUrl("http://www.seleniumhq.org/");

        }

        [TearDown]
        public void Teardown()
        {
            driver3.Quit();
        }
    }

}

我现在有两个主要问题:

1)当我运行测试时,它应该并行运行3个测试,这不会发生同时运行的2个测试并且我不知道为什么。

2)测试不在Chrome浏览器上运行,它只是打开页面而测试不会继续。命令中的错误说: Chrome无法启动:崩溃。

知道来自哪些问题

非常感谢提前。

修改
- 通过再次卸载和安装chrome解决了第二个问题。我不知道旧浏览器的问题是什么。

EDIT2 - 解决了第一个问题,我知道网格社区和Nunit一样非常差,仅运行2个测试的问题是因为 LevelOfParallelism 属性的默认值 所以要增加并行运行的测试数量,请在assemblyInfo.cs文件中写入 [assembly:LevelOfParallelism(X)] 其中X是可以运行的并行线程数。

  

正在运行与集线器核心数量相关的多个测试   只要 ??因为如果是这样我的集线器只有2个内核所以也许这就是   案件。但这对集线器必须具有非常有限的限制   很多核心。我想问一下,因为节点默认情况下可以有11个   实例(5个chrome,5个FF,1个IE),它能够运行11个测试用例   在那些实例上并行??!

1 个答案:

答案 0 :(得分:0)

  • 通过再次卸载和安装chrome来解决第二个问题。我不知道旧浏览器的问题是什么。

  • 解决了第一个问题,我知道网格社区在这里和Nunit都很差,运行2个测试的问题仅仅是因为默认LevelOfParallelism属性的值,以便增加并行运行的测试数量在assemblyInfo.cs文件中写这个 [assembly:LevelOfParallelism(X)] 其中X是可以运行的并行线程数。 / p>