Большинство людей ленивы, и тестировщики не исключение. Это одна из основных причин, по которой существуют автоматизированные сквозные и регрессионные тесты. На каждом мыслимом языке программирования есть десятки различных инструментов автоматизации (однако… я бы заплатил, чтобы увидеть, как кто-то создаст доказательство концепции сквозного теста на Фортране). Итак, какой из них вы выберете? В этом блоге я приведу доводы в пользу CodeceptJS и предложу краткое введение.

ОСНОВЫ

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

Лучший способ научиться этому - пройти вводный курс по HTML и CSS. Их много в Интернете, но я бы предложил Введение в базовый HTML и HTML5 и Введение в базовый CSS от FreeCodeCamp. Это поможет вам освоиться с объектной моделью документа DOM и найти уникальные элементы для ваших тестов.

После этого вам понадобится некоторое представление о JavaScript. И Codecademy, и FreeCodeCamp предлагают интерактивные вводные курсы по языку, но вы также можете взглянуть на Eloquent JavaScript, красивую книгу со встроенной песочницей для запуска вашего кода. После этого обязательно ознакомьтесь с возможностями инструментов разработчика вашего браузера. Инспектор страниц - особенно незаменимый инструмент, но также консоль действительно может помочь вам проверить уникальность элементов.

ПОЧЕМУ CODECEPTJS?

Любой, кто в прошлом году беседовал со мной об автоматизации тестирования, слышал, как я проповедую евангелие на Codecept. В моем предыдущем блоге я уже немного писал о том, почему я считаю, что инструменты автоматизации на JavaScript - лучший выбор. Позвольте мне теперь объяснить, почему Codecept следует рассматривать как первый инструмент для сквозного тестирования, или e2e.

1. Несколько инструментов тестирования в одном
Codecept - это не столько инструмент тестирования, сколько оболочка нескольких инструментов тестирования. Это означает, что с CodeceptJS вы можете выбирать между WebDriverIO, Protactor, Nightmare, Appium и Puppeteer и использовать один и тот же скрипт для тестирования всех них. Вы даже можете протестировать свой REST Api и интегрировать его со своими тестами e2e.

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

3. Расширяемый
Если в CodeceptJS отсутствует эта одна вещь, которая абсолютно необходима для запуска ваших тестов e2e, очень легко создать вспомогательный класс, который сделает именно это.

УСТАНОВКА CODECEPTJS

Теперь, когда вы знаете, почему вам следует начать с CodeceptJS, приступим. Прежде всего, убедитесь, что у вас установлен NPM. Вы можете проверить это с помощью npm -v в своем терминале. Если npm - неизвестная команда, значит вам нужно установить NPM.

После этого из каталога, в котором вы хотите создать тесты, выполните следующую команду: [sudo] npm install -g codeceptjs webdriverio. Это установит и CodeceptJS, и WebDriverIO глобально.

WebDriverIO потребует установки Selenium Server. Вам также понадобится ChromeDriver или GeckoDriver для запуска соответствующих браузеров. Используйте Selenium Standalone для установки и запуска Selenium, ChromeDriver, Firefox Driver с одним пакетом:

  • npm install selenium-standalone @ latest -g
  • автономная установка селеном

Теперь вы можете запустить сервер Selenium с автономным запуском selenium. Selenium теперь будет доступен на порту 4444.

После того, как вы установили Codecept, вы можете настроить его для своего первого теста, выполнив шаги, описанные в их собственном Кратком руководстве. Вам просто нужно ответить на несколько вопросов, и Codecept все настроит за вас:

Нажмите на изображение, чтобы увеличить

В этом случае я указал Codecept на создание специальной папки тестов для всех тестов и папки вывода для атрибутов тестов, таких как скриншоты неудачных тестов, журналы и отчеты о тестах. Я также создал место для пользовательских шагов, которые мы будем использовать позже. Базовый URL-адрес и информация о браузере - это настройки, которые будут использоваться для тестов. Вы можете редактировать их и все остальные в своем файле codecept.conf.js.

НАПИСАНИЕ ПЕРВОГО ТЕСТА

Теперь, когда Codecept настроен, мы можем создать наш первый тест. Для этого используйте команду generate test: codecept gt. Как показано ниже, создается новый документ с именем функции:

Нажмите на изображение, чтобы увеличить

Это ваш первый тест! Попробуйте запустить его с помощью codeceptjs run. Вы увидите, что браузер Chrome запускается и закрывается, а тест проходит успешно. Поскольку тест пуст, больше ничего не происходит. Итак, добавим несколько команд:

Нажмите на изображение, чтобы увеличить

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

ПОЛЬЗОВАТЕЛЬСКИЕ ШАГИ

Расширяя свои тесты e2e, вы сталкиваетесь с такими шагами, как вход в систему, которые вы повторяете снова и снова. Вместо того, чтобы каждый раз копировать эти шаги, вы можете легко переместить их в файл пользовательских шагов Codecept. При первоначальной настройке мы уже создали файл steps.js. Из нашего текущего теста имеет смысл переместить шаги, которые обрабатывают баннер cookie, в отдельную функцию, потому что я ожидаю, что мы будем использовать его в других тестах. Следуйте комментариям в файле steps.js и переместите шаги, касающиеся баннера cookie, в файл steps.js. Когда вы закончите, это должно выглядеть примерно так:

Нажмите на изображение, чтобы увеличить

Теперь вы можете использовать в своих тестах функцию clickCookieButton (), которая должна выглядеть следующим образом:

Нажмите на изображение, чтобы увеличить

ЗАКЛЮЧЕНИЕ

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

Хотели бы вы поработать в WORTH тестером? Ознакомьтесь с нашей вакансией Инженер по автоматизации тестирования.

Автор Хайн-Карл Фрийлинк, тестировщик в Worth Internet Systems