¿Cómo implementar métodos basados en datos en Playwright usando Playwright/Test con TypeScript?
¿Cómo implementar métodos basados en datos en Playwright usando Playwright/Test con TypeScript? ¿Cómo se obtiene datos externos (Excel o CSV) en el script y se realizan múltiples iteraciones con diferentes conjuntos de datos?
Respuesta #1
Ejemplo completo de código basado en datos:
1). Primero cree un CSV con los datos requeridos:
"test_case","Name","Age"
"TC1","John","46"
"TC2","Chris","28"
2). Luego léelo en tu archivo de prueba usando la biblioteca CSV:
import fs from 'fs';
import path from 'path';
import { parse } from 'csv-parse/sync';
const csvFilePath = path.join(__dirname, 'input.csv');
const csvData = fs.readFileSync(csvFilePath, 'utf8');
const testData = parse(csvData, { columns: true });
// Now testData contains an array of test data representing each row in the CSV.
import { test } from '@playwright/test';
for (const row of testData) {
test(`Test case: ${row.test_case}`, async ({ page }) => {
// Use the data from the CSV file
console.log(`Name of User=> ${row.Name}`)
console.log(`Age of User=> ${row.Age}`)
});
}
Para leer más:
https://playwright.dev/docs/test-parameterize
https://github.com/microsoft/playwright/issues/7036#issuecomment-925164212
¿Cómo pasar diferentes datos de prueba a una prueba en el ejecutor de pruebas de Playwright?
Respuesta #2
Según la documentación de Playwright sobre pruebas parametrizadas (DDT), esta es la manera oficial:
const names = ["foo", "bar"];
for (const name of names) {
test(`testing with ${name}`, async ({ page }) => {
await page.goto("/");
console.log(name);
});
}
Al ejecutar esta prueba, se ejecutará dos veces y aparecerá en el registro como dos pruebas.
