Bird
Raised Fist0
Cypresstesting~15 mins

Cypress Dashboard (Cloud) service - Build an Automation Script

Choose your learning style10 modes available
Verify Cypress Dashboard records test run and shows correct test results
Preconditions (3)
Step 1: Run Cypress tests with the command 'npx cypress run --record --key <project-record-key>'
Step 2: Wait for tests to complete
Step 3: Log in to Cypress Dashboard at https://dashboard.cypress.io
Step 4: Navigate to the linked project
Step 5: Open the latest test run report
Step 6: Verify that the test run shows the correct number of tests passed and failed
Step 7: Verify that screenshots and videos (if enabled) are available for failed tests
✅ Expected Result: The Cypress Dashboard shows the test run with accurate pass/fail counts and displays screenshots/videos for failed tests.
Automation Requirements - Cypress
Assertions Needed:
Verify test run command completes successfully
Verify Dashboard API returns test run summary with correct pass/fail counts
Verify screenshots and videos URLs are present in Dashboard API response for failed tests
Best Practices:
Use Cypress environment variables for Dashboard record key
Use Cypress commands to run tests and capture results
Use API calls to Cypress Dashboard to verify test run data
Avoid hardcoding sensitive keys in code
Use explicit waits for API responses
Automated Solution
Cypress
/// <reference types="cypress" />

// This script runs Cypress tests with recording enabled and verifies Dashboard data via API

const dashboardProjectId = '<your-project-id>'
const dashboardRecordKey = Cypress.env('CYPRESS_RECORD_KEY')

// Step 1: Run tests with recording
// This is normally done outside test code, but we simulate here for demonstration

// Step 2: After tests run, verify Dashboard data via API

describe('Cypress Dashboard Verification', () => {
  it('should verify test run data on Cypress Dashboard', () => {
    // Call Cypress Dashboard API to get latest runs
    cy.request({
      method: 'GET',
      url: `https://dashboard.cypress.io/projects/${dashboardProjectId}/runs`,
      headers: {
        Authorization: `Bearer ${dashboardRecordKey}`
      }
    }).then((response) => {
      expect(response.status).to.eq(200)
      const runs = response.body.runs
      expect(runs).to.have.length.greaterThan(0)

      const latestRun = runs[0]
      expect(latestRun).to.have.property('stats')
      expect(latestRun.stats).to.have.property('tests')
      expect(latestRun.stats).to.have.property('passes')
      expect(latestRun.stats).to.have.property('failures')

      // Check that passes + failures equals total tests
      expect(latestRun.stats.passes + latestRun.stats.failures).to.eq(latestRun.stats.tests)

      // Verify screenshots and videos exist for failed tests
      if (latestRun.stats.failures > 0) {
        expect(latestRun).to.have.property('screenshots')
        expect(latestRun.screenshots.length).to.be.greaterThan(0)
        expect(latestRun).to.have.property('videos')
        expect(latestRun.videos.length).to.be.greaterThan(0)
      }
    })
  })
})

This test script uses Cypress to verify that the Cypress Dashboard service correctly records test runs.

First, it assumes tests have been run with the --record flag and a valid record key.

Then, it calls the Cypress Dashboard API to fetch the latest test runs for the project.

Assertions check that the API response is successful, that the latest run has test statistics, and that the sum of passes and failures equals total tests.

If there are failed tests, it verifies that screenshots and videos are present in the run data.

We use environment variables for sensitive keys and explicit assertions for clarity and reliability.

Common Mistakes - 3 Pitfalls
Hardcoding the Cypress Dashboard record key in the test code
Not waiting for the test run to complete before querying the Dashboard API
Using UI scraping to verify Dashboard data instead of API calls
Bonus Challenge

Now add data-driven testing to verify Dashboard test run data for 3 different projects with different record keys.

Show Hint

Practice

(1/5)
1. What is the main purpose of the Cypress Dashboard (Cloud) service?
easy
A. To replace the Cypress test runner
B. To collect and display test results online for better tracking
C. To write test scripts automatically
D. To run tests locally without internet connection

Solution

  1. Step 1: Understand the role of Cypress Dashboard

    The Cypress Dashboard service collects test results and shows them online.
  2. Step 2: Compare options with this role

    Only To collect and display test results online for better tracking describes collecting and displaying test results online for tracking.
  3. Final Answer:

    To collect and display test results online for better tracking -> Option B
  4. Quick Check:

    Cypress Dashboard = Online test results tracking [OK]
Hint: Dashboard = online test results viewer [OK]
Common Mistakes:
  • Thinking Dashboard runs tests locally
  • Confusing Dashboard with test script writing
  • Assuming Dashboard replaces test runner
2. Which command option is used to send test results to the Cypress Dashboard service?
easy
A. --sync
B. --upload
C. --record
D. --push

Solution

  1. Step 1: Recall the command to send results

    The --record option is used with the project key to send test results to the Dashboard.
  2. Step 2: Verify other options

    Options like --upload, --sync, and --push are not valid Cypress commands for this purpose.
  3. Final Answer:

    --record -> Option C
  4. Quick Check:

    Send results = --record [OK]
Hint: Use --record to send results [OK]
Common Mistakes:
  • Using --upload instead of --record
  • Confusing with git push commands
  • Omitting the project key with --record
3. Given the command cypress run --record --key abc123, what is the expected outcome?
medium
A. Tests run and results are sent to Dashboard with key abc123
B. Tests fail to run due to missing project key
C. Tests run locally without sending results
D. Tests run but results are saved only locally

Solution

  1. Step 1: Analyze the command options

    The command includes --record and a project key abc123, which means results will be sent to the Dashboard.
  2. Step 2: Understand the effect

    Tests run normally and results are uploaded to the Dashboard service using the provided key.
  3. Final Answer:

    Tests run and results are sent to Dashboard with key abc123 -> Option A
  4. Quick Check:

    --record + key = send results [OK]
Hint: --record with key sends results online [OK]
Common Mistakes:
  • Assuming tests run without sending results
  • Thinking project key is optional
  • Confusing local save with Dashboard upload
4. You run cypress run --record but get an error about missing project key. What is the fix?
medium
A. Add the --key option with your project key
B. Remove --record to run tests locally
C. Update Cypress to latest version
D. Run tests without internet connection

Solution

  1. Step 1: Identify the error cause

    The error about missing project key means --record was used without specifying --key.
  2. Step 2: Apply the fix

    Add --key your_project_key to the command to authenticate and send results.
  3. Final Answer:

    Add the --key option with your project key -> Option A
  4. Quick Check:

    Missing key error = add --key [OK]
Hint: Always provide --key with --record [OK]
Common Mistakes:
  • Ignoring the missing key error
  • Removing --record instead of adding key
  • Assuming update fixes key error
5. Your team wants to track flaky tests using Cypress Dashboard. Which combination helps achieve this best?
hard
A. Run tests without Dashboard and email reports daily
B. Run tests locally and share screenshots manually
C. Disable recording and rely on console logs only
D. Use --record with project key and enable Dashboard retries

Solution

  1. Step 1: Understand flaky test tracking

    Flaky tests are unstable tests that sometimes fail. Cypress Dashboard can track retries and failures.
  2. Step 2: Identify best practice

    Using --record with the project key sends results to Dashboard, and enabling retries in Dashboard helps track flaky tests.
  3. Final Answer:

    Use --record with project key and enable Dashboard retries -> Option D
  4. Quick Check:

    Track flaky tests = record + retries [OK]
Hint: Record tests and enable retries in Dashboard [OK]
Common Mistakes:
  • Relying on manual screenshots only
  • Disabling recording loses Dashboard benefits
  • Using email reports misses real-time tracking
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard