Quiero probar el inicio de sesión con varios usuarios en una sola prueba en lugar de iniciar sesión con uno, luego cerrar sesión y luego pasar a una prueba duplicada y usar diferentes usuarios.
Este es el JSON que usaré para obtener datos
[ { "id": "standard User", "username": "standard_user", "password": "secret_sauce" }, { "id": "locked out user", "username": "locked_out_user", "isComplete": "secret_sauce" }, { "id": "Problem user", "username": "problem_user", "password": "secret_sauce" }, { "id": "perfromance glitch user", "username": "performance_glitch_user", "password": "secret_sauce" }, { "id": "Invalid User", "username": "perform", "password": "secret12" } ]Y debajo está el guión.
it('Login with multple users', () => { //Logging in with the first User. cy.visit('/') cy.get('[data-test="username"]').type(user[0].username) cy.get('[data-test="password"]').type(user[0].password) cy.get('[data-test="login-button"]').click() cy.url('https://www.saucedemo.com/inventory.html') // Logging in with the second User. cy.visit('/') cy.get('[data-test="username"]').type(user[1].username) cy.get('[data-test="password"]').type(user[1].password) cy.get('[data-test="login-button"]').click() cy.get('[data-test="error"]').should('have.text', 'Epic sadface: Sorry, this user has been locked out.') }); });Puedes hacer algo como esto:
it('Login with multiple users', () => { cy.readFile('cypress/fixtures/users.json').then((users) => { users.forEach((user) => { cy.visit('/') cy.get('[data-test="username"]').type(user.username) cy.get('[data-test="password"]').type(user.password) cy.get('[data-test="login-button"]').click() cy.url('https://www.saucedemo.com/inventory.html') cy.get('[data-test="error"]').should( 'have.text', 'Epic sadface: Sorry, this user has been locked out.' ) }) }) }) También en su JSON, en la segunda entrada no hay un campo de password en su lugar, hay isComplete .