Egendefinerte påstander
Custom assertions gjør et krav om til en kommando VM-harnessen kan kjøre. Bruk dem for atferd den lille standardsuiten ikke dekker.
Struktur
Hver custom-test group trenger description og én eller flere structured assertions:
{
"description": "Verify the web service",
"category": "application",
"assertions": [
{
"type": "service_running",
"description": "Nginx is active",
"params": { "service": "nginx" },
"expected_visual": "The evidence panel shows nginx active"
},
{
"type": "http_responds",
"description": "Local health endpoint responds",
"params": { "url": "http://localhost/health", "status": 200 }
}
]
}description er påkrevd både på group og på hver assertion. on_vm velger en
VM-ID i et multi-VM test environment; uten den bruker runneren primary.
expected_visual angir tiltenkt screenshot state når visual evidence gate er
aktiv.
Utform påstander rundt resultater
- Sjekk en tjeneste med
service_running, ikke bare at pakken finnes. - Sjekk et lokalt endpoint før du tester en ekstern route.
- Bruk
file_containsfor ett stabilt konfigurasjonsfaktum, ikke en complete-file snapshot som feiler ved harmløs formatering. - Bruk
command_succeedsbare med deterministiske, non-interactive commands. - Gi lange commands
timeout_secondsbare når det trengs. Executoren begrenser command timeouts til 1–1.800 sekunder. - Legg aldri credentials i commands, descriptions, expected output eller URL; disse feltene kan vises i evidence og logger.
Feilsemantikk
En unknown type aksepteres foreløpig av recipe model, men blir error når
executoren ikke finner en handler. Kjente assertions uten required parameters kan
fjernes under test-plan assembly med en advarsel. Valider derfor oppskriften, og
gå gjennom materialized test plan før du starter en build.
Hvis on_vm navngir en VM som ikke finnes, er assertionen skipped. Ikke behandle
skipped eller error som vellykket verification.
Multi-VM-eksempel
{
"description": "Client reaches the API node",
"assertions": [
{
"type": "http_responds",
"description": "API health is reachable from the client",
"on_vm": "client",
"params": { "url": "http://api:8080/health", "status": 200 }
}
],
"environment": {
"vms": [
{ "vm_id": "client", "role": "client", "networks": ["lan"] },
{ "vm_id": "api", "role": "server", "networks": ["lan"] }
],
"networks": [
{ "network_id": "lan", "type": "isolated", "dhcp": true }
]
}
}VM-name resolution avhenger av test topology og dens discovered addresses. Bekreft rendered topology og assertionens resolved command i run evidence.
For hver supported type og parameter, se Påstandstyper.