Relatórios de teste
Importe o output que seu runner já produz. CTRF é o contrato recomendado; JUnit, Playwright JSON e o resultado de cypress.run() entram por adapters nativos.
Formatos aceitos
Use CTRF JSON para máxima portabilidade. O endpoint também detecta JUnit XML, Playwright JSON e o objeto JSON retornado por cypress.run(). O corpo pode ter até 4 MB; artefatos grandes devem permanecer no CI e entrar como referências.
CTRFRecomendado — testes, retries, flaky, labels e attachmentsJUNITFallback universal para Selenium e runners xUnit/JUnitPWSaída nativa do reporter JSON do PlaywrightCYResultado serializado da Module API do CypressEnvie no final do job
Crie uma chave em Dashboard → Integrações, salve-a como secret do CI e envie o arquivo sem transformações adicionais. Antes da primeira execução, o painel mostra o inventário do catálogo como não executado; aprovação, falha e métricas só aparecem depois que um relatório real é importado.
curl --fail-with-body --request POST \
'https://feature-rollout.dev/api/v1/test-results?featureId=LBP-PIX-001&format=auto' \
--header 'Authorization: Bearer $FEATURE_ROLLOUT_TOKEN' \
--header 'Content-Type: application/json' \
--header 'X-Git-SHA: $GITHUB_SHA' \
--header 'X-CI-Pipeline: e2e' \
--data-binary '@ctrf-report.json'Reenviar o mesmo relatório para a mesma feature devolve a execução já criada e não duplica métricas ou evidências.
Prefira o contrato v2 em novos pipelines
O v2 resolve projeto, portfólio e repositório, registra revisão Git e exige X-Run-ID. A chave de idempotência padrão combina provider, run, tentativa, job e shard.
curl --fail-with-body --request POST "$FEATURE_ROLLOUT_URL/api/v2/test-runs?project=lb-pay&application=pix-automatico&repository=conta-facil%2Flb-pay&featureId=LBP-PIX-001&format=ctrf" --header "Authorization: Bearer $FEATURE_ROLLOUT_TOKEN" --header 'Content-Type: application/json' --header 'X-Run-ID: 9834217' --header 'X-Run-Attempt: 1' --header 'X-CI-Provider: github' --header 'X-CI-Workflow: e2e' --header 'X-CI-Job: playwright' --header 'X-Git-Branch: main' --header 'X-Git-SHA: a4f21c9' --header 'X-Environment: homologation' --data-binary '@ctrf-report.json'Use a resposta como recibo
HTTP 201 indica nova execução; HTTP 200 com duplicate: true indica reenvio idempotente. Guarde executionId para anexar cobertura.
{
"executionId": "f28ccafa-a2d7-4faf-a071-a8cb0c0312c7",
"format": "ctrf",
"tool": "playwright",
"summary": {
"total": 1,
"passed": 1,
"failed": 0,
"skipped": 0,
"pending": 0,
"other": 0,
"flaky": 0
},
"duplicate": false,
"revision": {
"branch": "main",
"testedSha": "a4f21c9"
}
}Vincule cenários automaticamente
Adicione uma label scenario/scenarioId ou inclua IDs como CT-03, SC-02 ou TC-18 no nome ou nas tags.
Cobertura de código
Cobertura é um sinal separado do resultado funcional. Depois de importar a execução, envie Istanbul JSON Summary ou Cobertura XML para /api/v1/test-results/<executionId>/coverage?format=auto.