Mobile Appium-在一个会话中自动化多个Android应用程序

Mobile Appium-在一个会话中自动化多个Android应用程序,mobile,automation,appium,ui-automation,appium-android,Mobile,Automation,Appium,Ui Automation,Appium Android,根据Appium的说法,它支持在一个会话中自动化多个Android应用程序 我在网上找过任何例子,但都没有成功。 有人能举个例子吗 我正在测试一个Android应用程序,并用Java编写代码。1)您需要2个应用程序,每个应用程序运行不同的端口 baseUrl_1 = "http://appiumAddress:4726/wd/hub" baseUrl_2 = "http:/appiumAddress:4725/wd/hub" 2) 您需要创建两个不同的android emulator实例。确保

根据Appium的说法,它支持在一个会话中自动化多个Android应用程序

我在网上找过任何例子,但都没有成功。 有人能举个例子吗

我正在测试一个Android应用程序,并用Java编写代码。

1)您需要2个应用程序,每个应用程序运行不同的端口

baseUrl_1 = "http://appiumAddress:4726/wd/hub"
baseUrl_2 = "http:/appiumAddress:4725/wd/hub"
2) 您需要创建两个不同的android emulator实例。确保您只运行不同的模拟器(我的意思是它可以是相同的版本,但第二个版本会更改名称)。显然,如果你用同样的方法运行它,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中为每个应用编写会话

驱动程序-1

 try {
                     driver_1 = new AndroidDriver<MobileElement>(new URL(baseUrl_1), caps1);

                 } catch (Exception e) {

                        e.printStackTrace();
                    }
试试看{
driver_1=新的AndroidDriver(新URL(baseUrl_1),caps1);
}捕获(例外e){
e、 printStackTrace();
}
驱动程序-2

try {
                 driver_2 = new AndroidDriver<MobileElement>(new URL(baseUrl_2), caps2);

             } catch (Exception e) {

                    e.printStackTrace();
                }
试试看{
driver_2=新的AndroidDriver(新URL(baseUrl_2),caps2);
}捕获(例外e){
e、 printStackTrace();
}
当您运行测试1时,将在1模拟器上显示应用程序,并在第2模拟器上显示第2应用程序。就是这样,其他一切都取决于您的脚本或您正在使用的任何环境

我希望这有帮助

有关更多信息,请查看此


我认为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放到前台并使用它


您还可以查看此文档以了解应用程序和命令。

您是否尝试过关闭应用程序并再次初始化驱动程序?