Можно ли определить пользовательские возможности для устройств в Appium?
Например, у нас есть сценарии, требующие включения TouchID, и сценарии, требующие отключения TouchID. Сам Appium не предоставляет такие возможности, поэтому мне интересно, можно ли определить пользовательские возможности для устройства.
Если это невозможно сделать с помощью самого Appium, я с удовольствием помещу Selenium Grid в середину, если это обеспечит такую функциональность.
Мы тестируем как локально, так и в облаке, используя Perfecto, поэтому побочный вопрос, который я хотел бы знать, предоставляет ли Perfecto или какой-либо другой облачный сервис такую возможность.
Итак, если я определю следующую возможность при запуске моего сеанса Appium:
capabilities.touchID = 'enabled';
Я бы получил устройство, где TouchID был включен.
Кроме того, TouchID является лишь примером, у нас есть ряд вещей, для которых нам нужны пользовательские возможности.
1 ответ
При создании нового сеанса можно определить свои собственные возможности:
caps.android = {
platformName: 'Android',
...
mycap: 12345
}
Сервер Appium выдаст сообщение о том, что получил нераспознанную возможность:
[BaseDriver] The following capabilities were provided, but are not recognized
by appium: mycap.
[BaseDriver] Session created with session id: f672074d-ed33-49c1-a243-b8d10572608e
Позже в ваших тестах вы можете получить значение способности, например, в wd.js:
const caps = await driver.sessionCapabilities()
// caps.mycap will return 12345
и в зависимости от значения установите нужную логику, например, отправьте конкретную команду adb
Несколько заметок:
- Сервер Appium не имеет представления о ваших возможностях, и нет способа настроить его логику на основе пользовательских возможностей. Скорее всего, вам нужно определить логику на стороне клиента, где размещены ваши тесты
- Возможности сохраняются для сессии. Если вы хотите изменить -> начать новый сеанс
Большинство мобильных облаков также имеют свои собственные возможности, так что для вашего побочного вопроса:
- проверьте официальную документацию perfecto, чтобы понять, какие возможности им нужны и есть ли у вас "специальные".
- Appium имеет функцию Touch ID для симуляторов iOS