我正在尝试使用appium&在2个设备上运行并行测试.硒网格,但由于某种原因,它仅在第一台节点服务器(和第一台设备)上运行,而在第二台服务器上什么也没有发生.
另外,如果我关闭第一台服务器并运行测试,那么该测试将在第二台服务器上运行,因此服务器应该没有任何问题.
是否必须提供一些参数才能将其设置为parallel?
谢谢您的帮助 !
这是我的文件:
第一个服务器Json文件:
{ "capabilitIEs": [ { "browsername": "SamsungS6", "devicename": "04157df40862d02f", "version":"6.0.1", "maxInstances": 3, "platform":"ANDROID" } ], "configuration": { "cleanUpCycle":2000, "timeout":30000, "proxy": "org.openqa.grID.selenium.proxy.DefaultRemoteProxy", "url":"http://localhost:4491/wd/hub", "host": "localhost", "port": 4491, "maxSession": 5, "register": true, "registerCycle": 5000, "hubPort": 4433, "hubHost": "localhost" }}
第二个服务器Json文件:
{ "capabilitIEs": [ { "browsername": "OnePlusOne", "devicename": "14b2b276", "version":"6.0.1", "maxInstances": 3, "platform":"ANDROID", "platformname":"ANDROID" } ], "configuration": { "cleanUpCycle":2000, "timeout":30000, "proxy": "org.openqa.grID.selenium.proxy.DefaultRemoteProxy", "url":"http://localhost:4490/wd/hub", "host": "localhost", "port": 4490, "maxSession": 5, "register": true, "registerCycle": 5000, "hubPort": 4433, "hubHost": "localhost" }}
运行硒网格:
java -jar selenium-server.jar -role hub -port 4433
运行第一个方案
node.exe node_modules\appium\bin\appium.Js --nodeconfig myfirstscenario.Json -p 4490 -U 14b2b276 -bp 5490 --Chromedriver-port 6490
运行第二种情况
node.exe node_modules\appium\bin\appium.Js --nodeconfig mysecondscenario.Json -p 4491 -U 04157df40862d02f -bp 5491 --Chromedriver-port 6491
考试
@BeforeTest(alwaysRun = true)public voID setUp(){ try { DesiredCapabilitIEs capabilitIEs = new DesiredCapabilitIEs(); capabilitIEs.setCapability(MobileCapabilityType.PLATFORM_name, "ANDROID"); capabilitIEs.setCapability(MobileCapabilityType.DEVICE_name, ""); capabilitIEs.setCapability(AndroIDMobileCapabilityType.APP_PACKAGE, appPackage); capabilitIEs.setCapability(AndroIDMobileCapabilityType.APP_ACTIVITY, appActivity); driver = new AndroIDDriver(new URL("http://localhost:4433/wd/hub"), capabilitIEs); new webdriverwait(driver, 60); } catch (MalformedURLException e) { e.printstacktrace(); }}@Testpublic voID test(){ System.out.println("hello world"); try { sleep(6000); } catch (InterruptedException e) { e.printstacktrace(); }}@AfterTest(alwaysRun = true)public voID closeDriver(){ driver.quit();}
解决方法:
问题是因为您既未提供DesiredCapabilitIEs中唯一的内容,也未添加自定义CapabilityMatcher.默认情况下,网格仅使用browsername,版本和平台来决定将测试路由到哪个节点.
这是解决问题的一种方法.将一个名为“ applicationname”的新密钥添加到您的nodeConfig.Json中,并分别设置“ OnePlusOne”和“ SamsungS6”的值.然后,将一个名为“ applicationname”的新功能添加到测试中所需的功能,然后分别设置“ OnePlusOne”和“ SamsungS6”的值.之后,您的测试将被路由到正确的设备.
您可以在我的博客文章here中了解有关此内容的更多信息.
总结以上是内存溢出为你收集整理的Android-使用Appium和Selenium网格进行并行测试全部内容,希望文章能够帮你解决Android-使用Appium和Selenium网格进行并行测试所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)