Selenium Grid Hub和节点问题

HELPPPP PLEASSEE!

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

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

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

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

我会帮助我所做的一切。

集线器的setup命令:

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

(我更改了默认端口号)

节点的setup命令:

java -jar -Dwebdriver.ie.driver =“C:\ Libraries \ IEDriverServer.exe”-Dwebdriver.chrome.driver =“C:\ Libraries \ 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个测试用例吗?

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

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