Saját állítások
A custom assertions egy követelményt olyan parancssá alakít, amelyet a VM harness végrehajthat. Használja őket olyan viselkedéshez, amit a kis alapértelmezett készlet nem fed le.
Felépítés
Minden custom-test csoportnak kell description és egy vagy több 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 }
}
]
}A description kötelező a csoportnál és minden assertionnél. Az on_vm
egy VM ID-t választ több VM-es test environmentben; enélkül a runner a
primary értéket használja. Az expected_visual a kívánt képernyőkép-állapotot adja meg, ha a
visual evidence gate aktív.
Az eredmények köré tervezze az állításokat
- Szolgáltatást a
service_runningellenőrizze, ne csak a csomag létezését. - Külső útvonal tesztelése előtt ellenőrizze a helyi endpointot.
- Egy stabil konfigurációs tényhez használja a
file_containstípust, ne complete-file snapshotot, amely ártalmatlan formázásnál elhasal. - A
command_succeedscsak determinisztikus, non-interactive commands esetén legyen. - Hosszú parancsoknál csak szükség esetén adjon
timeout_secondsértéket. Az executor a command timeouts értéket 1–1800 másodperc közé szorítja. - Soha ne tegyen credentials adatot commands, descriptions, expected output vagy URL mezőbe; ezek a mezők megjelenhetnek az evidence-ben és a naplókban.
Hibakezelés szemantikája
Az ismeretlen type jelenleg a recipe model által elfogadott, de error lesz belőle, ha
az executor nem talál handlert. A known assertions required parameters nélkül
test-plan assembly során figyelmeztetéssel kieshetnek. Build indítása előtt validálja
a receptet, és nézze át a materialized test plan-t.
Ha az on_vm olyan VM-et nevez meg, amely nincs jelen, az assertion skipped. A
skipped vagy error állapotot ne tekintse sikeres verificationnek.
Több VM-es példa
{
"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 }
]
}
}A VM-name resolution a test topology-tól és a felfedezett címektől függ. A run evidence-ben erősítse meg a rendered topology-t és az assertion resolved command-ját.
Minden supported type és paraméter esetén lásd: Állítástípusok.