Appium - автоматизация нескольких приложений Android за один сеанс - PullRequest
0 голосов
/ 08 марта 2019

Согласно документации Appium , он поддерживает автоматизацию нескольких приложений Android за один сеанс.

Я искал любой пример в Интернете, но безуспешно. Может кто-нибудь поделится примером?

Я тестирую приложение для Android и пишу на Java.

Ответы [ 2 ]

0 голосов
/ 19 марта 2019

Я думаю, что 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 в их студию.

Вы можете работать над приложениями последовательно или даже работать с приложением 1, переместить его в фоновый режим, работать с приложением 2, вывести приложение 1 на передний план и работать с ним.

Вы также можете посмотреть в этой документации команды launch и close .

0 голосов
/ 11 марта 2019

1) Вам нужно 2 приложения, работающих с каждым портом

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) Записать сессию для каждого приложения в попыткепоймать отдельно

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-е - на втором эмуляторе.Все остальное зависит от вашего сценария или среды, которую вы используете.

Надеюсь, это поможет

Для получения дополнительной информации проверьте это.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...