Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

274
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda