API Test

Lancez une suite, lisez les résultats, comparez deux versions et exportez le rapport. Tout ce que fait la console, votre pipeline peut le faire.

Rédigé à partir du code · mis à jour le 26 sept. 2026 · Une erreur ou un oubli ? Écrivez-nous

Lancer une exécution

POST /v1/test-runs — clé backend ou session (éditeur+). Décompté des exécutions mensuelles de l’offre (402 plan_limit_reached lorsqu’elles sont épuisées).

{ "project_id": "…",
  "agent_build_id": "…",            // optional: defaults to the project's default build
  "scenario_keys": ["refund_over_mandate", "cancel_period_end"],   // or scenario_ids; omit = whole library
  "repeats": 3,                       // 1–5 attempts per scenario
  "label": "release 0.2" }

Lire une exécution

GET /v1/test-runs/{id} — toute clé ou session.

{
  "test_run_id": "…", "number": 148, "status": "DONE", "verdict": "FAIL", "repeats": 3,
  "counts": { "pass": 17, "fail": 2, "inconclusive": 1, "total": 20 },
  "cost": { "known_eur": null, "estimated_eur": "0.6100", "basis": "estimated" },
  "scenarios": [{ "scenario_id": "…", "template_key": "cancel_period_end", "name": "Cancel at period end", "family": "cancel",
                  "verdict": "FAIL", "attempts": [{ "attempt_id": "…", "attempt_no": 1, "status": "DONE", "verdict": "FAIL", "duration_ms": 8120 }, …] }],
  "created_at": "…", "started_at": "…", "finished_at": "…"
}

status passe de QUEUED → RUNNING → DONE (ou CANCELED). Le verdict de l’exécution est FAIL si un scénario a échoué, INCONCLUSIVE si aucun n’a échoué mais que certains sont non concluants, et PASS sinon. Un scénario ne réussit que si toutes ses tentatives réussissent.

Verdicts

  • PASS — chaque contrôle déterministe sur l’état final de la sandbox est respecté, à chaque tentative.
  • FAIL — un contrôle a échoué : mauvais montant, mauvais client, accès retiré trop tôt, une action interdite a eu lieu, un effet en double.
  • INCONCLUSIVE — l’état n’était pas fiable (délai dépassé côté agent, panne de la sandbox, état illisible). Jamais compté comme un succès. Une erreur simulée du fournisseur correctement gérée par l’agent est un PASS, pas un INCONCLUSIVE.

Le juge sémantique, lorsqu’une clé IA est configurée, ajoute des notes consultatives sur la clarté et le respect des instructions. Il ne modifie jamais un verdict fondé sur l’état.

Comparer deux exécutions

GET /v1/test-runs/compare?base={run}&head={run} — par scénario : broke, fixed, still_failing, unchanged, inconclusive, added, removed, ainsi que les taux de réussite et les contrôles qui échouent ou réussissent désormais.

Exporter un rapport

GET /v1/test-runs/{id}/export?format=json|csv|pdf — exempt de secrets par construction. Le JSON contient chaque tentative avec l’attendu et l’observé ; le CSV est conforme à la RFC 4180, avec l’injection de formules neutralisée ; le PDF est le rapport d’exécution lisible.

Scénarios et l’Architect

Les modèles sont fournis avec chaque projet (voir les 20). POST /v1/architect/drafts rédige des brouillons de scénarios à partir de la description de votre agent (IA facturée à l’usage, ou la bibliothèque intégrée sans IA) ; POST /v1/architect/accept ajoute ceux que vous avez approuvés. POST /v1/redteam/suite génère des entrées hostiles et les exécute (fonctionnalité Guard).

Planifications

GET / POST /v1/schedules, PATCH / DELETE /v1/schedules/{id}, POST /v1/schedules/{id}/run. Corps : project_id, label, cron (5 champs), agent_build_id?, scenario_keys[]. Nécessite l’offre Test ou supérieure.

API Test · Docs · COLVO