Test configuration per environment in Cypress - Build an Automation Script
/// <reference types="cypress" /> describe('Login tests per environment', () => { const environments = [ { name: 'development', baseUrl: Cypress.env('devBaseUrl'), username: Cypress.env('devUsername'), password: Cypress.env('devPassword') }, { name: 'production', baseUrl: Cypress.env('prodBaseUrl'), username: Cypress.env('prodUsername'), password: Cypress.env('prodPassword') } ]; environments.forEach(({ name, baseUrl, username, password }) => { context(`Login test on ${name} environment`, () => { beforeEach(() => { cy.visit(baseUrl + '/login'); }); it('should login successfully and redirect to dashboard', () => { cy.get('[data-test=username]').clear().type(username); cy.get('[data-test=password]').clear().type(password); cy.get('[data-test=login-button]').click(); cy.url().should('include', '/dashboard'); }); }); }); });
This test script uses Cypress to automate login tests for two environments: development and production.
We define an array environments holding the environment name, base URL, username, and password. These values come from Cypress environment variables, so no sensitive data is hardcoded.
For each environment, we create a test context. Before each test, we visit the login page using the environment's base URL.
The test enters the username and password into fields identified by data-test attributes, clicks the login button, and asserts that the URL includes /dashboard to confirm successful login.
This approach keeps tests clean, reusable, and environment-aware.
Now add data-driven testing with 3 different sets of user credentials per environment to verify login success and failure cases.