habrahabr

Как проводить сквозное (end-to-end) тестирование вашего приложения используя Cypress.io

  • среда, 5 мая 2021 г. в 00:36:25
https://habr.com/ru/post/555628/
  • Тестирование IT-систем
  • JavaScript
  • Тестирование веб-сервисов


Изображение от https://unsplash.com/@kellysikkema
Изображение от https://unsplash.com/@kellysikkema

В этой статье вы узнаете:

  • Что такое Cypress и когда его стоит использовать

  • Основы тестирования с использованием Cypress

  • Расширенные команды Cypress

  • Взаимодействие с элементами пользовательского интерфейса

  • Лучшие практики с использованием Cypress


Введение

Чтобы протестировать свои приложения, вам потребуется сделать следующие шаги:

  • Запустить приложение

  • Подождать пока сервер запустится

  • Провести ручное тестирование приложения(нажать на кнопки, ввести случайные текст в поля ввода или отправить форму)

  • Проверить, что результат вашего теста корректен(изменения заголовка, части текста и т.д.)

  • Повторить эти шаги ещё раз после простых изменений кода

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

Именно здесь в игру вступает Cypress. При использовании Cypress единственное, что вам нужно сделать, это:

  • Написать код вашего теста(нажатие на кнопку, ввод текста в поля ввода и т.п.)

  • Запустить сервер

  • Запустить или перезапустить тест

Только и всего! Библиотека Cypress выполняет все тесты за вас. И самое приятное, что она не только сообщает вам все ли ваши тесты успешны или нет, но также сообщает вам, какой тест не удался.

Помимо этого, тестирование вашего кода — отличная практика, поэтому вам придется позже изучить соответствующий фреймворк. Cypress позволяет запускать тесты за считанные минуты.

Теперь, когда мы обсудили преимущества Cypress, давайте узнаем об основах этой библиотеки.


Начало

Установка и настройка Cypress

Сначала создайте отдельную папку для вашего проекта, а затем инициализируйте ее:

Инициализация проекта
Инициализация проекта

Наконец, чтобы установить библиотеку Cypress:

Установка Cypress
Установка Cypress

Примечание . Если вы используете дистрибутив Linux, перейдите к этим инструкциям, прежде чем продолжить установку Cypress через NPM.

Теперь, когда Cypress установлен, попробуйте запустить его с помощью следующей команды:

Открытие Cypress
Открытие Cypress

Она открывает запускалку тестов(Test Runner):

Интерфейс Test Runner
Интерфейс Test Runner

А теперь давайте перейдём к написанию тестов.


Основы Cypress

Создание файла

Cypress требует, чтобы все наши тесты находились в каталоге cypress/integration. Сначала перейдите в этот каталог:

Переход к cypress/integration
Переход к cypress/integration

Теперь создайте файл JavaScript с именем basicTest.js:

Создание JavaScript файла
Создание JavaScript файла

Если вы не отключили сервер Cypress, ваши новые файлы появятся в Test Runner в реальном времени:

Обновление структуры файлов в реальном времени
Обновление структуры файлов в реальном времени

Теперь давайте напишем наш первый тест.

Простые тесты с утверждением и ожиданием значения

В вашем файле /cypress/integration/basicTest.js напишите следующий код:

Код к файлу basicTest.js
Код к файлу basicTest.js
  • Строка 1: Функция describe сообщает Cypress название набора наших тестов.

  • Строка 2: Функция it, обозначает название теста.

  • Строка 3: Создаём утверждение. Здесь мы подтверждаем, что 2 + 2 равно 4. Если тест вернёт false, то он будет немедленно остановлен.

Чтобы запустить вашу программу, щёлкните по basicTest.js в вашем сервере Cypress.

Щелчок по basicTest.js в Test Runner
Щелчок по basicTest.js в Test Runner

Результат запуска:

Результат запуска теста
Результат запуска теста

Отлично! Значит, наше утверждение было успешным.

Что, если мы сделаем заведомо ложное утверждение? Теперь в /cypress/integration/basicTest.js добавьте следующий код в пределах функции describe:

Код для добавление в basicTest.js
Код для добавление в basicTest.js
  • Строка 2: Если сумма 4 и 5 равна 10, тест будет пройден. В противном случае, незамедлительно остановлен.

Снова запустите код. Результат будет:

Результат нашего второго теста
Результат нашего второго теста

Обратите внимание, как наш второй тест не удался. Если бы результат был правильным, тест прошел бы успешно.

Давайте больше поиграем с утверждениями. Добавьте в basicTest.js следующий код:

Код для добавления в basicTest.js
Код для добавления в basicTest.js
  • Строка 2: Если сумма 5 и 5 не равна 100, то тест должен пройти.

Результат выполнения теста:

Результат теста: успешно!
Результат теста: успешно!

Отлично! Наш тест прошел. Функция expect выполняет  BDD (behavior-driven) утверждения. В следующем разделе мы выполним утверждения, основанные на тестировании(test-driven assertions).

Сейчас /cypress/integration/basicTest.jsдолжен выглядеть так:

Заключение

Тестирование — ключевой шаг в процессе разработки, поскольку он обеспечивает правильную работу вашего приложения. Некоторые программисты предпочитают вручную тестировать свои программы, поскольку написание тестов требует значительного количества времени и энергии. К счастью, Cypress решил эту проблему, позволив разработчику писать тесты в короткие сроки.

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