#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 на передний план и работать с ним.
Вы также можете ознакомиться с этой документацией для получения команд запуска и закрытия.