Вторая часть сравнения Selenium (Java) и TestCafe (Javascript)

Многим читателям интересно узнать больше об уникальных возможностях TestCafe по сравнению с Selenium. В этой статье я собираюсь обсудить две функции TestCafe, одна из которых уникальна для TestCafe (тестирование мобильных веб-приложений), а другая более доступна по сравнению с Selenium (параллельное и параллельное тестирование). ). Ограниченный объемом статьи, я не буду приводить все детали реализации Selenium.

  1. Тестирование мобильных веб-приложений

Определение тестирования мобильного веб-приложения — это тестирование веб-браузера через устройства IOS или Android. Многие стартапы или компании среднего размера будут иметь только веб-сайт, и на веб-сайте будет отображаться различный дизайн в зависимости от размера экрана устройств просмотра (например, настольных компьютеров, планшетов или мобильных устройств). Существует большая вероятность того, что вид на рабочем столе идеален, но вид мобильного веб-приложения показывает сломанный дизайн. Поэтому тестирование представления мобильного веб-приложения имеет важное значение. Selenium не поддерживает тестирование на мобильных устройствах, обходным путем является использование Appium для тестирования веб-приложений. Поскольку установка и настройка Appium сложны, а их реализация займет целую статью, я расскажу только о реализации TestCafe при тестировании представления мобильного веб-приложения.

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

testcafe remote tests/test.js

Вы можете скопировать и вставить этот URL-адрес на свои мобильные устройства или симуляторы на своем рабочем столе, тест начнется после того, как вы щелкнете по URL-адресу.

Если вы используете тестовое устройство компании и не можете отправить URL-адрес на устройство, можно использовать QR-код вместо копирования и вставки URL-адреса. Когда вы запускаете команду с опцией QR-кода в консоли, на странице будет отображаться QR-код. После того, как вы отсканируете QR-код с помощью тестового устройства, начнется тестовый прогон.

testcafe remote tests/test.js --qr-code

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

testcafe "chrome:emulation:device=iphone X" tests/sample-fixture.js

Если вы хотите протестировать устройство с настроенным размером экрана, просто укажите характеристики в команде.

testcafe"chrome:emulation:width=100;height=200;mobile=true;orientation=vertical;touch=true" tests/sample-fixture.js

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

2. Параллельное и параллельное тестирование

Параллельное тестирование означает одновременное выполнение тестовых случаев. Предполагая, что вам нужно запустить 50 тестовых случаев в браузере, и каждый тестовый пример занимает одну минуту, общее время тестирования составляет 50 * 1 = 50 минут. Если вы запустите пять одинаковых браузеров и запустите все 50 тестовых случаев одновременно, то в каждом идентичном браузере будет запущено 10 тестовых случаев. Текущее время тестирования составляет (50/5) * 1 = 10 минут.

Параллельное тестирование — это одновременный запуск тестовых случаев в разных браузерах. Например, если вы запустите 50 тестовых случаев в браузере Chrome, а затем запустите те же 50 тестовых случаев в браузере Safari, общее время тестирования составит 50 * 1 + 50 * 1 = 100 минут. Если вы запустите один браузер Chrome и один браузер Safari для одновременного запуска всех тестов, время параллельного тестирования составит (50 * 1 + 50 * 1)/2 = 50 минут.

В Selenium для запуска параллельного тестирования необходимо использовать дополнительные среды тестирования, такие как TestNG. Если вы хотите провести параллельное тестирование, вам потребуется настроить Selenium Grid или облачные платформы, такие как Saucelabs или BrowserStack. Опять же, я не буду подробно останавливаться на реализации Selenium. Ниже приведен пример одновременного и параллельного тестирования в TestCafe.

Для параллельного тестирования введите команду ниже в консоли. Эта команда означает, что вы запускаете TestCafe и открываете 5 браузеров Chrome, а затем запускаете все 50 тестов одновременно в каждом браузере. TestCafe автоматически назначит все тестовые случаи внутри файла test.js пяти браузерам Chrome равномерно.

testcafe -c 5 chrome tests/test.js

При запуске тестов в безголовом режиме Safari или Chrome просто обновите команду с Chrome на Safari или Chrome: безголовый.

testcafe -c 5 Safari tests/test.js
testcafe -c 5 chrome:headless tests/test.js

Для параллельного тестирования мы можем запустить все 50 тестов в браузере Chrome и Safari внутри файла test.js параллельно. Следуя приведенной ниже команде, вы запускаете TestCafe и открываете два браузера: браузер Chrome и браузер Safari. Браузер Chrome запустит все 50 тестовых случаев внутри файла test.js один за другим. Между тем, браузер Safari также будет запускать те же тестовые примеры параллельно.

testcafe chrome,safari tests/test.js

Кроме того, вы можете комбинировать функции одновременного и параллельного тестирования и использовать их одновременно. Например, приведенная ниже команда позволяет запустить TestCafe и открыть пять браузеров Chrome и еще пять браузеров Safari. 50 тестовых случаев внутри файла test.js будут распределены по пяти браузерам Chrome и запущены одновременно. Между тем, те же 50 тестовых случаев также распространяются на пять браузеров Safari и выполняются одновременно.

testcafe -c 5 chrome,safari tests/test.js

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

Officially Supported Browsers
-Google Chrome: Stable, Beta, Dev and Canary
-Internet Explorer (11+)
-Microsoft Edge (legacy and Chromium-based)
-Mozilla Firefox
-Safari
-Google Chrome mobile
-Safari mobile

В реальном сценарии у меня есть 30 тестовых случаев, и для запуска всех тестов один за другим потребуется 25 минут. Используя параллельное тестирование TestCafe, я смог запустить 6 браузеров Chrome на своем MacBook Pro и выполнить задачу менее чем за 5 минут. В целом, поддержка тестирования мобильных веб-приложений, функции параллельного и параллельного тестирования являются отличным стимулом для того, чтобы попробовать TestCafe. В частности, для малых и средних компаний стоимость перехода с Selenium на TestCafe очень низкая, все, что вам нужно сделать, это просто ввести npm install -g testcafe в консоли, и вы получите все эти замечательные функции.

  • Больше сравнений в следующем рассказе.

[1]: исходный код и примеры:

https://www.selenium.dev/documentation/ru/

https://devexpress.github.io/testcafe/documentation/getting-started/