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

80
Vistas
Cómo garantizar el orden de ejecución de la solicitud de Cypress

En mi prueba de Cypress, estoy tratando de hacer llamadas a dos puntos finales de API separados.

Puedo hacer las llamadas, pero necesito asegurarme de que se ejecuten en el orden correcto.

A continuación se muestran versiones simplificadas de mis solicitudes:

 cy.request('POST', apiUrl + 'Session', {username: merchant_username} ).as('postSession') cy.request('POST', apiUrl + 'TestCase', {username: merchant_username} ).as('postTestCase')

Es importante que las llamadas se ejecuten en este orden porque algunas de ellas dependen de los valores de las otras.

Estoy tratando de recuperar sessionId de la respuesta postSession a la sesión:

 cy.request({ method: 'POST', url: apiUrl + 'session', }).as('postSession') cy.get('@postSession').should(response => { sessionId = response.body.SessionId; })

Y luego utilícelo en el cuerpo de solicitud de postTestCase :

 cy.request({ method: 'POST', url: apiUrl + 'TestCase', body: { "SessionId": sessionId } })

Si hago .then() después de postSession y postTestCase dentro de ese modo, la solicitud funciona bien, pero me gustaría evitar hacerlo si es posible.

 cy.get('@postToken').should(response => { sessionId = response.body.SessionId; }).then(() => { cy.request({ method: 'POST', url: apiUrl + 'TestCase', body: { "SessionId": sessionId } }) })

También intenté usar cy.wait() , pero el sessionId de sesión está en blanco en la segunda solicitud.

 cy.wait('@postSession') cy.wait('@postTestCase')

¿Hay alguna manera de asegurarme de que postSession se ejecute antes postTestCase sin colocar postTestCase dentro de .then() después de postSession ?

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Desafortunadamente, en el momento en que se publica esta respuesta, hay un problema abierto en el repositorio Cypress GitHub con una propuesta para await , según este enlace .

Por lo tanto, solo la forma de solicitudes "anidadas" es posible en este momento.

Por ejemplo de sus fragmentos:

 cy.request({ method: 'POST', url: apiUrl + 'session', }).then((response) => { const sessionId = response.body.SessionId; cy.request({ method: 'POST', url: apiUrl + 'TestCase', body: { "SessionId": sessionId }, }); });
about 4 years ago · Juan Pablo Isaza Denunciar

0

Necesitas hacer algo como esto:

 cy.request({ method: 'GET', url: 'https://' + host + '/lending/loan', headers: default_headers }).then(res => { cy.request({}) .then(res => {}) })
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