Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

1.1K
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!