Search
Write a publication
Pull to refresh
242.83
Альфа-Банк
Лучший мобильный банк по версии Markswebb

Разворачиваем стенд для UI-тестирования iOS на базе Selenoid

Level of difficultyMedium
Reading time4 min
Views2.2K

Всем привет! Меня зовут Павел, я технический лидер тестирования в направления мобильной разработки. В моей прошлой статье я описывал, как мы разворачивали тестовый стенд для тестирования Android на базе Selenoid, и почему выбор пал именно на этот инструмент.

Настройка Selenoid для запуска UI-тестов на Android
Немного про Selenoid Если вы читаете эту статью, то наверняка слышали о Selenoid. Это мощное решение...
habr.com

Следующим этапом нужно было развернуть аналогичный стенд для UI-тестирования iOS.

Здесь хотел бы отметить, что готового решения под яблочные девайсы нет, как для Android, так и в документации по Selenoid нет информации для iOS. Поэтому я опирался на статью Selenoid: Запускаем Appium UI-тесты на iOS. Часть 2. Однако, у нас была другая история, мы поднимали стенд для UI-тестирования на реальных iPhone.

Подготовка

Первое, что нам нужно сделать, это установить все необходимые пакеты и приложения.

Начнём с brew. С помощью этого приложения можно устанавливать пакеты, которые не предоставляет Apple. Идём на сайт или запускаем команду в терминале:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Далее устанавливаем npm-менеджер пакетов, входящий в состав Node.js. Для этого переходим на сайт, скачиваем файл для установки или в терминале выполняем команду:

brew install npm

Следующий шаг — установка Appium. Здесь без вариантов — устанавливаем через терминал:

sudo npm install -g appium

Также нам нужно установить appium-doctor, чтобы проверить в конце, что мы ничего не упустили при настройке Appium. Аналогично запускаем команду в терминале:

sudo npm install -g appium-doctor

Теперь на Mac нам нужно установить Сarthage. Также двумя способами: через установщик или терминал:

brew install carthage

И, наконец, открываем AppStore и ставим XCode.

А пока у нас качается и устанавливается приложение, мы можем перейти на сайт и скачать последнюю версию Selenoid для MacOS. Если у вас Intel, тогда нужна версия AMD. Для M1, M2 и т.д. соответственно, нужна версия ARM.

Дальше переходим на сайт и по аналогии с Selenoid качаем последнюю версию Selenoid UI.

Подготовка закончена — можно переходить к настройке.

Настройка

Сначала нам нужно добиться, чтобы при запуске appium-doctor не было ошибок. Сперва устанавливаем Xcode Command Line Tools.

Команда в терминале:

xcode-select --install

После установки проверяем:

xcode-select -p

В терминале должны увидеть такую строку:

/Applications/Xcode.app/Contents/Developer

Запускаем appium-doctor:

appium-doctor --ios

После чего должны увидеть примерно такое:

Appium настроен, теперь можно переходить к настройке конфигурации. Создаем конфиг для Appium и конфиг для Selenoid:

{
  "ios": {
    "default": "iPhone X",
    "versions": {
      "iPhone X": {
        "image": ["appium", "--config", "/Users/mobilefarm.am/selenoid/config/appium/iphonex.json"]
      },
      "iPhone 6s": {
        "image": ["appium", "--config", "/Users/mobilefarm.am/selenoid/config/appium/iphone6s.json"]
      }
    }
  }
}

Запускаем Selenoid со следующими параметрами:

./selenoid -disable-docker -conf config/browsers.json -limit 20 -retry-count 1000 -video-output-dir video -log-output-dir logs -max-timeout 20m -session-attempt-timeout 15m -timeout 10m -service-startup-timeout 10m

И Selenoid UI:

./selenoid-ui --selenoid-uri=http://localhost:4444

Проверяем, что Selenoid успешно запустился:

 http://localhost:8080

В браузере должна открыться стандартная UI:

Переходим к самому интересному...

Установка драйвера на девайсах

Самая проблематична часть в настройке тестового стенда. Открываем терминал и запускаем команду:

appium driver run xcuitest open-wda

Должен открыться проект WebDriverAgent.

Нужно перейти в XcodePreferencesAccounts и добавить учетную запись AppleID. После чего:

  • вернуться к проекту;

  • в разделе Signing & Capabilities выбрать свой ранее добавленный аккаунт в поле Team;

  • и заменить в поле Bundle Identifier на свое значение.

Запустить сборку и после проверить ProductTest. На девайсе должна появиться иконка драйвера.

На iPhone переходим в НастройкиОсновныеПрофили и Управление устройством и нажимаем Доверять разработчику.

Возможные проблемы и решение

При попытке подключиться через Appium Inspector столкнулись с такой ошибкой:

Закрываем XCode и качаем с сайта zip-файл последней версии. Распаковываем архив и закидываем содержимое архива в директорию ~/.appium/node_modules/appium-xcuitest-driver/node_modules/appium-webdriveragent/, предварительно очистив эту папку.

Теперь запускаем проект wda и повторно собираем драйвер для девайса. Опять закрываем XCode, переустанавливаем проект.

sudo appium driver uninstall xcuitest
sudo appium driver install xcuitest

Открываем проект и ещё раз собираем драйвера на iPhone — пробуем подключиться через Appium Inspector. У нас после таких манипуляций подключение прошло успешно и запустился Safari на девайсах.

Также рекомендую другую нашу статью - Selenoid без симуляции: настройка, отладка и автоматизация на физическом Android-устройстве

На этом всё. Далее мы планируем настроить Go GGR Router, чтобы у нас была единая точка подключения. Спасибо за внимание.


Статьи, которые могут быть интересны:

Подписывайтесь на блог и Телеграм-канал Alfa Digital — там мы постим новости, опросы, видео с митапов, краткие выжимки из статей, иногда шутим.

Tags:
Hubs:
Total votes 20: ↑20 and ↓0+23
Comments19

Useful links

Программисты всё вымирают и вымирают

Level of difficultyEasy
Reading time19 min
Views140K
Total votes 332: ↑322 and ↓10+374
Comments584

Дореволюционный Энциклопедический словарь Брокгауза и Ефрона

Level of difficultyEasy
Reading time13 min
Views5.4K
Total votes 50: ↑49 and ↓1+67
Comments19

Не всё так просто с луддитами, как кажется

Level of difficultyEasy
Reading time24 min
Views21K
Total votes 138: ↑130 and ↓8+146
Comments136

Кнопки в автомобиле — это уже роскошь

Level of difficultyEasy
Reading time26 min
Views21K
Total votes 86: ↑84 and ↓2+96
Comments610

Великобритания, долги, Южные моря и Исаак Ньютон

Level of difficultyEasy
Reading time12 min
Views8.6K
Total votes 41: ↑40 and ↓1+52
Comments35

Information

Website
digital.alfabank.ru
Registered
Founded
1990
Employees
over 10,000 employees
Location
Россия