Ir al contenido

CLI

La CLI de Probara, @probara/cli, envía a Probara desde cualquier CI los informes JUnit XML y Cucumber JSON que tu framework de pruebas ya genera, y sincroniza los escenarios de tus archivos .feature. Cada importación crea una ejecución automatizada, vincula cada prueba con su caso de prueba (y crea los casos que aún no existen), registra los resultados, sube los archivos a los que apunta el informe y cierra la ejecución.

La CLI es de código abierto y está en el repositorio probara-sdk, que documenta cada comando, cada opción y cada sistema de CI. Esta página cubre lo que configuras en Probara. Para compararla con los reporters de Playwright, Jest, Cypress, Vitest y Cucumber, consulta Integraciones CI.

NecesitasPor qué
Un plan de pago (Pro o Enterprise, o una prueba Pro)El envío de resultados desde CI y la sincronización de archivos .feature no forman parte del plan Free. En Free, Probara responde 403 forbidden.
Un propietario o administrador de ProbaraSolo los propietarios y administradores crean y revocan tokens de aplicación.
El ID del Proyecto al que enviar los resultadosPor ejemplo SHOP. La CLI lo lee de PROBARA_PROJECT.

La CLI se autentica con un token de aplicación: un token que pertenece a tu organización, no a una persona, así que sigue funcionando cuando alguien se va.

  1. En Workspace → Integraciones, selecciona la tarjeta JUnit XML, o la tarjeta Cucumber para la sincronización Gherkin y los resultados de Cucumber.
  2. Abre la pestaña Tokens de acceso y selecciona Crear un token de aplicación.
  3. Escribe un Nombre del token — ponle el nombre de lo que lo usa, como el repositorio o el pipeline — y selecciona Crear token.
  4. Copia el token desde Copia tu nuevo token. Empieza por probara_app_, y es la única vez que Probara lo muestra.

Guarda el token como un secreto de CI llamado PROBARA_API_TOKEN (en GitHub Actions: Settings → Secrets and variables → Actions). La CLI solo lee el token de esa variable; no tiene opción --token, así que el token nunca aparece en una lista de procesos ni en un registro. El ID del Proyecto no es un secreto.

Añade este paso de GitHub Actions después de tus pruebas, sustituye <PROJECT_CODE> por el ID del Proyecto y apunta la ruta al archivo que genera tu framework:

- name: Report to Probara
if: always()
run: npx @probara/cli import junit reports/junit.xml
env:
PROBARA_API_TOKEN: ${{ secrets.PROBARA_API_TOKEN }}
PROBARA_PROJECT: <PROJECT_CODE>

if: always() envía el informe también cuando las pruebas fallan. Para GitLab CI, Jenkins, CircleCI, Azure Pipelines, Bitbucket Pipelines, Buildkite y jobs en paralelo, sigue las guías de CI (en inglés).

Git puede ser la fuente de verdad de tus casos Gherkin. probara sync gherkin hace que los casos sincronizados de un proyecto coincidan con los escenarios de tus archivos .feature: un escenario nuevo crea un caso, uno modificado lo actualiza y uno eliminado lo archiva. Ejecútalo en tu rama principal, después del checkout:

- name: Sync the feature files to Probara
run: npx @probara/cli sync gherkin "features/**/*.feature"
env:
PROBARA_API_TOKEN: ${{ secrets.PROBARA_API_TOKEN }}
PROBARA_PROJECT: <PROJECT_CODE>

Pon el patrón entre comillas y ejecuta el comando desde la raíz del repositorio. La guía de sincronización explica cómo se convierte cada escenario en un caso, cómo funcionan los movimientos y los vínculos, y qué puede archivar una sincronización. La referencia de comandos (en inglés) enumera todas las opciones, como --dry-run, --file-url y --suite-ulid.

probara import cucumber envía los resultados de un informe JSON de Cucumber. Cada escenario se convierte en un resultado de su caso sincronizado, cada fila de un Scenario Outline es un resultado propio y cada paso es un paso de resultado con su palabra clave. Úsalo para los informes de Cucumber-JVM, playwright-bdd y otras herramientas que generan Cucumber JSON.

Para cucumber-js, el reporter de Cucumber es la mejor opción: envía cada escenario al final de la ejecución, con los archivos que adjuntan sus pasos, y no necesita ningún archivo JSON. Ambos leen las mismas claves, así que cualquiera de los dos llega a los mismos casos:

Ventana de terminal
npx cucumber-js --format json:results/cucumber.json
npx @probara/cli import cucumber results/cucumber.json

El comando lee el JSON de Cucumber que cucumber-js escribe con --format json. Probara se ha probado con cucumber-js 13. Cucumber-JVM y playwright-bdd escriben el mismo formato, que Probara no ha probado. Reqnroll, que no escribe JSON de Cucumber, y Behave no son compatibles. Los adjuntos del informe no se envían. Mantén los archivos .feature en el checkout: un resultado encuentra su caso a través de la ruta de su archivo. La referencia de Gherkin (en inglés) explica las claves y el estado de cada resultado.

Un token de aplicación solo puede hacer lo que hace la CLI: crear ejecuciones automatizadas, enviar informes (que pueden crear casos de prueba y suites), añadir adjuntos a sus resultados, cerrar ejecuciones, sincronizar archivos .feature (que crean, actualizan y archivan casos sincronizados) y, para los reporters de frameworks, leer las claves de casos de una ejecución. Cualquier otra llamada responde 403 forbidden — consulta las llamadas exactas.

  • Las ejecuciones, los resultados y los adjuntos que envía muestran su tarjeta, JUnit XML o Cucumber, y el nombre del token, no una persona.
  • No ocupa ningún puesto y sobrevive a la persona que lo creó. Revócalo desde la misma tarjeta, y crea otro, cuando pueda haberse filtrado o cuando alguien que podía leer el secreto deje tu equipo.
  • Si tu organización pasa al plan Free, Probara conserva el token pero lo rechaza; vuelve a funcionar cuando la organización vuelve a un plan de pago.
  • Un token API personal también funciona con un plan de pago, pero actúa con los permisos de su usuario y deja de funcionar cuando ese usuario se va. En CI, usa un token de aplicación.
RespuestaQué revisar
401 unauthorizedEl token se revocó, o PROBARA_API_TOKEN falta o contiene otra cosa. Crea un token nuevo y vuelve a guardarlo.
403 forbiddenLa organización está en el plan Free, o el token se usó para algo distinto de las llamadas de la CLI.

La guía de solución de problemas de la CLI (en inglés) cubre el resto, incluidos los errores del informe y de red.