Dashboard and API

Running the full sorry-cypress kit - setting up web dashboard to store and browse test results

The basic setup of sorry-cypress is already quite useful - we can run cypress tests in parallel without any limitations.

However, we want to store and see the tests results, explore errors, screenshots and videos.

Running sorry-cypress kit

We are going to run the full sorry-cypress kit:

  1. director service will use MongoDB to store the test runs and the results

  2. API service (a GraphQL interface to MongoDB) to let us issue queries and retrieve tests results

  3. Dashboard service - a web dashboard implemented in ReactJS to let us browser the results in a browser

  4. minio will let us to store files - videos and screenshots generated by cypress agents

We are going to run all the services locally using docker-compose

# get docker-compose file
curl --output docker-compose.minio.yml https://raw.githubusercontent.com/sorry-cypress/sorry-cypress/master/docker-compose.minio.yml
# start the services
docker-compose -f ./docker-compose.minio.yml up
  • Make sure to install a modern version of docker-compose

  • Shut down any stale sorry-cypress services with docker kill

After successfully running docker-compose we have:

Open the dashboard at http://localhost:8080

Empty sorry-cypress dashboard

Setup Screenshots Upload

We are using minio service to store file generated by cypress agents - video recordings and failed tests screenshots. Each agent uploads the files directly to minio .

Edit your /etc/hosts file to allow cypress agents to discover the local instance of minio

127.0.0.1 storage

Running cypress tests in parallel

director is running in a Docker container, but it is still accessible at http://localhost:1234. We have already reconfigured cypress to use this URL, let's just run the tests again.

Open several terminal windows within a directory with tests and run cypress in each.

# run in each terminal
cypress run --parallel --record --key somekey --ci-build-id hello-cypress

As soon as agents start their execution, refresh the dashboard. You'd see a new project and a new run created.

Use the same --ci-build-id value to associate different cypress agents with the same run.

Exploring the dashboard

The dashboard is quite simple - go ahead and explore the tests you have just created.

Dashboard example - list of tests and results for a run

Congratulations 🎉

You have set up sorry-cypress on your local machine, now you can run unlimited cypress tests and use the dashboard to browse the results.

In the next article we'll learn how to setup sorry-cypress in cloud using different cloud providers.