Можно ли определить пользовательские возможности для устройств в 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 не имеет представления о ваших возможностях, и нет способа настроить его логику на основе пользовательских возможностей. Скорее всего, вам нужно определить логику на стороне клиента, где размещены ваши тесты
  • Возможности сохраняются для сессии. Если вы хотите изменить -> начать новый сеанс

Большинство мобильных облаков также имеют свои собственные возможности, так что для вашего побочного вопроса:

Другие вопросы по тегам