Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

185
Vistas
El uso de promesas de espera asíncrona para llamadas API a través de cypress

ingrese la descripción de la imagen aquí ingrese la descripción de la imagen aquí ingrese la descripción de la imagen aquí en el archivo adjunto pongo capturas de pantalla del mismo caso de prueba con unos segundos de diferencia entre uno y otro.

Me gustaría saber por qué el mismo resultado del caso de prueba es 4xx, 5xx, 2xx en cada intento. ¿Cómo puedo evitarlo? ¿Podría estar relacionado con la espera?

PD: hablé con el equipo de DevOps y dijeron que el entorno es estable.

Especificaciones.js

 it.only("buy a fix priced vehicle", () => { const minPrice = 26350; //const maxPrice = 1000000; //const offerAmount = Math.floor(Math.random() * maxval) + minval; const vehicleIdBuyNow = "30f269ac675813a68885ce336971d897"; const platformIdBuyNow = "yyyy"; const platformUserIdBuyNow = 0; [![enter image description here][1]][1] cy.request({ method: "POST", url: "xxxxxx", headers: { Authorization: "tttttt", "content-type": "application/json", }, body: { id: vehicleIdBuyNow, bid: minPrice, auctionPlatformId: platformIdBuyNow, auctionPlatformUserId: platformUserIdBuyNow, }, failOnStatusCode: false, }).then((res) => { cy.wait(2000) // Assertion for one by one //cy.log(res) //if ( res.status==404 || res.status==400 || res.status==500 || res.status==503) { if ( res.status!=200) { cy.log(JSON.stringify(res)) } else { expect(res.body.id).to.eq( vehicleIdBuyNow ); expect(res.body.auctionStatus).contains("finished"); expect(res.body.price).to.be.equal(minPrice); expect(res.body.winningBidPlatformId).contains(platformIdBuyNow); expect(true).to.be.true; expect(false).to.be.false; //Assertion in one time // for (const index of res.body.suggestedPrices) { // expect(res.body.suggestedPrices[index].amount).to.be.within( // minPrice, // maxPrice // ); // } assert.isNotNull(res.amount, "is not null"); assert.isNotNull(res.body.id, "is not null"); assert.isNotNull(res.body.createdAt, "is not null"); } })
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

No estoy seguro de que los problemas de tiempo asíncrono con Cypress den como resultado la misma solicitud con esas respuestas diferentes.

Sugeriría mirar de cerca lo que se envía en cy.request y comparar los escenarios de aprobación y falla. Si hace clic en la solicitud en cy gui, la consola tendrá la solicitud y la respuesta.

A veces, hacer muchas solicitudes en su prueba puede abrumar a su servidor y generar respuestas diferentes. Sin embargo, si ve este problema al ejecutar la prueba única de forma aislada, es probable que eso lo descarte.

500 tiende a ser un error del servidor no controlado al intentar procesar la solicitud. Tal vez podría agregar una identificación única al encabezado y rastrearlo con desarrolladores para ver más detalles.

¿Sus solicitudes pueden dejar elementos en un estado determinado en el que falla la repetición de una prueba?

Si todavía está atascado, vea si ve un comportamiento similar con un curl/cartero

Nota: El cy.wait(2000) en su prueba no tendrá ningún impacto ya que la respuesta ya se habrá pasado a la función en esa etapa. Solo está retrasando la validación.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda