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

时间:2019-03-08 11:59:21

标签: mobile automation appium ui-automation appium-android

根据Appium documentation,它支持在一个会话中自动化多个Android应用。

我在网上寻找任何示例,但都没有成功。 有人可以分享一个例子吗?

我正在测试一个Android应用并使用Java进行编码。

2 个答案:

答案 0 :(得分:0)

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中为每个应用编写会话

Driver-1

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

                 } catch (Exception e) {

                        e.printStackTrace();
                    }

Driver-2

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

             } catch (Exception e) {

                    e.printStackTrace();
                }

在运行测试时,1个应用程序将显示在1个模拟器上,而2nd应用程序将显示在2个模拟器上。就是这样,其他所有内容都取决于您的脚本或所使用的环境。

我希望这对您有帮助

有关更多信息,请选中此。

https://discuss.appium.io/t/how-to-use-to-2-apps-sequentially-in-one-session/1806/6

答案 1 :(得分:0)

我认为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置于前台并使用它。

您还可以查看有关launchclose命令的文档。