Appium — автоматизация нескольких приложений для Android за один сеанс

#mobile #automation #appium #ui-automation #appium-android

#Мобильный #автоматизация #appium #пользовательский интерфейс-автоматизация #appium-Android

Вопрос:

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

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

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

Комментарии:

1. Вы пробовали закрыть приложение и снова инициализировать драйвер?

Ответ №1:

1) Вам нужно, чтобы 2 appium работали с разными портами

 baseUrl_1 = "http://appiumAddress:4726/wd/hub"
baseUrl_2 = "http:/appiumAddress:4725/wd/hub"
  

2) Вам нужны 2 разных экземпляра эмулятора Android. Убедитесь, что вы просто запускаете разные эмуляторы (я имею в виду, что это может быть одна и та же версия, за исключением того, что 2-я меняет название). Очевидно, 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();
                    }
  

Драйвер-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-файла в их studio.

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

Вы также можете ознакомиться с этой документацией для получения команд запуска и закрытия.