Typy asercí
Kanonický přehled asercí spouštěných uvnitř připravené testovací VM.
Pokud není uvedeno jinak, cíl je primary. Každá aserce navíc vyžaduje
čitelné pole description.
Stabilní hostitelské aserce
| Typ | Požadované params | Volitelné chování |
|---|---|---|
user_exists | username | Spustí id |
user_password | username | Ověří, že existuje odemčený hash hesla; nezkouší interaktivní přihlášení |
user_in_group | username, group | Při kontrole sudo/admin akceptuje administrativní ekvivalenty Vyatta |
file_exists | path | Akceptuje soubor nebo adresář |
file_contains | path, pattern nebo content | Používá grep; hodnota je vzor pro grep, ne čistě doslovné porovnání |
file_permissions | path, mode | Porovnává oktalový režim hlášený příkazem stat |
service_running | service | Kontroluje aktivní stav systemd; zná malou sadu aliasů napříč distribucemi |
service_enabled | service | Kontroluje povolení ve systemd |
package_installed | package | Kontroluje podporovanou databázi správce balíčků hosta |
port_listening | port | protocol může být tcp nebo udp; výchozí je TCP |
command_succeeds | command | Návratový kód musí být nula; timeout_seconds/timeout je omezen na 1–1 800 sekund |
command_output | command plus regex v expected_pattern, pattern, expected nebo expected na úrovni aserce | Porovnává stdout se sémantikou regulárních výrazů Pythonu |
network_reachable | host | count výchozí 3; používá ICMP ping |
http_responds | url | status výchozí 200 |
Příklad:
{
"type": "command_output",
"description": "Application reports the expected release",
"params": {
"command": "/opt/acme/bin/acme --version",
"expected_pattern": "^acme 2\\.4\\.[0-9]+$"
}
}Příkaz a zachycený výstup mohou být testovací důkaz. Nevkládejte tajemství.
Aserce GUI
Kontroly GUI závisí na funkční relaci displeje a pomocnících runneru pro snímky obrazovky nebo vstup. Jsou citlivější na prostředí než kontroly příkazů na hostiteli.
| Typ | Hlavní parametry | Co kontroluje |
|---|---|---|
gui_application_opens | application (kanonické); handler akceptuje i volby specifické pro spuštění | Spustí aplikaci a hledá okno |
gui_window_visible | parametry titulku okna nebo shody používané handlerem | Hledá existující okno |
gui_execute_command | command | Spustí příkaz na ploše; může pořídit snímek obrazovky |
gui_application_process | process_name | Hledá proces jako záložní headless variantu |
gui_screenshot_matches | reference_id; volitelně threshold, oblasti crop/mask | Porovná aktuální snímek s uloženou referencí |
gui_wallpaper_matches | wallpaper_path; volitelné prahy a oblasti | Kontroluje nakonfigurovanou cestu tapety a vizuální výsledek |
desktop_wallpaper_matches | wallpaper_path | Spustí přísnější kontrolu původu, konfigurace a vzhledu tapety plochy |
gui_click_element | x, y | Odešle vstup ukazatele podle souřadnic |
gui_form_fill | fields | Vyplní vstupy formuláře popsané souřadnicemi |
gui_text_visible | text, contains nebo ocr_contains | Použije OCR na obrazovce nebo vybrané oblasti |
Executor také akceptuje aliasy kompatibility pro některé typy OCR a tapet. V nových receptech preferujte kanonické názvy výše. Testy podle souřadnic závisí na rozlišení; kde to jde, použijte OCR nebo kontrolu výsledku.
Kontroly benchmarků jsou samostatný formát
cis_benchmark se objevuje v historické slovní zásobě asercí receptu, ale
běžný dispatcher asercí nemá handler cis_benchmark. CIS a
další kontroly benchmarků se dodávají jako záznamy benchmarků s audit_script
a spouští je benchmark runner. Použijte
workflow CIS benchmark, ne vlastní aserci s
type: "cis_benchmark".
Interpretace výsledku
- Chybějící povinná data vedou k
error, nebo může planner aserci před spuštěním s varováním vynechat. - Nedostupný cíl
on_vmvede kskipped. - Nesoulad vede k
failed. - Pouze
passedje kladný důkaz pro danou aserci.
Viz Custom assertions pro návod k psaní.