Изменить 01.05.2017:

Прошло 6 месяцев с момента публикации этой статьи, и был выпущен официальный инспектор Appium. Я пробовал широко использовать его с приложениями для iOS. Хотя я сам все еще скучаю по некоторым функциям, предоставляемым старым инспектором (попробуйте самодельный локатор и т. Д.), В целом я вполне им доволен. Поэтому, если вы видите это, я бы порекомендовал использовать официальный инспектор Appium в качестве первого выбора.

Фон

Appium - это среда автоматизации тестирования мобильных приложений с открытым исходным кодом. Он имеет аналогичную концепцию Selenium WebDriver. Для iOS, подслой, он использует инструментальный инструмент Xcode UIAutomation для управления операциями пользовательского интерфейса в приложении.

Apple представила XCUITest в Xcode 7 еще в 2015 году. А в Xcode 8 Apple сделала еще один шаг, удалив предыдущий инструмент тестирования пользовательского интерфейса UIAutomation. Это приводит к тому, что Appium пересматривает свой механизм нижнего уровня, чтобы использовать WebDriverAgent Facebook, который реализует большую часть протокола WebDriver с использованием XCUITest. Недавно он был выпущен как Appium 1.6.0.

Одним словом, чтобы протестировать приложение в iOS 10 с помощью Appium, мы должны использовать Xcode 8 или новее с Appium 1.6 или новее.

Однако официального инспектора для Appium 1.6 пока нет. Очевидно, не идеально использовать клиентский метод получить источник страницы, чтобы получить все дерево исходных текстов текущего представления, а затем вручную извлечь указатель элемента. Людям по-прежнему нужен инспектор с графическим интерфейсом, чтобы легко идентифицировать локатор элемента для создания тестов Appium.

Для этого у нас сейчас есть три варианта:

Примечание: следующие данные основаны на системе macOS.

1. Старый добрый инспектор Appium с небольшим обходным решением.

В графическом интерфейсе Appium настройки iOS:

  • Путь к приложению: выберите путь к вашему приложению, которое необходимо проверить.
  • Принудительное устройство: выберите iPhone 7.
  • Версия платформы: вручную введите 10.1

Затем НЕ нажимайте «Запустить», чтобы запустить сервер Appium через графический интерфейс. Вместо этого выполните npm install appium, а затем запустите сервер Appium 1.6 в своем терминале:

$ npm install appium
$ ./node_modules/.bin/appium

После запуска сервера Appium щелкните значок Inspector в графическом интерфейсе:

Тогда все. Подождите немного, вы увидите, что Appium сначала устанавливает WebDriverAgent в симулятор, а затем приложение, которое вы хотите проверить. Откроется Appium Inspector с полной информацией локатора XCUIElementType, которую вы ищете:

2. Новый веб-инспектор, поддерживаемый командой Macaca.

Это ловкий веб-инспектор, созданный командой Macaca, то есть от могущественной Alibaba Inc.. Macaca в основном предоставляет полный набор решений с открытым исходным кодом на основе Selenium WebDriver как для Интернета, так и для мобильных устройств. Этот инспектор - лишь один из инструментов.

Я встретил некоторых сопровождающих еще в июле 2016 года. Это группа очень талантливых инженеров, которые тратят дополнительные часы на этот проект. Если вам интересно, рекомендую поиграть с их инструментами.

Вернемся к инспектору. Вот шаги для его настройки:

  • Найдите UDID симулятора, на который вы хотите установить, и проверьте приложение:
$ xcrun simctl list
  • Установите Macaca Inspector:
$ npm install app-inspector
  • Запустите инспектор Macaca с UDID симулятора, например:
$ ./node_modules/.bin/app-inspector -u 6EE5E44A-F4F2-4A8A-AB5C-7A7FC9CC3512
  • Установите приложение на загруженный симулятор, например:
$ xcrun simctl install 6EE5E44A-F4F2-4A8A-AB5C-7A7FC9CC3512 ~/Downloads/MultiSelectTableView.app/
  • Затем перейдите по ссылке, указанной в терминале, и начните проверять приложение:

3. Новый веб-инспектор, вдохновленный Selendroid Inspector.

Это еще один новый Appium iOS Inspector, созданный Николаем Мохначом, который активно участвует в проектах Appium и WebDriverAgent, включая долгожданный https://github.com/facebook/WebDriverAgent/pull/308

Сам я не пробовал, но, судя по отзывам на форумах Appium, это определенно работает. Требуется использовать тест Appium начальной загрузки для загрузки приложения в симулятор и установки точки останова там, где вы хотите проверить пользовательский интерфейс, чтобы вы могли перейти в веб-браузер, чтобы проверить его.

Заключение

Хотя мне нравится идея веб-инспектора, в обоих случаях отсутствует удобная функция для большинства тестировщиков: автоматическая установка приложения.

  • Macaca необходимо вручную извлечь UDID и установить приложение с помощью xcrun. Несколько месяцев назад я открыл вопрос с запросом функции, но получил отказ.
  • Инспектору Николая Мохнача необходимо выполнить тест Appium, а затем установить точку останова, чтобы вы могли продолжить проверку.

Итак, для универсального решения Appium Inspector я бы пока остановился на варианте 1.

Дайте мне знать, если у вас есть лучшее решение. Удачной автоматизации.