【问题标题】:Appium - automating multiple Android apps in one sessionAppium - 在一个会话中自动化多个 Android 应用程序
【发布时间】:2019-07-30 11:05:34
【问题描述】:

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

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

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

【问题讨论】:

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

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


【解决方案1】:

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 个模拟器上,而第 2 个应用程序将显示在第 2 个模拟器上。就是这样,其他一切都取决于您的脚本或您使用的任何环境。

希望对你有帮助

有关更多信息,请查看此内容。

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

【讨论】:

    【解决方案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 置于前台并使用它。

    您还可以查看此文档以了解 launchclose 命令。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-04-23
      • 2018-08-24
      • 2018-11-20
      • 2018-10-21
      • 1970-01-01
      • 2016-02-27
      • 1970-01-01
      • 2019-05-01
      相关资源
      最近更新 更多