No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Convierte tus certificados en títulos universitarios en USA

Antes: $249

Currency
$209

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Suscríbete

Termina en:

17 Días
10 Hrs
39 Min
58 Seg

Probando el status code

6/17
Recursos

Aportes 7

Preguntas 1

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Request

.
📚 Documentación
.
Tomando como referencia la lista de argumentos que se envían como opciones podemos adicionar más elementos a nuestra request.
.
Si necesitamos enviar datos, como lo es una creación, tenemos la siguiente definición:

cy.request('POST', 'URL', { name: 'Fionna Delahunty', email: '[email protected]'})

Una buena practica cuando se está creando datos en la base de datos por una prueba automatizada es limpiar la base de datos, si tú objetivo es simplemente validar que el empleado se crea bien, entonces no lo necesitas para más adelante por eso es mejor borrarlo enseguida. Ahora imagínalo en un pipeline de Integración Continua, crearía demasiados usuarios, y eso para la base de datos y otros servicios no sería óptimo.
Acá un ejemplo:

it("should validate 201 Created status code when creating a new employee and 200 Ok status code when deleting the just created employee", function () {
    cy.request("POST", "employees", {
      name: "Joe",
      lastname: "Doe",
      email: "[email protected]",
    }).as("createdEmployee");

    cy.get("@createdEmployee").its("status").should("eq", 201);

    cy.get("@createdEmployee")
      .its("body")
      .its("id")
      .then((createdEmployeeId) => {
        cy.request("DELETE", `employees/${createdEmployeeId}`)
          .its("status")
          .should("eq", 200);
      });
  });
 it('Debe de validar el status code exitoso de la creacion', () => {
        cy.request({method: 'POST', url: 'employees'})
            .its('status')
            .should('eq', 201)
    })

 it('Debe de validar el status code exitoso de la actualizacion', () => {
                cy.request({method: 'PUT', url: 'employees/5'})
                    .its('status')
                    .should('eq', 200)
     })
 it('Debe de validar el status code exitoso de la eliminacion', () => {
                         cy.request({method: 'DELETE', url: 'employees/5'})
                             .its('status')
                             .should('eq', 200)
      })
La clave aquí es la opción `failOnStatusCode: false`, que le dice a Cypress que no falle automáticamente si el código de estado no es 2xx. Esto te permite verificar manualmente el código de estado en la siguiente línea. `describe("Probando status", () => {  it("Validar el status code exitoso", () => {    ``//se valida que el status code sea 200``    cy.request("employees").its("status").should("eq", 200);  });  it("Validar el status code fallido", () => {    ``//se valida que el status code sea 404 fallido``    cy.request({url: "employees/6", failOnStatusCode: false}).its("status").should("eq", 404);  });});`
```js describe('Probando statuses', ()=>{ it('Debe de validar el status code exitoso',()=>{ cy.request('employees') .its('status') .should('eq', 200) }); it('Debe de validar el status code fallido',()=>{ cy.request({url:'employees/4', failOnStatusCode: false}) .its('status') .should('eq', 404) }); }); ```describe('Probando statuses', ()=>{     it('Debe de validar el status code exitoso',()=>{         cy.request('employees')        .its('status')        .should('eq',  200)    });     it('Debe de validar el status code fallido',()=>{        cy.request({url:'employees/4', failOnStatusCode: false})        .its('status')        .should('eq', 404)    });});
Pueden usar este codigo que testea un api en linea gratuita: ```js describe("Apis", () => { it("index - getAll", () => { cy.request("https://jsonplaceholder.typicode.com/todos").as("response"); cy.get("@response").its("body").as("body"); cy.get("@response").its("status").as("status"); cy.get("@status").should("eq", 200); cy.get("@body").should("not.be.empty"); cy.get("@body").its(0).as("firstItem"); cy.get("@firstItem").should("have.property", "userId").and("be.a", "number"); cy.get("@firstItem").should("have.property", "id").and("be.a", "number"); cy.get("@firstItem").should("have.property", "title").and("be.a", "string"); cy.get("@firstItem").should("have.property", "completed").and("be.a", "boolean"); }) }) ```
Pueden usar este mismo código para las pruebas, se testea una api en linea y gratuita: ```js describe("Apis", () => { it("index - getAll", () => { cy.request("https://jsonplaceholder.typicode.com/todos").as("response"); cy.get("@response").its("body").as("body"); cy.get("@response").its("status").as("status"); cy.get("@status").should("eq", 200); cy.get("@body").should("not.be.empty"); cy.get("@body").its(0).as("firstItem"); cy.get("@firstItem").should("have.property", "userId").and("be.a", "number"); cy.get("@firstItem").should("have.property", "id").and("be.a", "number"); cy.get("@firstItem").should("have.property", "title").and("be.a", "string"); cy.get("@firstItem").should("have.property", "completed").and("be.a", "boolean"); }) }) ```*describe*("Apis", () *=>* { *it*("index - getAll", () *=>* { *cy.request*("https://jsonplaceholder.typicode.com/todos")*.as*("response"); *cy.get*("@response")*.its*("body")*.as*("body"); *cy.get*("@response")*.its*("status")*.as*("status"); *cy.get*("@status")*.should*("eq", 200); *cy.get*("@body")*.should*("not.be.empty"); *cy.get*("@body")*.its*(0)*.as*("firstItem"); *cy.get*("@firstItem")*.should*("have.property", "userId")*.and*("be.a", "number"); *cy.get*("@firstItem")*.should*("have.property", "id")*.and*("be.a", "number"); *cy.get*("@firstItem")*.should*("have.property", "title")*.and*("be.a", "string"); *cy.get*("@firstItem")*.should*("have.property", "completed")*.and*("be.a", "boolean"); })})