Vlastite tvrdnje
Custom assertions pretvaraju zahtjev u naredbu koju VM harness može izvršiti. Koristite ih za ponašanje koje mali zadani skup ne pokriva.
Struktura
Svaka custom-test grupa treba description i jednu ili više 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 je obavezan na grupi i na svakoj assertion. on_vm
bira ID VM u testnom okruženju s više VM; bez toga runner koristi
primary. expected_visual navodi namjereno stanje snimke zaslona kad je aktivan
visual evidence gate.
Dizajnirajte tvrdnje oko ishoda
- Uslugu provjerite s
service_running, ne samo postojanje paketa. - Prije testa vanjske rute provjerite lokalni endpoint.
- Za jednu stabilnu konfiguracijsku činjenicu koristite
file_contains, ne complete-file snapshot koji puca na bezazlenom formatiranju. command_succeedskoristite samo s determinističkim, non-interactive commands.- Dugim naredbama dodajte
timeout_secondssamo kad treba. Executor ograničava command timeouts na 1–1.800 sekundi. - Nikad ne stavljajte credentials u commands, descriptions, expected output ili URL; ta polja mogu se pojaviti u evidenciji i zapisnicima.
Semantika neuspjeha
Nepoznati type recipe model trenutačno prihvaća, ali postaje error kad executor
ne pronađe handler. Poznate assertions bez required parameters mogu se izbaciti
tijekom test-plan assembly uz upozorenje. Prije pokretanja builda validirajte
recept i pregledajte materialized test plan.
Ako on_vm imenuje VM koji nije prisutan, assertion je skipped. skipped
ili error ne tretirajte kao uspješno verification.
Primjer s više VM
{
"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 ovisi o test topology i otkrivenim adresama. U run evidence potvrdite rendered topology i resolved command assertion.
Za svaki supported type i parametar pogledajte Vrste tvrdnji.