Ir al contenido

Reporter de Playwright

@probara/playwright-reporter es un reporter de Playwright que envía a Probara cada resultado de una ejecución de playwright test: cada intento con su estado, sus pasos, sus errores y sus adjuntos, vinculado a su caso de prueba. Los casos que aún no existen se crean, y la ejecución se cierra cuando todo ha llegado. Lo registras en playwright.config junto al reporter que lees en la terminal; no hace falta un paso de subida aparte.

NecesitasPor qué
Node.js 22.12 o posteriorEs el campo engines del paquete. El proceso principal de Playwright ejecuta el reporter.
@playwright/test 1.42 o posteriorEs el rango de la dependencia peer. Los archivos de los pasos necesitan 1.50; el contexto de error de un intento, 1.51.
Un plan de pago (Pro o Enterprise, o una prueba Pro)El envío de resultados desde CI no forma parte del plan Free. En Free, Probara responde 403 forbidden.
Alguien con el permiso Administrar integracionesCrear un token de aplicación forma parte de ese permiso, que tienen los propietarios y los administradores.
El ID del Proyecto al que enviar los resultadosUna letra mayúscula seguida de mayúsculas o dígitos, por ejemplo SHOP. Cualquier otro valor desactiva el envío.

El reporter se autentica con un token de aplicación: un token que pertenece a tu organización, no a una persona. No ocupa ningún puesto y sigue funcionando cuando la persona que lo creó se va.

  1. En Workspace › Integraciones, selecciona la tarjeta Playwright.
  2. Abre la pestaña Tokens de acceso y selecciona Crear un token de aplicación.
  3. Escribe un Nombre del token con lo que lo usa (el repositorio o el pipeline) y selecciona Crear token.
  4. Selecciona Copiar token en Copia tu nuevo token. Empieza por probara_app_ y solo se muestra una vez: guárdalo en ese momento como un secreto de CI llamado PROBARA_API_TOKEN.

El reporter lee el token del entorno. Nunca lo pongas en playwright.config, que se sube al repositorio.

Ventana de terminal
npm i -D @probara/playwright-reporter

Fija la versión en package.json (o conserva el lockfile) para que una versión nueva nunca cambie un pipeline por sorpresa: el reporter está en 0.x, donde una versión minor puede cambiar opciones (actualizar).

Añádelo junto al reporter que lees en la terminal, con tu ID del Proyecto (o define PROBARA_PROJECT en el entorno):

playwright.config.ts
import { defineConfig } from '@playwright/test';
export default defineConfig({
reporter: [['list'], ['@probara/playwright-reporter', { projectId: 'SHOP' }]],
});

Todo lo demás tiene un valor por defecto: la ejecución toma el nombre del build de CI, y su rama, su commit y la URL del build salen del CI. El paquete exporta el tipo de sus opciones, ProbaraPlaywrightOptions, por si quieres que se comprueben:

playwright.config.ts
import { defineConfig } from '@playwright/test';
import type { ProbaraPlaywrightOptions } from '@probara/playwright-reporter';
export default defineConfig({
reporter: [
['list'],
['@probara/playwright-reporter', { projectId: 'SHOP' } satisfies ProbaraPlaywrightOptions],
],
});

Pasa el secreto al paso que ejecuta npx playwright test. En GitHub Actions:

- name: Run Playwright tests
run: npx playwright test
env:
PROBARA_API_TOKEN: ${{ secrets.PROBARA_API_TOKEN }}

El reporter escribe en stderr, en líneas [probara], y termina con el enlace a la ejecución:

$ npx playwright test
[probara] Sending 2 results of 2 tests (2 passed, 0 failed, 0 skipped, 0 blocked)
[probara] Recorded 2 results (1 new case, 0 unmatched) in R-1 (closed): https://app.probara.net/projects/SHOP/runs/R-1

Sin un token y un proyecto, el reporter queda desactivado y en silencio: las ejecuciones locales, y los builds que no reciben secretos (como los pull requests desde forks en la mayoría de los CI), no envían nada, sin ninguna opción extra. Para un workflow completo en tu CI, consulta proveedores de CI.

  • Una ejecución automatizada, con el nombre del build de CI (Playwright #42 en GitHub Actions), la rama, el commit y un enlace al build. Se cierra cuando el reporter termina.
  • Un resultado por intento: una prueba reintentada muestra cada intento en el historial del caso de la ejecución, y el caso conserva el último resultado.
  • Pasos de test.step, anidados, con su estado, su duración y su error, y los archivos adjuntados dentro de ellos.
  • Adjuntos: capturas, vídeos, trazas, el contexto de error y tus propios archivos de testInfo.attach().
  • Casos de prueba nuevos para las pruebas que no coinciden con ninguno, en suites construidas a partir del archivo y de los títulos de describe.
  • Atribución al token: las ejecuciones y los resultados muestran la aplicación y el nombre del token, por ejemplo Playwright · e2e-ci, no a una persona.
PlaywrightEn Probara
El comando playwright testUna ejecución automatizada, con el nombre del build de CI, cerrada al final
Una prueba (por proyecto de Playwright)Un caso de prueba, encontrado por su clave de automatización o vinculado por un ID de caso
Cada intento (reintentos incluidos)Un resultado en la ejecución, con su estado, su duración, su hora de inicio y sus errores
test.step y los hooks que ejecutan pasosLos pasos del resultado, anidados, con su estado, su duración y su error
Capturas, vídeos, trazas, adjuntosArchivos del resultado, o del paso en el que se adjuntaron
Llamadas probara.* en la pruebaEl título, la suite, las etiquetas, los campos y los pasos de un caso nuevo; los parámetros

La misma prueba en dos proyectos de Playwright (chromium y firefox) son dos casos: el proyecto forma parte de la clave de automatización (vincular).

El envío nunca rompe tu ejecución de pruebas

Sección titulada «El envío nunca rompe tu ejecución de pruebas»

El reporter nunca lanza errores dentro de Playwright ni cambia su código de salida: una prueba que falla hace fallar el comando; un problema de envío, no. Una opción mal escrita, un Probara inaccesible o un token rechazado se registran en stderr, nunca con el token, y las pruebas conservan su resultado. No hay ninguna opción para que el comando falle por un error de envío; para conservar lo que no se pudo enviar, define un archivo de resultados.

PáginaQué cubre
ConfiguraciónCada opción, su variable, su tipo y su valor por defecto; precedencia; red, proxies
Vincular pruebas con casosAnotaciones, IDs de caso en los títulos, probara.id(), claves de automatización
MetadatosTítulo, suite, comentario, etiquetas, campos, parámetros, ignorar un intento
Pasos y adjuntostest.step, hooks, probara.step(), capturas, vídeos, trazas, probara.attach()
Resultados y reintentosOpciones de la ejecución, estados, mapeo de estados, reintentos, archivo de resultados
Shards y varios proyectosUna ejecución para todos los shards, merge-reports, varios proyectos de Probara
Proveedores de CIGitHub Actions, GitLab CI, Jenkins, CircleCI, Azure Pipelines, Bitbucket, Buildkite
Solución de problemasProblemas y soluciones, el registro, PROBARA_DEBUG, comprobar qué se enviaría
Migrar y actualizarDesde Qase, desde probara import junit, versiones y el contrato de la clave

Siguiente: configura el reporter, o vuelve al resumen de integraciones de CI. ¿Usas Jest, Cypress o Vitest? Consulta el reporter de Jest, el reporter de Cypress o el reporter de Vitest.