Параллельное выполнение тестов в Cypress позволяет существенно сокращать время проверки за счёт распределения тестов между несколькими воркерами. Воркеры — это независимые процессы, каждый из которых запускает отдельную часть тестового набора. Cypress использует стратегию sharding, распределяя тесты по воркерам автоматически на основе количества файлов тестов.
Ключевые преимущества параллельного запуска:
Установка Cypress Dashboard Для полноценной работы параллельного режима необходимо использовать Cypress Dashboard. Он обеспечивает координацию воркеров и хранение статистики выполнения. Установка выполняется через npm:
npm install --save-dev cypressИдентификация проекта Для включения
параллельного выполнения проект должен быть зарегистрирован в Dashboard.
После регистрации Cypress выдаёт projectId, который
необходимо добавить в cypress.config.js:
const { defineConfig } = require('cypress');
module.exports = defineConfig({
projectId: 'ваш_projectId',
e2e: {
setupNodeEvents(on, config) {
// события можно подключать здесь
},
},
});Разделение тестов между воркерами Cypress
автоматически распределяет тестовые файлы, если запуск выполняется с
параметром --parallel. Для оптимальной работы важно:
Пример запуска:
npx cypress run --record --key <CYPRESS_RECORD_KEY> --parallel
Параметр --record отправляет результаты в Dashboard, а
--parallel активирует распределение тестов между
воркерами.
Количество воркеров Cypress автоматически
определяет оптимальное количество воркеров на основе числа доступных
CPU. Можно задавать вручную через параметр --ci-build-id
для идентификации конкретного билда:
npx cypress run --record --key <CYPRESS_RECORD_KEY> --parallel --ci-build-id 1234Повторные попытки (retries) В параллельном режиме важно настроить корректное количество попыток повторного запуска упавших тестов. Это снижает вероятность ложных ошибок при нестабильных соединениях или случайных сбоях:
module.exports = defineConfig({
e2e: {
retries: {
runMode: 2,
openMode: 0
}
}
});Фильтрация тестов по воркерам Cypress поддерживает стратегию распределения тестов на основе хеширования имени файла, что обеспечивает равномерное распределение нагрузки. Дополнительно можно использовать теги или группы тестов для точного контроля.
Параллельные воркеры особенно эффективны в интеграции с CI/CD:
npx cypress run с параметром
--parallel.CYPRESS_PARALLEL_LIMIT.Настройка параллельных воркеров в Cypress является ключевым элементом оптимизации тестовых прогонов, особенно при больших наборах тестов и CI/CD интеграциях. Эффективное использование этой функциональности требует правильной структуры тестов, корректного управления состояниями и внимательного подхода к конфигурации Dashboard и параметров запуска.