Tipuri de aserțiuni
Referință canonică pentru aserțiunile executate într-un VM de test provisionat.
Dacă nu se precizează altfel, ținta este primary. Fiecare aserțiune necesită și
un câmp description lizibil.
Aserțiuni stabile pe oaspete
| Tip | params obligatorii | Comportament opțional |
|---|---|---|
user_exists | username | Rulează id |
user_password | username | Verifică că există un hash de parolă deblocat; nu încearcă autentificare interactivă |
user_in_group | username, group | Acceptă echivalente administrative Vyatta la verificarea sudo/admin |
file_exists | path | Acceptă fișier sau director |
file_contains | path, pattern sau content | Folosește grep; valoarea este un model grep, nu o comparație doar literală |
file_permissions | path, mode | Compară modul octal raportat de stat |
service_running | service | Verifică starea active systemd; cunoaște un set mic de aliasuri între distribuții |
service_enabled | service | Verifică activarea în systemd |
package_installed | package | Verifică baza de date a managerului de pachete suportată de oaspete |
port_listening | port | protocol poate fi tcp sau udp; implicit este TCP |
command_succeeds | command | Codul de ieșire trebuie să fie zero; timeout_seconds/timeout este limitat la 1–1.800 secunde |
command_output | command plus regex în expected_pattern, pattern, expected sau expected la nivel de aserțiune | Potrivește stdout cu semantica expresiilor regulate Python |
network_reachable | host | count implicit 3; folosește ping ICMP |
http_responds | url | status implicit 200 |
Exemplu:
{
"type": "command_output",
"description": "Application reports the expected release",
"params": {
"command": "/opt/acme/bin/acme --version",
"expected_pattern": "^acme 2\\.4\\.[0-9]+$"
}
}Comanda și ieșirea capturată pot deveni dovezi de test. Nu înglobați secrete.
Aserțiuni GUI
Verificările GUI depind de o sesiune de afișare funcțională și de helperii runnerului pentru capturi de ecran sau intrare. Sunt mai sensibile la mediu decât verificările de comenzi pe oaspete.
| Tip | Parametri principali | Ce verifică |
|---|---|---|
gui_application_opens | application (canonic); handlerul acceptă și opțiuni specifice lansării | Pornește aplicația și caută o fereastră |
gui_window_visible | parametri de titlu de fereastră sau potrivire folosiți de handler | Caută o fereastră existentă |
gui_execute_command | command | Execută o comandă pe desktop; poate captura o captură de ecran |
gui_application_process | process_name | Caută procesul ca variantă headless de rezervă |
gui_screenshot_matches | reference_id; opțional threshold, regiuni crop/mask | Compară captura curentă cu referința stocată |
gui_wallpaper_matches | wallpaper_path; praguri și regiuni opționale | Verifică calea de fundal configurată și rezultatul vizual |
desktop_wallpaper_matches | wallpaper_path | Rulează verificarea mai strictă a provenienței, configurației și aspectului fundalului desktop |
gui_click_element | x, y | Trimite intrare de pointer pe bază de coordonate |
gui_form_fill | fields | Completează câmpuri de formular descrise prin coordonate |
gui_text_visible | text, contains sau ocr_contains | Folosește OCR pe ecran sau pe o regiune selectată |
Executorul acceptă și aliasuri de compatibilitate pentru unele tipuri OCR și fundal. În rețete noi, preferați numele canonice de mai sus. Testele pe coordonate depind de rezoluție; unde se poate, folosiți OCR sau verificări de rezultat.
Verificările de benchmark sunt un format separat
cis_benchmark apare în vocabularul istoric de aserțiuni al rețetei, dar
dispecerul obișnuit de aserțiuni nu are handler cis_benchmark. CIS și
alte verificări de benchmark sunt furnizate ca înregistrări benchmark cu audit_script
și rulează prin benchmark runner. Folosiți
fluxul de lucru CIS benchmark, nu o aserțiune personalizată cu
type: "cis_benchmark".
Interpretarea rezultatului
- Datele obligatorii lipsă dau
error, sau planificatorul poate elimina aserțiunea cu avertisment înainte de execuție. - Ținta
on_vmindisponibilă dăskipped. - Rezultatul nepotrivit dă
failed. - Doar
passedeste dovadă afirmativă pentru acea aserțiune.
Consultați Custom assertions pentru îndrumări la scriere.