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是可以运行的并行线程数。