Cypress предоставляет встроенные возможности для записи тестов, позволяя фиксировать их выполнение и собирать подробную информацию о каждом прогоне. Этот функционал особенно важен для анализа ошибок, воспроизведения багов и интеграции с системами CI/CD. Запись тестов осуществляется через Cypress Dashboard и локальные механизмы логирования, обеспечивая детальный отчет о каждом действии браузера и состоянии приложения.
Для начала необходимо настроить проект для записи прогонов. Cypress
использует файл конфигурации cypress.config.js или
cypress.json в зависимости от версии. Основные параметры
записи включают:
module.exports = {
e2e: {
baseUrl: 'http://localhost:3000',
video: true,
screenshotsFolder: 'cypress/screenshots',
videosFolder: 'cypress/videos',
experimentalInteractiveRunEvents: true,
},
};
video: true — включение записи видео прогонов
тестов.screenshotsFolder и videosFolder —
указание папок для хранения скриншотов и видео.experimentalInteractiveRunEvents — позволяет
отслеживать события прогонов для более гибкой аналитики.Запуск тестов с записью выполняется командой:
npx cypress run --record --key <project-record-key>
--record указывает на необходимость записи, а
--key связывает прогон с проектом в Cypress Dashboard.
Cypress Dashboard позволяет хранить и анализировать результаты прогонов. Основные возможности:
Использование Dashboard повышает прозрачность тестирования и облегчает командную работу.
Cypress автоматически делает скриншоты при падении теста. Можно настроить ручное снятие скриншотов:
cy.screenshot('login-page');
Для записи видео всех прогонов используется параметр
video: true. Cypress сохраняет видео только для тестов,
которые запускались командой cypress run в headless-режиме.
Видео позволяет:
Cypress позволяет добавлять метаданные к тестам для удобной фильтрации:
it('Проверка логина', { tags: ['smoke', 'auth'] }, () => {
cy.visit('/login');
cy.get('#username').type('admin');
cy.get('#password').type('1234');
cy.get('button[type="submit"]').click();
cy.url().should('include', '/dashboard');
});
Теги и названия тестов помогают при аналитике прогонов в Dashboard и CI/CD, облегчая выбор тестов для повторного запуска или мониторинга конкретных функциональностей.
Запись прогонов можно интегрировать с системами уведомлений, чтобы получать сообщения о падении тестов:
Пример интеграции с Slack через CI/CD:
- name: Notify Slack
run: |
curl -X POST -H 'Content-type: application/json' \
--data '{"text":"Прогон Cypress завершился: $STATUS"}' \
$SLACK_WEBHOOK_URL
Помимо Dashboard, Cypress поддерживает локальную запись прогонов. В этом случае видео и скриншоты сохраняются на диске, а журнал логов доступен в консоли. Это полезно при тестировании на локальных ветках или при ограниченном доступе к облачным сервисам.
Запись тестовых прогонов в Cypress позволяет создавать прозрачную, воспроизводимую и управляемую среду для автоматизированного тестирования, обеспечивая полный контроль над качеством веб-приложения.