Оптимизация тестов Appium

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

Что такое Appium?

Appium — это фреймворк с открытым исходным кодом, построенный на Javascript, который предоставляет набор инструментов, позволяющих запускать автоматизированные тесты на мобильных симуляторах/эмуляторах и физических мобильных устройствах.

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

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

Как использовать Appium?

Вы можете легко установить Appium, если у вас уже установлен NodeJS. Для установки просто выполните эту команду:

npm i appium
Войти в полноэкранный режим Выйти из полноэкранного режима

Затем убедитесь, что на той же системе установлен либо симулятор iOS, либо эмулятор Android. Вы также можете подключить физическое устройство к машине через USB, что должно работать так же хорошо с Appium.

После настройки вы можете написать свой первый тест Appium. В этом примере мы будем использовать WebDriverIO:

npm install webdriverio
Вход в полноэкранный режим Выход из полноэкранного режима

Теперь скопируйте/вставьте приведенный ниже код примера, чтобы запустить свой первый тест:

const opts = {
  path: '/wd/hub',
  port: 4723,
  capabilities: {
    platformName: "Android",
    platformVersion: "12",
    deviceName: "Android Emulator",
    app: "https://github.com/appium/appium/raw/master/sample-code/apps/ApiDemos-debug.apk",
    appPackage: "io.appium.android.apis",
    appActivity: ".view.TextFields",
    automationName: "UiAutomator2"
  }
};

async function main () {
  const client = await wdio.remote(opts);
  const field = await client.$("android.widget.EditText");
  await field.setValue("Hello World!");
  const value = await field.getText();
  assert.strictEqual(value, "Hello World!");
  await client.deleteSession();
}

main();
Войти в полноэкранный режим Выйти из полноэкранного режима

Это запустит сеанс автоматического тестирования на эмуляторе Android 12, запущенном на вашей машине. Он откроет демонстрационное приложение, введет ‘Hello World’ в поле ввода и проверит, был ли ввод успешным.

Оптимизация тестов Appium

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

Есть некоторые настройки, которые можно изменить, чтобы сделать Appium более производительным.

Эти настройки зависят от того, хотите ли вы запускать тесты на Android или iOS. Давайте посмотрим список настроек, которые можно изменить, чтобы сделать Appium быстрее:

Кроссплатформенные возможности

  • noReset: По умолчанию Appium будет перезагружаться как можно чаще между сессиями. Если вы не хотите этого, установите значение false, это ускорит выполнение теста.

  • fullReset: Используйте это значение только в том случае, если это действительно необходимо. Обычно не требуется

  • isHeadless: Установка этого значения в true приведет к запуску симулятора или эмулятора без пользовательского интерфейса. Это должно быть быстрее.

Возможности Android

  • autoGrantPermission: Установка этого параметра в значение true позволяет Appium определить разрешения вашего приложения и предоставить их в начале теста.

  • appWaitPackage / appWaitActivity: Указывает Appium, какая активность должна быть запущена. Это позволяет избежать необходимости ждать, пока Appium проверит apk и будет перебирать активности.

  • skipUnlock: Appium использует вспомогательный инструмент для проверки того, заблокировано ли тестируемое устройство или эмулятор, например, с помощью пин-кода. Если это не так, пропуск этого действия позволит сэкономить несколько секунд.

  • skipDeviceInitialization: Установка этого значения в true заставит Appium не устанавливать вспомогательное приложение io.appium.settings.

  • skipServerInstallation: Если серверное приложение уже установлено на устройстве, пропуск этого параметра сэкономит секунду или около того.

Возможности iOS

  • iosInstallPause: Сообщает Appium, сколько времени нужно подождать перед началом теста.

  • maxTypingFrequency: Эта возможность определяет максимальную скорость при наборе текста на устройстве или симуляторе iOS.

  • realDeviceScreenshotter: Эта возможность будет использовать программу idevicescreenshot, которая является частью libimobiledevice, для создания скриншотов. Она должна быть более производительной.

  • simpleIsVisibleCheck: Будет использовать более простую проверку видимости, чем та, что по умолчанию используется WebDriverAgent.

Облачное тестирование Appium

Когда вы захотите запускать автоматизированные тесты Appium на нескольких устройствах, вам, возможно, захочется рассмотреть возможность использования облачного провайдера. Преимущество этого способа заключается в том, что они предоставляют несколько физических устройств, iOS и Android, которые уже предварительно настроены и готовы к запуску ваших тестов.

Вы получите мгновенные результаты тестирования, включая видео, скриншоты и журналы. TestingBot — это облачный провайдер Appium, который предоставляет доступ к физическим устройствам Android и iOS для нативного тестирования мобильных приложений.

Оцените статью
Procodings.ru
Добавить комментарий