No tienes acceso a esta clase

¬°Contin√ļa aprendiendo! √önete y comienza a potenciar tu carrera

Probando el status code

6/17
Recursos

Aportes 6

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)
      })
```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"); })})