Cypress Utils is a command-line interface for parallelizing and stress-testing your Cypress tests.
To get started, just run npx cypress-utils --help
.
To speed up day-to-day local Cypress test runs (e.g. before committing changes to a branch), multiple Cypress test runners can be ran in parallel. The impact on system resources is surprisingly manageable, even with multiple concurrent runners.
In my unscientific n=1 sample size of running an entire suite, specifying two concurrent test runners provided the best results.
The total elapsed time was reduced by 38% when running a set of 12 tests in two concurrent threads
To run the entire suite in parallel, exclude any additional command-line arguments:
cypress-utils run-parallel
Use the command-line option excludeSpecPattern
to exclude specific files.
cypress-utils run-parallel --excludeSpecPattern *.hot-update.js
To run two or more specific test files in parallel, just specify the files to run:
cypress-utils run-parallel specFileA.cy.js specfileB.cy.js
See more command-line options with
cypress-utils run-parallel --help
To ensure your Cypress tests are not irregularly failing with false-negatives, stress testing new test files can be a reliable way of filtering out bad test code.
To stress test one or more test files, simply specify the files to run:
cypress-utils stress-test specFileA specfileB
Additional command-line options may be specified, such as the sample size or number of concurrent threads:
cypress-utils stress-test --trialCount 12 --threads 4
See more command-line options with
cypress-utils stress-test --help
Install Cypress Utils to your project as a development dependency:
npm install --save-dev cypress-utils
Or run it once with the node package runner:
npx cypress-utils --help
Clone the repository:
git clone https://github.com/trentrand/cypress-utils.git
Install package dependencies:
cd /path/to/cypress-utils
npm install
Make cypress-utils
globally executable:
npm link
Cypress Utils are now executable globally with the command cypress-utils
.