Pasirinktinės patikros
Pasirinktinės patikros paverčia reikalavimą komanda, kurią VM harness gali vykdyti. Naudokite jas elgesiui, kurio nedengia maža numatytoji testų rinktinė.
Struktūra
Kiekvienai custom-test grupei reikia aprašymo ir vienos ar daugiau struktūrizuotų patikrų:
{
"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 privalomas ir grupei, ir kiekvienai patikrai. on_vm
renkasi VM ID daugių VM testų aplinkoje; be jo vykdytojas naudoja
primary. expected_visual nurodo numatytą ekrano nuotraukos būseną, kai
aktyvus vizualinės įrodymų vartai.
Kurkite patikras pagal rezultatus
- Tikrinkite paslaugą su
service_running, ne tik ar paketas egzistuoja. - Prieš tikrindami išorinį maršrutą patikrinkite vietinį endpoint.
- Naudokite
file_containsvienam stabiliam konfigūracijos faktui, ne viso failo snapshot, kuris lūžta dėl nekenksmingo formatavimo. - Naudokite
command_succeedstik su deterministinėmis, neinteraktyviomis komandomis. - Ilgoms komandoms
timeout_secondsnurodykite tik kai reikia. Vykdytojas apriboja komandų timeout iki 1–1,800 sekundžių. - Niekada nedėkite kredencialų į komandas, aprašymus, tikėtiną išvestį ar URL; šie laukai gali pasirodyti įrodymuose ir žurnale.
Nesėkmės semantika
Nežinomas tipas dabar priimamas recepto modelyje, bet tampa
error, kai vykdytojas neranda handler. Žinomos patikros, kurioms trūksta
privalomų parametrų, gali būti pašalintos testų plano surinkimo metu su įspėjimu.
Todėl patvirtinkite receptą ir peržiūrėkite materializuotą testų planą prieš
paleidžiant build.
Jei on_vm nurodo VM, kurio nėra, patikra yra skipped. Nelaikykite
skipped ar error sėkminga verifikacija.
Daugelio VM pavyzdys
{
"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 vardų sprendimas priklauso nuo testų topologijos ir jos aptiktų adresų. Patvirtinkite atvaizduotą topologiją ir patikros išspręstą komandą vykdymo įrodymuose.
Visiems palaikomiems tipams ir parametrams žr. Patikros tipai.