t.me/atinfo_chat Telegram группа по автоматизации тестирования

Поделитесь опытом распараллеливания тестов на андроид

Теги: #<Tag:0x00007f748a9fc648> #<Tag:0x00007f748a9fc490> #<Tag:0x00007f748a9fc378> #<Tag:0x00007f748a9fc288> #<Tag:0x00007f748a9fc1c0> #<Tag:0x00007f748a9fc030> #<Tag:0x00007f748aa03ee8>

Есть желание распарралелить тесты на реальных андроид девайсах, но не могу выбрать инструмент. Поизучал тему, выяснилось, что это можно сделать с помощью поднятия необходимого количества экземпляров аппиума в докер контейнерах, чтобы под каждый девайс был свой экземпляр. Можете подсказать советом или ресурс где можно посмотреть пример ?

Можно использовать Selenoid для этого.
В связке с GGR (балансировщик для Selenoid).
https://aerokube.com/ggr/latest/

На гитхабе есть примеры вроде, как собирать свои образы андройда.

Но учтите, что если машина не очень шустрая. то подъем контейнера с андройдом под каждый отдельный тест будет занимать порядка минуты. Что не очень.

Я так полагаю вы привели пример с эмуляторами, это не совсем то. Мне необходимо это дело развернуть для реальных девайсов

Можно и без докера.

  1. Поднять для каждого девайса отдельный Аппиум сервер
  2. Поднять для каждого девайса отдельный Драйвер
  3. Запускать тесты в паралельных потоках ( TestNG например умеет это делать)

Главное чтобы порты не запутались ну и делать driver TreadLocal

Вот даже небольшой пример есть

2 Симпатий

Это достижимо, хотя не совсем тривиально и легко в поддержке. Как вам выше уже написали, TestNG - пока что самое оптимальное решение для данных задач. Однако, придется решать несколько инженерных задач, таких как:

  • как запускать инстансы Appium драйвера для каждого девайса. С Андроидом проще, а вот для iOS придется манипулировать портами для webdriver-а;
  • как вообще параметризировать и параллелизировать тесты. Надо будет выбрать стратегию (все тесты на всех девайсах в параллель, раскидать один тестовый сценарий по всем девайсам либо же как-то еще);
  • бороться как-то с нестабильностью Webdriver agent.

Я пробовал одновременно 2 Андроид девайса и 2 iOS. C Андроид никогда не было проблем, а вот с iOS периодически возникали, при чем самая распространенная была в том, что WebDriver Agent не стартовал на девайсе и надо было удалить его и перегрузить девайс, что в автотестах - адская боль. В любом случае, нужно взвешивать “за” и “против” такого подхода на реальных девайсах. С симуляторами - проще

1 Симпатия