---
title: Cypress Automated Testing | TestingBot
description: Run Cypress Automated Tests on a browser grid in the cloud. Run Cypress
  tests at scale with a cloud automation test grid.
source_url:
  html: https://testingbot.com/support/web-automate/cypress
  md: https://testingbot.com/support/web-automate/cypress/index.md
---
# Cypress Testing

Cypress provides easy and fast testing on Chrome, Firefox and Microsoft Edge.   
 TestingBot has a CLI tool that will run your Cypress tests on the TestingBot browser grid.

Perform Cypress automation in the cloud, with TestingBot's browser grid. This will allow you to run Cypress tests in parallel on a wide collection of browsers; test on different versions and operating systems.

By default the CLI is using **Cypress v13.3.3** ([change](https://testingbot.com/support/web-automate/cypress/version)). Testing is available on these platforms:

 key | value | possible values || platform | The Operating System (OS) you want to run the tests on. | 
- `WIN11`
- `WIN10`
- `TAHOE`
- `SEQUOIA`
- `SONOMA`
- `VENTURA`
- `MONTEREY`
- `BIGSUR`
- `CATALINA`
- `MOJAVE`

 |
| browserName | The browser you want to run the tests on. | `chrome`, `firefox` and `microsoftedge` |
| version | The version of the browser | **Chrome:** version `70` to `latest`  
**Firefox:** version `70` to `latest`  
**Edge:** version `80` to `latest` **(WIN10 only)** |
| screenResolution | Specify a screen resolution for your test. | See a [list of screen resolutions](https://testingbot.com/support/web-automate/selenium/test-options#screenresolution) |

## Install the CLI

To get started with the CLI, please install it with `npm` or `yarn`:

    $ npm install testingbot-cypress-cli

You can find the repository for the CLI on [github@testingbot-cypress-cli](https://github.com/testingbot/testingbot-cypress-cli)

## Configuration

Once installed, you'll need to provide the CLI with a `testingbot.json` configuration file.   
 This file contains various settings, including the path to your Cypress tests.

To generate a configuration file, you can use the `init` command:

    $ testingbot-cypress init

Please add the `key` and `secret` you obtained from the TestingBot [member dashboard](https://testingbot.com/members/user/edit) in the `testingbot.json` file.

Next, please supply `cypress_proj_dir` with the path to the folder that contains the `cypress.json` or `cypress.config.js` file.   
 As an example, you can use the [Cypress Kitchen Sink Example](https://github.com/cypress-io/cypress-example-kitchensink).

Before you can run your tests, you need to specify on which browser (version) and platform you'd like to test.

You can specify the browsers you want to use in the `testingbot.json` file:

    {
        "auth": {
            "key": "TESTINGBOT_KEY",
            "secret": "TESTINGBOT_SECRET"
        },
        "browsers": [
            {
    	        "browserName": "chrome",
    	        "platform": "VENTURA",
    	        "version": "latest"
    	    },
    	    {
    	        "browserName": "chrome",
    	        "platform": "WIN10",
    	        "version": "latest"
    	    }
        ],
        "run_settings": {
            "cypress_project_dir": ".../cypress/cypress-example-kitchensink",
            "build_name": "cypress-build",
            "npm_dependencies": {},
            "package_config_options": {},
            "start_tunnel": true,
            "local_ports": [8080],
            "realTimeLogs": true,
            "parallel": 5
        },
        "tunnel_settings": {
            "verbose": false
        }
    }

## Run tests

You are now ready to run your Cypress tests on TestingBot. Instead of using the Cypress test runner, you can use TestingBot's test runner.

Run the following command:

    $ testingbot-cypress run

This will zip your Cypress tests, upload them to TestingBot and instruct TestingBot to start running the tests on the platform(s) you specified in the configuration file. The CLI will then display a link to view a live feed of your Cypress tests and will return realtime logs of the Cypress client running on TestingBot.

Once the tests have finished running, the CLI will exit with `code 1` (failure) or `code 0` (success).

## Example

As an example, you can use [cypress-example-kitchensink](https://github.com/cypress-io/cypress-example-kitchensink)

These are the steps you need to follow to run the example on TestingBot:

- Clone the kitchensink repo and install the dependencies: `npm install`
- Start the kitchensink example: `npm start`
- Add the local port used by kitchensink (8080) to the `local_ports` array, this way the TestingBot VMs can access the port. 
- Change the `cypress_project_dir` to point to the path where you installed the example. 
- Run the tests: 

    $ testingbot-cypress run

- Test results will appear in your console and on the [TestingBot dashboard](https://testingbot.com/members). 

## Options

Several options are available in the `testingbot.json` file.

- `cypress_project_dir`: this needs to be specified and is the directory (absolute path) where your cypress configuration file is located. `cypress.json` or `cypress.config.js`. 
- `build_name`: this will set the build name on TestingBot. All Cypress tests will be grouped under this name. 
- `npm_dependencies`: you can list the NPM dependencies that your Cypress project requires here: 

    "npm_dependencies": {
      "npm-package-1": "^1.0.1",
      "npm-package-2": "^1.2.3-beta",
    }

- `package_config_options`: the config options for each of the npm dependencies you specified: 

    "package_config_options": {
      "npm-package-1": {
        "option1": true,
        "option2": "some-value"
      }
    }

- `start_tunnel`: should the CLI start a [TestingBot Tunnel](https://testingbot.com/support/tunnel) to access websites on your local computer/network? 
- `local_ports`: an array of ports that Cypress is using on your local computer. Use this in combination with `start_tunnel = true` to run tests from your local computer or network. 
- `realTimeLogs`: should the CLI display a real-time feed of the Cypress logs? 
- `tunnel_settings`: add additional [Tunnel options](https://testingbot.com/support/tunnel/commandline) to the TestingBot tunnel process. 

## Environment Variables

The CLI supports various Environment Variables:

- You can use `TESTINGBOT_KEY` and `TESTINGBOT_SECRET` to pass the TestingBot credentials to the CLI. 
- If you set `TESTINGBOT_CI=1` then the CLI will output the `TestingBotSessionID` which can be used in combination with one of our [CI plugins](https://testingbot.com/integrations#ci). 

## Limitations

While TestingBot supports most of the features Cypress provides, there are some that are not yet supported.   
 Below is a list of features we currently do not support. If you'd like us to add support for these, please [reach out](https://testingbot.com/contact/new).

- Cypress Component Testing 
- Module API 
- Test Replay

Was this page helpful? Yes No 

## Looking for More Help?

Have questions or need more information?   
 You can reach us via the following channels:

- [Email us](https://testingbot.com/contact/new)
- [Join our Slack Channel](https://join.slack.com/t/testingb0t/shared_invite/zt-3bcw9xch-jk19~6XPs_xBrsAgAedkCw)
