我正在尝试在 Andriod 平台的多个设备上运行脚本,但我无法运行。我浏览了 Github 页面以获取解决方案,并找到以下关于从单个 Appium 服务器支持多个 (Android) 设备的链接
但是,我仍然无法弄清楚多个设备的设置环境。
我正在尝试在 Andriod 平台的多个设备上运行脚本,但我无法运行。我浏览了 Github 页面以获取解决方案,并找到以下关于从单个 Appium 服务器支持多个 (Android) 设备的链接
但是,我仍然无法弄清楚多个设备的设置环境。
以下代码将为您提供帮助。
//从单个appium服务器运行多个模拟器
public class Test{
WebDriver driver = null;
int timeOut=180;
int port=-1;
Test(int port){
this.port=port;
}
public void testEmulator(int p) throws Exception {
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability(CapabilityType.BROWSER_NAME, "Android");
capabilities.setCapability(CapabilityType.VERSION, "4.3");
capabilities.setCapability(CapabilityType.PLATFORM, "Windows");
capabilities.setCapability("udid","emulator-"+p);
capabilities.setCapability("app-package", "your.app.pkg");
capabilities.setCapability("app-activity",
"your.app.pkg.Activity");
driver = new RemoteWebDriver(new URL("http://127.0.0.1:"+this.port+"/wd/hub"),
capabilities);
driver.manage().timeouts().implicitlyWait(timeOut, TimeUnit.SECONDS);
Thread.sleep(50000);
}
public void tearDown() {
if (driver != null)
driver.quit();
}
public void runTest() {
try {
testEmulator(5554); // for emulator on port 5554
tearDown();
testEmulator(5556); // for emulator on port 5556
tearDown();
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
new Test(4723).runTest(); // appium server port 4723
}
}
在多个设备上运行 appium 脚本
在这里,我创建了简单的基于 Java 线程的程序
对于在多个 android 设备上的顺序或并行执行,我们需要 -
检查下面的帖子,它使用 Java Thread 和 Runnable 接口进行并行执行 - http://automationtestinghub.com/appium-parallel-execution/
如果您在谈论 GUI,我猜您的环境是 Windows?然后您可以使用以下批次:
@ECHO OFF
cd "C:\Program Files (x86)\Appium\node_modules\appium"
node server.js --app "<path-to-your-project>\bin\<app-name>.apk" -p <port-to-listen-on> -dp <device-port-to-connect-to-device-on>
有了这个,您应该能够启动两个不同的 Appium 服务器并并行使用它们。
有关所有可用命令的完整列表,请键入node server.js --help
。
如果您通过 npm 安装 Appium,则 server.js 的路径将类似于“C:\Users\\AppData\Roaming\npm\node_modules\appium”。
对于多个 android 设备,使用参数启动您的 appium 服务器:
<device1_serial>
<device2_serial>
您可以选择任何端口,但请确保它们在您的代码中不同,在您创建驱动程序的位置,提供服务器 url:
server1_url = "http://127.0.0.1:4475/wd/hub"
server2_url = "http://127.0.0.1:4476/wd/hub"
完毕。