Руководство

Начало работы с кипарисом

Руководство для начинающих по сквозному тестированию

Cypress — это основанная на JavaScript универсальная платформа для сквозного тестирования, в которой уже есть все встроенные функции, которые могут вам понадобиться.

Но что такое сквозное тестирование?
E2E (или цепное тестирование) — это метод тестирования программного обеспечения, при котором тестируется весь продукт от начала до конца, чтобы убедиться, что поток приложений ведет себя надлежащим образом. ожидал.

Каковы встроенные функции?
Ну, у вас будет доступ к среде тестирования (Mocha) и библиотеке утверждений (Chai). Насмешки и заглушки (Синон) также включены. В отличие от Selenium, вы можете писать тесты только на JavaScript. Итак, если вы хотите использовать Cypress, вам нужно хотя бы немного знать JS.

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

Установка Cypress
В папке проекта запустите:

npm i cypress --save-dev

Чтобы открыть пользовательский интерфейс, используйте эту команду:

npx cypress open

Вы увидите кучу примеров в разных папках.
А пока вернемся к нашему проекту.

Начало работы
Убедитесь, что установлена ​​более новая версия Node.js, а также пакет NPM serve, и запустите:

npx serve

Это запустит сервер разработки, и вы сможете увидеть приложение.

Напишите свой первый тестовый пример
В папке нашего проекта/Cypress/Integration/todolist создайте новый файл с именем todolist.spec.js .

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

beforeEach() выполняется перед каждым тестовым случаем.
В третьей строке cy относится к самому Cypress, а visit — это метод просмотра по заданному пути.

Далее мы собираемся встретиться с реальным тестовым блоком, который называется it.
Имейте в виду, что вы должны помещать каждый тестовый блок в файл describe.

get — это метод выбора элементов на странице. При его использовании мы говорим Cypress «захватить идентификатор заголовка на странице».

А теперь давайте посмотрим на наш первый тест!

Запуск теста
Откройте терминал и выполните:

npx cypress open

Вы должны увидеть открытие пользовательского интерфейса Cypress.
Из списка выберите todolist.spec.js, чтобы начать тест.
После этого вы увидите, как Cypress открывает браузер и просматривает страницу.

Вот ваш первый пройденный тест с помощью Cypress!

Как мы обсуждали ранее, и visit(), и get() являются командами Cypress, и их также называют неявными утверждениями. Эти команды не являются независимыми и всегда зависят от ранее связанной родительской команды. Также, если элемент находится на странице, Cypress посчитает проверку пройденной.

Теперь давайте посмотрим на другую команду из нашего предыдущего фрагмента кода: should(). Он создает утверждение и используется в различных случаях. Например, мы проверили, виден ли определенный элемент на странице. Другой пример:

Давайте продолжим с новым тестовым случаем:

Если вы хотите проверить более одного условия, вы можете использовать команду and(). Это псевдоним should(), и он работает как связующее звено между утверждениями.

В Cypress есть много команд с самоописанием, и type() также является одной из них. Неудивительно, что он будет введен в выбранный нами элемент.

Текст, введенный в type(), может включать специальные символы, такие как backspace, esc, enter и т. д. В документации Cypress представлено множество других.

check() используется для флажков или переключателей. Эти элементы должны быть типа <input>.

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

Одно из них называется путешествие во времени. Команды интерактивны, и когда мы наводим курсор на событие click(), это дает нам возможность вручную проверить DOM нашего тестируемого приложения во время создания моментального снимка. Cypress также выделяет элементы.

Другой — целевая метка рядом с кнопкой обновить. Когда выбрано, вы можете выбрать элементы на странице. Это упрощает тестирование, так как вам не нужно искать каждый элемент в исходном коде.

На этом мы можем завершить это базовое руководство для начинающих. Отличная работа!

Заключение
Надеюсь, вы узнали что-то новое из этой статьи!

С Cypress тестирование E2E становится еще более приятным, чем когда-либо прежде, а со всеми инструментами — еще проще. Попробуйте, если еще не пользовались!

Подробнее об этом можно узнать в замечательной Cypress Docs.

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

Спасибо за чтение!