Инструменты автоматизации тестирования программного обеспечения
Для своевременного выявления ошибок в проектах каждый сайт постоянно проходит проверки по типичным (и не очень) действиям пользователя. Так как изменения приходят часто, то чтобы каждый раз не проводить повторно одни и те же действия часто используется автоматизация. Для этого используются некоторый набор инструментов, с помощью которых можно воспроизвести действия обычного пользователя и оценить ожидаемый и полученный результат.
Одним из самых распространенных инструментов, используемых для автоматизации, является Selenium. Также есть более молодое и менее известное решение Testcafe. Основные плюсы и минусы этих двух продуктов и будем рассматривать, учитывая, что пока требуется не очень сложный функционал: клик по объекту, ввод текста, проверка результата...
Selenium
Для взаимодействия с браузером используется специальная программа - вебдрайвер. Для каждого браузера существует своя версия. Минус в том, что обновления в вебдрайвере и браузере не всегда успевают друг за другом, и приходится следить за этим. Иначе может получится, что обновление браузера приведет к нестабильной работе вебдрайвера. Так же не под все браузеры выходят своевременные обновления, что затрудняет автоматизацию в некоторых браузерах. Код самого теста можно писать на множестве языков, что является плюсом. Также есть бесплатные графические оболочки для записи теста и экспорта в нужную среду.
Testcafe
Для запуска тестов в Testcafe достаточно иметь установленную Node.js (помимо установки самой Testcafe), не нужно никаких плагинов для браузера и привязок к операционной системе. Версия браузера как правило тоже не важна. Код теста пишется на языке JavaScript. Существует визуальный рекордер тестов, но с пробным периодом, что удобно для того, чтобы посмотреть на возможности и пример написания и управления тестами. Без использования визуальной оболочки можно управлять тестами из консоли, но писать тесты вручную, описывая каждый вызываемый элемент на странице. Эта функциональность бесплатна, но требует некоторого привыкания.
Принцип работы и написания теста в обеих случаях примерно одинаков: в коде теста описываются элементы, требуемые действия с ними. После запускается сам тест и в браузере выполняются описанные в коде действия.
Но принцип работы немного отличается: для использования Selenium запускается браузер, напрямую открывается страница и происходит прогон теста. В Testcafe принцип иной. Страницы открываются через локальный хост, где страницы преобразуются для выполнения JavaScript кода теста. Такой метод более универсален для проверки в любом браузере.
Также в Testcafe проще работать с браузерами на мобильных устройствах. Для запуска теста необходимо перейти по сгенерированному локальным хостом адресу и запустить выполнение теста. В Selenium же для подобного требуется установка специальной программы, что опять же влияет на недоступность некоторых версий и систем мобильного устройства.
В целом оба продукта имеют свои плюсы и минусы, и выбор определяется спецификой тестируемого продукта.