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



根据Appium文档,它支持在一个会话中自动化多个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)在尝试捕获中为每个应用程序编写会话

驱动程序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-to-use-to-to-2-apps-sequentally-in-sen-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带到前景并使用它。

您还可以查看此文档以进行启动和关闭命令。

相关内容

  • 没有找到相关文章