Android-使用Appium和Selenium网格进行并行测试

Android-使用Appium和Selenium网格进行并行测试,第1张

概述我正在尝试使用appium&在2个设备上运行并行测试.硒网格,但由于某种原因,它仅在第一台节点服务器(和第一台设备)上运行,而在第二台服务器上什么也没有发生.另外,如果我关闭第一台服务器并运行测试,那么该测试将在第二台服务器上运行,因此服务器应该没有任何问题.是否必须提供一些

我正在尝试使用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网格进行并行测试所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1094576.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存