Может ли Appium запускать несколько разных тестов одновременно на нескольких устройствах? - PullRequest
0 голосов
/ 17 октября 2019

Я новичок в параллельном тестировании Appium / Selenium, и мне было интересно, можно ли одновременно запускать разные тесты на нескольких устройствах? Моя команда должна сократить общее время выполнения наших тестов пользовательского интерфейса и не беспокоиться о разных версиях ОС, влияющих на поведение приложения для этих конкретных тестов. Я перечитывал много постов и пытался найти ответы, но все, что я могу найти в Интернете, это статьи, учебные пособия и форумы о том, как параллельно выполнять один и тот же тест на нескольких устройствах.

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

(Прямо сейчас мы пытаемся использовать подход JUnit для тестирования из-за особых ограничений других инструментов. Все тесты пишутся на Java.)

Спасибо за ваше время.

Ответы [ 3 ]

0 голосов
/ 17 октября 2019

В зависимости от настроек вы можете выполнить это. Тем не менее, вам или вашей команде придется настраивать большую часть автоматизации вашей сборки и управления устройствами, поэтому вы не сможете использовать для этого готовое решение.

Я проделал то же самое с Selenium и Appium - вам понадобится тестовая среда, которая позволяет выполнять тестирование с параметрами, а ваши устройства должны быть подключены к отдельным концентраторам USB, к каждому из которых подключен собственный виртуальный сервер.

Используя NUnit, вот мой подход:

  • Создание файлов .txt для каждого отдельного набора тестов, которые я хочу выполнить - test_list_1.txt, test_list_2.txt и т. Д. Каждый список содержит отдельную группутестовые случаи для запуска.
  • Напишите скрипт сборки для очистки и сборки проекта с нуля - для C # я использую Cake.
  • Создайте задание в Jenkins, которое выполняет ваш скрипт сборки ивызывает консольный обработчик NUnit, который принимает test_list в качестве параметра. Это инициирует выполнение теста со списком тестовых случаев

Вы должны иметь возможность построить свою работу Jenkins на основе любого списка тестов, который вы хотите, так что теперь у вас есть возможность запустить свою автоматизацию против различных тестов,как упоминалось в описании вашей проблемы.

Подключите ваши виртуальные машины (которые подключаются к вашим устройствам Appium) к Jenkins и добавьте их в качестве исполнителей на вашей работе. Теперь у вас есть несколько компьютеров, с которыми вы можете выполнять свою работу.

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

Настройка на моем конце была полностью индивидуальной - я использовал определенные инструменты для выполнения отдельных шагов, но это работало для наших нужд, и мы выполнили параллельное выполнение с различными наборами тестовых случаев.

0 голосов
/ 18 октября 2019

Вы можете запускать свои тесты локально на нескольких устройствах, создавая несколько экземпляров сервера Appium. Каждый сервер Appium должен работать на разных IP-адресах и прокси-адресах. Таким образом, вы должны установить свои возможности для каждого экземпляра соответственно. Но есть и другое решение, но оно немного дорого. Это Ферма устройств AWS . AWS предоставляет несколько реальных устройств, размещенных на этих серверах, которые вы можете использовать для выполнения ваших индивидуальных тестовых наборов. Они дают изначально 1000 бесплатных минут теста. Вы должны создать проект maven для своих тестовых сценариев. Я предпочитаю использовать testng, а не Junit.

0 голосов
/ 17 октября 2019

То, что вы спрашиваете, в принципе невозможно.

Вы не можете запускать разные тестовые случаи на разных устройствах.

Хотя вы можете запускать одни и те же тестовые случаи на широком диапазоне устройств, используя Hive, Browserstack или ферму устройств AWS.

Надеюсь, это поможет.

...