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

275
Vistas
Dramaturgo: compartir estado entre pruebas

Estoy aprendiendo Playwright y JavaScript al mismo tiempo, por lo que esta puede ser una pregunta elemental: me pregunto cómo la gente recomendaría compartir el estado, la variable customerId en este caso, entre pruebas.

Ejemplo:

 test.describe.only('Generate a new customer', () => { let customerId let baseUrl = process.env.SHOP_URL test('Create new customer', async ({ request }) => { const response = await request.post(baseUrl + `/shopify/v5/customer`, {}) const responseBody = JSON.parse(await response.text()) expect(response.status()).toBe(200) customerId = responseBody.customerId //need to persist customerId to pass into following test }) test('Update customer details', async ({ request }) => { const response = await request.post(baseUrl + `/shopify/v5/customer/update`, {}) { data: { customerId: customerId, //customerId is undefined here name: "Fred" }, } ) expect(response.status()).toBe(200) })

el ID de customerId está claramente fuera del alcance en la segunda prueba. Probablemente los refactorice para usar una biblioteca como Axios eventualmente porque estoy usando las pruebas de Playwright para generar datos; en realidad, no estoy probando la API aquí. Mientras tanto, solo necesito que el ID de customerId se mantenga en las llamadas api posteriores.

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

0

Eso es antipatrón, las pruebas deben ser independientes, especialmente en el dramaturgo, donde las pruebas se ejecutan en paralelo de forma predeterminada:

https://playwright.dev/docs/test-parallel

Puede fusionar esas dos pruebas en una prueba.

Si todavía quiere ir de esa manera, supongo que puede usar accesorios o ganchos para que funcione, aquí hay ejemplos:

https://playwright.dev/docs/test-fixtures#sin-fixtures

about 4 years ago · Juan Pablo Isaza Denunciar

0

Para que su ejemplo funcione, debe ejecutar las pruebas en modo serie , algo como esto funcionará:

 test.describe.serial('Generate a new customer', () => { let customerId let baseUrl = process.env.SHOP_URL test('Create new customer', async ({ request }) => { const response = await request.post(baseUrl + `/shopify/v5/customer`, {}) const responseBody = JSON.parse(await response.text()) expect(response.status()).toBe(200) customerId = responseBody.customerId //need to persist customerId to pass into following test }) test('Update customer details', async ({ request }) => { const response = await request.post(baseUrl + `/shopify/v5/customer/update`, {}) { data: { customerId: customerId, //customerId is undefined here name: "Fred" }, } ) expect(response.status()).toBe(200) }) });
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