Как открыть одно мобильное приложение с разными типами пользователей и переключаться между ними с помощью appium - PullRequest
0 голосов
/ 18 февраля 2019

У меня небольшая путаница, связанная с автоматизацией мобильных приложений.В моем текущем проекте у меня есть похожее мобильное приложение, в котором пользовательский интерфейс водителя и пассажира взаимодействует друг с другом на основе их соответствующих действий.

Как автоматизировать такой сценарий с использованием средств appium в данном тестовом сценарии, как я будупроверка как пользовательского интерфейса, так и, что более важно, открытие одного и того же приложения дважды, но различного для пользователей (водителя и пассажира) и переключение между двумя приложениями для проверки функциональности обоих пользовательских интерфейсов.Пожалуйста, помогите мне здесь, так как я застрял здесь.

Ответы [ 2 ]

0 голосов
/ 19 февраля 2019

Необходимо запустить два экземпляра сервера Appium с другим портом и портом начальной загрузки.

Запустите свой сервер Appium для пассажирского приложения из терминала или настольного приложения Appium в порту 4732 и порта начальной загрузки 4733.

>appium -a 127.0.0.1 -p 4732 -bp 4733 --session-override

Запустите сервер Appium для приложения драйвера из терминала или настольного приложения Appium через порт 4734 и порт начальной загрузки 4735

>appium -a 127.0.0.1 -p 4734 -bp 4735 --session-override

, также необходимоиспользуйте устройство udid в нужных вам возможностях, чтобы указать драйвер для устройства. udid - уникальный идентификатор устройства.Вы можете найти udid устройства с помощью команды adb devices .

Определите DesiredCapabilities для приложения для пассажиров и водителя, указав имя_устройства , udid , имя_платформы , имя-автомата , ( appPackage , appActivity ) или ( app )

вам может понадобиться включить newCommandTimeout в ваши DesiredCapabilities.

Определить и инициализировать AppiumDriver для приложения для пассажиров и водителякак после.

public static AppiumDriver<MobileElement> pDriver; //passenger app
public static AppiumDriver<MobileElement> dDriver; //driver app
pDriver= new AndroidDriver<MobileElement>(new URL("http://127.0.0.1:4732/wd/hub"), pCaps);
//pCaps = passenger app DesiredCapabilities
dDriver=new AndroidDriver<MobileElement>(new URL("http://127.0.0.1:4734/wd/hub"), dCaps);
//dCaps = driver app DesiredCapabilities

Вы должны определить AppiumDriver как static

порт начальной загрузки> порт для использования на устройстве для связи с Appium (только для Android)

Session-0verride> Включает переопределение сеанса

newCommandTimeout> Как долго (в секундах) Appium будет ожидать новую команду от клиента, прежде чем клиент завершит работу и завершит сеанс

0 голосов
/ 18 февраля 2019

Для достижения этого в Appium вам потребуется запустить 2 узла Appium, которые будут обрабатывать ваши устройства отдельно.

Пример кода:

DesiredCapabilities capabilitiesOne = new DesiredCapabilities(); //set for 1st device
DesiredCapabilities capabilitiesTwo = new DesiredCapabilities(); //set for 2nd device
...

String hubOneURL = "http://127.0.0.1:4723/wd/hub"; // Appium node for 1st device
String hubTwoURL = "http://127.0.0.1:4733/wd/hub"; // Appium node for 2nd device

AndroidDriver driverOne = new AndroidDriver(new URL(hubOneURL), capabilitiesOne);
AndroidDriver driverTwo = new AndroidDriver(new URL(hubTwoURL), capabilitiesTwo);

driverOne.doStuff();
driverTwo.doMoreStuff();

И вы запускаете свои узлы Appium следующим образом:

appium -a 127.0.0.1 -p 4723 //1st node
appium -a 127.0.0.1 -p 4733 //2nd node
...