Как запускать один и тот же скрипт на нескольких устройствах с помощью Appium

Автоматизированное тестирование мобильных приложений существует уже давно. В начальные дни считалось роскошью иметь автоматизированный набор тестов для вашего приложения. Но сейчас это стало неотъемлемой частью DevOps.

Существует множество преимуществ автоматизированного тестирования, но следующие три являются самыми важными:

  • Увеличение покрытия тестами: Автоматизированное тестирование позволяет тестировать больше функций за меньшее время. Это означает, что вы можете увеличить покрытие тестами, не увеличивая бюджета на тестирование.
  • Уменьшение риска ошибок человеческого фактора: Автоматизированные тесты менее подвержены ошибкам, таким как пропущенные крайние случаи при ручном тестировании приложения.
  • Более быстрая обратная связь: Автоматизированные тесты могут быть запущены гораздо быстрее, чем ручное тестирование. Это означает, что вы можете получить отзывы о вашем приложении гораздо раньше, что может помочь вам исправить проблемы, прежде чем они станут серьезными проблемами.

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

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

Зачем важно запускать тот же сценарий на нескольких устройствах?

Тестирование приложения на различных устройствах – это важный этап в процессе kontrolya kачества. Нам должно быть уверено, что наше приложение работает с различными устройствами, версиями ОС и размерами экранов.

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

Как запустить тот же сценарий на нескольких устройствах с использованием Appium?

Когда мы запускаем наш сценарий Appium, нам нужно передать желаемые возможности Appium, которые включают platformName, platformVersion и имя нашего устройства.

{
"platformName": "iOS",
"platformVersion": "11.0",
"deviceName": "iPhone 9",
"automationName": "XCUITest",
"app": "/path/to/my.app"
}

Copied

Для запуска вашего тестового скрипта на другом устройстве нам нужно изменить желаемые возможности нашего тестового скрипта, и он будет выполнять ваш тестовый скрипт на этом конкретном устройстве. нам не нужно изменять наш тестовый скрипт, чтобы запустить его на различных устройствах. Однако, это может быть different from executing test scripts on Android and iOS devices because element locators may differ on Android and iOS devices. But a script written for any android or iOS device can be run on all devices with the same OS by changing desired capabilities.

Проблемы в управлении множеством устройств

Запуск вашего скрипта на множестве устройств является простым в вашем процессе автоматизации тестирования, но управление этими устройствами и собственность множества устройств является трудной и дорогой работой для вашего процесса автоматизации. Если мы будем говорить только о iPhones, у него от iPhone6 до iPhone13, которые используют пользователи с iOS11 до iOS16. А когда дело идет о Android, эти цифры увеличились массово. Никакая команда не может управлять или принадлежать всеми популярными устройствами, представленными на рынке с различными версиями ОС.

Эмулятор/Симулятор в качестве альтернативы

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

Преимущества тестирования на реальных устройствах

Вот здесь BrowserStack приходит на помощь, освобождая от массы устройств. BrowserStack App Automate предоставляет все популярные устройства с различными версиями ОС для автоматического тестирования вашего приложения с помощью Appium. Вы можете легко интегрировать BrowserStack в свою инфраструктуру для тестирования ваших скриптов на множестве устройств.

Выполнение сценариев Appium на нескольких устройствах с использованием BrowserStack

Запуск вашего тестового сценария на BrowserStack с несколькими устройствами достаточно прост, если вы используете App Automate. Вам просто нужно выполнить несколько шагов, чтобы изменить ваши конфигурации, и BrowserStack будет интегрирован с вашей существующей автоматизацией тестирования.

Шаг 2: Загрузите ваше .apk или .ipa файла на BrowserStack. Вы можете сделать это, используя опцию “Загрузить ваше приложение” на панели управления, или вы также можете использовать API BrowserStack для автоматической загрузки. Вы получите URL вашего приложения после его загрузки.

{
"app_url":"bs://f7c874f21852ba57957a3fdc33f47514288c4ba4"
}

Copied

Шаг 3: Укажите приложение, которое будет тестироваться, с использованием возможности app. Используйте значение app_url, возвращенное при загрузке приложения (Шаг 2), чтобы установить эту возможность.

  • Укажите реальное устройство Android или iOS, которое вы хотите использовать для тестирования, с помощью возможности device.
  • Чтобы инициализировать драйвер Appium, используйте удаленный URL BrowserStack вместе с вашими учетными данными для доступа к BrowserStack (указанными в шаге 1), как показано ниже:

https://ВАШЕ_ИМЯ_ПОЛЬЗОВАТЕЛЯ:ВАШ_КЛЮЧ_ДОСТУПА@hub-cloud.browserstack.com/wd/hub

Это будет выглядеть так:

userName = "YOUR_USERNAME"
accessKey = "YOUR_ACCESS_KEY"
desired_caps = { "build": "Android",
"device": "Samsung Galaxy S8 Plus",
platformVersion": "11.0",
"app": "<app_url>"
}
driver = webdriver.Remote("https://" + userName + ":" + accessKey +
"@hub-cloud.browserstack.com/wd/hub", desired_caps)

Copied

Таким образом, ваш сценарий Appium начинает работать на реальных устройствах BrowserStack в облаке.

Вы можете легко изменить устройство, изменяя его название и версию платформы в желаемых капс. В BrowserStack вы также можете запустить свой тест параллельно, чтобы закончить автоматизацию быстрее. BrowserStack предоставляет Видео, Журналы устройства, Сетевые журналы и Журналы Appium для отладки, и вы можете проверить ваши тестовые запуски на вашем Дашборде. BrowserStack может помочь вам запустить ваши сценарии тестирования на нескольких устройствах, и вам не нужно управлять этими устройствами самостоятельно.

В заключение,

Сервис App Automate BrowserStack’a облегчает тестирование на множестве реальных устройств. Чтобы легко запустить тесты на тысячах устройств и систематически определить, готово ли ваше приложение к релизу, пользователь может просто изменить желаемые возможности. QA-команды будут легко использоватьResults Dashboard, чтобы быстро найти и исправить ошибки.

Запустите тесты Appium бесплатно

Source:
https://www.browserstack.com/guide/how-to-run-same-script-in-multiple-devices-using-appium