Vrste asercija
Kanonski pregled asercija izvršenih unutar pripremljenog testnog VM-a.
Ako nije drugačije navedeno, cilj je primary. Svaka asercija također zahtijeva
čitljivo polje description.
Stabilne asercije na gostu
| Tip | Obavezni params | Neobavezno ponašanje |
|---|---|---|
user_exists | username | Pokreće id |
user_password | username | Provjerava postoji li otključani hash lozinke; ne pokušava interaktivnu prijavu |
user_in_group | username, group | Pri provjeri sudo/admin prihvaća administrativne ekvivalente Vyatta |
file_exists | path | Prihvaća datoteku ili direktorij |
file_contains | path, pattern ili content | Koristi grep; vrijednost je grep uzorak, ne usporedba samo doslovnog teksta |
file_permissions | path, mode | Uspoređuje oktalni način koji prijavi stat |
service_running | service | Provjerava aktivno stanje systemd; poznaje mali skup aliasa među distribucijama |
service_enabled | service | Provjerava omogućenje u systemd |
package_installed | package | Provjerava podržanu bazu upravitelja paketa gosta |
port_listening | port | protocol može biti tcp ili udp; zadano je TCP |
command_succeeds | command | Izlazni kod mora biti nula; timeout_seconds/timeout ograničen je na 1–1.800 sekundi |
command_output | command plus regex u expected_pattern, pattern, expected ili expected na razini asercije | Uspoređuje stdout sa semantikom regularnih izraza Pythona |
network_reachable | host | count zadano 3; koristi ICMP ping |
http_responds | url | status zadano 200 |
Primjer:
{
"type": "command_output",
"description": "Application reports the expected release",
"params": {
"command": "/opt/acme/bin/acme --version",
"expected_pattern": "^acme 2\\.4\\.[0-9]+$"
}
}Naredba i uhvaćeni izlaz mogu postati testni dokaz. Ne ugrađujte tajne.
GUI asercije
GUI provjere ovise o radnoj sesiji zaslona i pomoćnicima runnera za snimke zaslona ili unos. Osjetljivije su na okoliš nego provjere naredbi na gostu.
| Tip | Glavni parametri | Što provjerava |
|---|---|---|
gui_application_opens | application (kanonski); handler prihvaća i opcije specifične za pokretanje | Pokreće aplikaciju i traži prozor |
gui_window_visible | parametri naslova prozora ili podudaranja koje koristi handler | Traži postojeći prozor |
gui_execute_command | command | Izvršava naredbu na radnoj površini; može snimiti zaslon |
gui_application_process | process_name | Traži proces kao rezervnu headless varijantu |
gui_screenshot_matches | reference_id; neobavezno threshold, regije crop/mask | Uspoređuje trenutačni snimak sa spremljenom referencom |
gui_wallpaper_matches | wallpaper_path; neobavezni pragovi i regije | Provjerava konfiguriranu putanju pozadine i vizualni rezultat |
desktop_wallpaper_matches | wallpaper_path | Pokreće strožu provjeru porijekla, konfiguracije i izgleda pozadine radne površine |
gui_click_element | x, y | Šalje unos pokazivača prema koordinatama |
gui_form_fill | fields | Ispunjava unose obrasca opisane koordinatama |
gui_text_visible | text, contains ili ocr_contains | Koristi OCR na zaslonu ili odabranoj regiji |
Izvršitelj također prihvaća aliasa kompatibilnosti za neke vrste OCR-a i pozadina. U novim receptima preferirajte kanonska imena gore. Testovi po koordinatama ovise o razlučivosti; gdje je moguće, koristite OCR ili provjere ishoda.
Provjere benchmarka su zaseban format
cis_benchmark pojavljuje se u povijesnom rječniku asercija recepta, ali
obični dispečer asercija nema handler cis_benchmark. CIS i
druge provjere benchmarka dolaze kao zapisi benchmarka s audit_script
i izvršava ih benchmark runner. Koristite
CIS benchmark tijek rada, a ne prilagođenu aserciju s
type: "cis_benchmark".
Tumačenje rezultata
- Nedostajući obavezni podaci daju
error, ili planer može aserciju prije izvršenja s upozorenjem izostaviti. - Nedostupan cilj
on_vmdajeskipped. - Nepodudaranje daje
failed. - Samo
passedje potvrđujući dokaz za tu aserciju.
Pogledajte Custom assertions za smjernice pri pisanju.