Browserstack
Reference: https://www.browserstack.com/docs/automate/cypress
Setup
Install browserstack-cypress-cli
package
yarn add browserstack-cypress-cli
ORnpm i browserstack-cypress-cli
Run browserstack-cypress-cli init
This will generate your browserstack.json file
Update the generated browserstack.json
file with your Browserstack credentials and some configs
Required changes
replace the
auth
credentialsupdate
cypress_config_file
location, e.g. tocypress.config.js
update
parallels
option, e.g. to"1"
set
downloads
to your cypress-image-diff screenshot and report location:it will be used later on when updating baseline images
for example:
add all your test running dependencies to
npm_dependencies
Recommended changes
update the browsers section according to your preferences
Running the tests
You can now run the tests with the browserstack-cypress run
command
Reference: https://www.browserstack.com/docs/automate/cypress#run-your-first-test
Artifacts
Upon running the browserstack-cypress run
command with the --sync
flag. It will sync the Browserstack build's artifacts to your local machine under build_artifacts
folder.
Reference: https://www.browserstack.com/docs/automate/cypress/custom-reports-build-artifacts
Updating baseline images
After running the tests with the previously mentioned browserstack-cypress run
command you can simply copy the given comparison image from your local build_arfifacts/build_id/../../cypress-image-diff-screenshots/comparison
folder and move it to the cypress-image-diff-screenshots/baseline
images folder. Which will serve as the new basline images for any futures test runs.
Creating browser + OS specific baseline images
In order to create browser specific baseline image we can use Cypress environmental variables.
For example:
When running the
CYPRESS_BROWSER="chrome@latest:OS X Ventura" browserstack-cypress run --sync --browser "chrome@latest:OS X Ventura"
It will override the browser configs in
browserstack.json
fileTests will generate browser/OS specific baselines image like
browserstack.spec.cy.ts-chrome@latest:OS X Ventura-example.png
Drawback: You have to trigger a new browserstack build for each browser and OS combinations
Example project setups
Javascript
https://github.com/tamasmagyar/cypress-image-diff-js-browserstack-integration
Typescript
https://github.com/tamasmagyar/cypress-image-diff-js-browserstack-integration-typescript
Example browserstack.json
Last updated