Lastne trditve
Custom assertions zahtevo spremenijo v ukaz, ki ga lahko izvede VM harness. Uporabite jih za vedenje, ki ga majhna privzeta zbirka ne pokriva.
Struktura
Vsaka skupina custom-test potrebuje description in eno ali več 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 obvezen pri skupini in pri vsaki assertion. on_vm
izbere ID VM v testnem okolju z več VM; brez tega runner uporabi
primary. expected_visual poda predvideni stan zaslonske slike, ko je aktiven
visual evidence gate.
Oblikujte trditve okoli izidov
- Storitev preverite z
service_running, ne le obstoja paketa. - Pred preizkusom zunanje poti preverite lokalni endpoint.
- Za en stabilen konfiguracijski podatek uporabite
file_contains, ne complete-file snapshot, ki odpove ob neškodnem oblikovanju. command_succeedsuporabite le z determinističnimi, non-interactive commands.- Dolgim ukazom dajte
timeout_secondsle, ko je potrebno. Executor omeji command timeouts na 1–1.800 sekund. - Nikoli ne vnašajte credentials v commands, descriptions, expected output ali URL; ta polja se lahko pojavijo v evidenci in dnevnikih.
Semantika neuspeha
Neznan type recipe model trenutno sprejme, a postane error, če executor ne najde
handler. Pri znanih assertions brez required parameters lahko med
test-plan assembly pride do izločitve z opozorilom. Pred zagonom builda
recept preverite in preglejte materialized test plan.
Če on_vm poimenuje VM, ki ni prisoten, je assertion skipped. skipped
ali error ne obravnavajte kot uspešno verification.
Primer z več 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 je odvisna od test topology in odkritih naslovov. V run evidence potrdite rendered topology in resolved command assertion.
Za vsak supported type in parameter glejte Vrste trditev.