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

1.1K
Vistas
Cypress: extrae el valor del cuerpo JSON a una variable

Estoy usando cypress.io para probar una API (creada con Node.js). Quiero extraer valor de la respuesta JSON de la API y guardarlo en una variable.

Probé las soluciones mencionadas en los enlaces a continuación, pero no funcionó: Cypress: obtenga valor del cuerpo de respuesta json

A continuación se muestra el código que estoy usando para probar la API:

 /// <reference types="cypress" /> describe("Testing Provider Catalog API", () => { it("Provider Catalog API GET Request", () => { cy.request('GET', 'v1/providers') .then((response) => { expect(response).to.have.property('status', 200) expect(response.body).to.not.be.null // expect(response.body.providers).to.have.length(1) }) cy.screenshot() }) it("Provider Catalog API POST Request", () => { const provider = { "type": "loadboard", "name": "123loadboard" }; cy.request('POST', 'v1/providers', provider) cy.screenshot() }) it("Provider Catalog API PUT Request", () => { const provider = { "type": "loadboard", "name": "123loadboard" }; cy.request('PUT', 'v1/providers/61a54a66a2b734859481931c', provider) cy.screenshot() }) it("Provider Catalog API DELETE Request", () => { cy.request('DELETE', 'v1/providers/61a68e7ca6011e605029191b') cy.screenshot() }) })

A continuación se muestra el código que estoy usando

 var providerId cy.wait('@newObject').then((response) => { expect(response.status).to.eq(201) expect(response.responseBody).to.have.property('_id') const body = (response.responseBody) providerId = body['_id'] }) cy.get(someInput).type(newId)

Salida de muestra de la API:

 { "_id":"61a54ba1a2b7348594819323", "type":"loadboard", "name":"123loadboard", "__v":0 }

Quiero almacenar el valor de _id en una variable y usarlo más tarde. Lo he estado intentando durante los últimos días y nada parece funcionar. Alguien puede ayudarme por favor. Gracias por adelantado.

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

0

La forma recomendada de usar variables con ciprés es con alias. Ver documentos aquí .

En su código, puede wrap() su _id y guardarlo como un alias, luego llamar a su alias en otro lugar de su código:

 cy.wait('@newObject').then((response) => { expect(response.status).to.eq(201) expect(response.responseBody).to.have.property('_id') cy.wrap(response.responseBody._id).as('newId') }) // then later in your code use: cy.get('@newId').then((newId) => { cy.get(someInput).type(newId) })

También puede type() su _id dentro de su wait() :

 cy.wait('@newObject').then((response) => { expect(response.status).to.eq(201) expect(response.responseBody).to.have.property('_id') cy.get(someInput).type(response.responseBody._id) })

O puede usar el objeto de entorno global Cypress.env() . Ver documentos aquí .

 cy.wait('@newObject').then((response) => { expect(response.status).to.eq(201) expect(response.responseBody).to.have.property('_id') Cypress.env('newId', response.responseBody._id) }) // then later in your code use: cy.get(someInput).type(Cypress.env('newId'))
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