如何为Appium上的2个不同设备运行JUnit测试?
我想知道如何运行可以针对2种不同设备的JUnit测试?如何为Appium上的2个不同设备运行JUnit测试?
我看到您可以设置Appium来定位设备并为该Appium服务器设置端口,但是如何让JUnit测试2个不同的设备?
设置为Appium上设备(32456和43364):
node . -p 4492 -bp 2251 -U 32456
node . -p 4491 -bp 2252 -U 43364
这将运行用不同的端口2台Appium服务器。
在我的JUnit测试中,我为AndroidDriver设置了端口。你如何能够使用相同的junit测试测试2个不同的设备?
driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), cap);
我们无法拥有2套JUnit的代码中的驱动程序到不同的端口
driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), cap);
driver2 = new AndroidDriver(new URL("http://127.0.0.1:4724/wd/hub"), cap);
这是不可能的,因为我们可能并不总是知道不同的设备端口。我们基本上需要让JUnit测试工作或者是可以通过测试的可配置端口(不知道这是否可能)。
是否有可能将值传递给JUnit测试?我们正在使用JUnitCore进行测试。
driver = new AndroidDriver(new URL("http://127.0.0.1:"+ SOME_PASSED_IN_PORT + "/wd/hub"), cap);
创建多个驱动器作为解决方案之一
driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), cap);
相当于
driver = new AndroidDriver(new URL("http://127.0.0.1:" + "4723" + /wd/hub"), cap);
所以,你可以在一个简单的方式创建并同时使用两种不同的驱动程序,因为 -
String port1 = "4491"; //assuming this being the port number
String port2 = "4492";
driver1 = new AndroidDriver(new URL("http://127.0.0.1:" + port1 + "/wd/hub"), cap);
driver2 = new AndroidDriver(new URL("http://127.0.0.1:" + port2 + "/wd/hub"), cap); //also the cap could differ in both the cases
注意:您可以根据您的要求向驱动程序提供不同/类似的功能。此外,这是一个非常天真的并行执行方法,尝试使用Selenium-Grid
寻求解决方案,以获得有效的方法。
是的,我已经试过了但我应该指定这是不可能的,因为我们可能并不总是知道不同的设备端口。我们基本上需要让JUnit测试工作或者是可以通过测试的可配置端口(不知道这是否可能)。也许我们需要制作另一台服务器来控制哪个appium实例。我会更新这个问题。 – ALM
使用硒电网
硒网格可以让你在并行不同的设备上运行测试。也就是说,针对不同的设备同时运行多个测试。本质上,Selenium-Grid支持分布式测试执行。它允许在分布式测试执行环境中运行您的测试。
Selenium Grid是否允许您进行Junit测试并针对不同的设备运行它?它如何设置etten中的captern,其中driver = new AndroidDriver(新URL(“http://127.0.0.1:4723/wd/hub”),cap); – ALM
使用硒电网 –