根据Appium documentation,它支持在一个会话中自动化多个Android应用程序。
我在网上寻找任何例子但没有成功。有人可以分享一个例子吗?
我正在测试Android应用程序并使用Java编码。
1)每个不同的端口需要运行2个appium
baseUrl_1 = "http://appiumAddress:4726/wd/hub"
baseUrl_2 = "http:/appiumAddress:4725/wd/hub"
2)你需要2个不同的android模拟器实例。确保你只运行不同的模拟器(我的意思是它可以是相同的版本,但第二个更改名称)。如果你用同样的方式运行它,显然appium会变得混乱。
3)您需要为每个模拟器设置功能:
caps1 = {
platformName:"ANDROID",
platformVersion: "4.4",
deviceName: "emulator-5554",
app: "app1Path.apk",
browserName: "",
}
caps2 = {
platformName:"ANDROID",
platformVersion: "4.4",
deviceName: "emulator-5556",
app: "app2Path.apk",
browserName: ""
}
4)分别在try catch中为每个app编写会话
驱动-1
try {
driver_1 = new AndroidDriver<MobileElement>(new URL(baseUrl_1), caps1);
} catch (Exception e) {
e.printStackTrace();
}
司机2
try {
driver_2 = new AndroidDriver<MobileElement>(new URL(baseUrl_2), caps2);
} catch (Exception e) {
e.printStackTrace();
}
当你运行你的测试1应用程序将显示在1个模拟器和第二个应用程序与第二个模拟器。这就是它的一切取决于你的脚本或你正在使用的任何环境。
我希望这有帮助
有关更多信息,请检查此
https://discuss.appium.io/t/how-to-use-to-2-apps-sequentially-in-one-session/1806/6
我认为Appium Studio可以为此提供更好的解决方案。在Appium Studio中,以下是使用相同驱动程序实例启动2个应用程序的代码。
client.launch(String activityURL1, boolean instrument, boolean stopIfRunning);
//work on app 1
client.applicationClose(String activityURL1);
client.launch(String activityURL2, boolean instrument, boolean stopIfRunning);
//work on app 2
client.applicationClose(String activityURL2);
activityURL - 要启动的应用程序的活动URL。您可以将apk文件上传到他们的工作室。
您可以按顺序处理应用程序,或者甚至可以在app1上工作,将其推送到后台,在app2上工作,将app1带到前台并使用它。