Skip to Content
ReferenceTypy asercí

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

TypPožadované paramsVolitelné chování
user_existsusernameSpustí id
user_passwordusernameOvěří, že existuje odemčený hash hesla; nezkouší interaktivní přihlášení
user_in_groupusername, groupPři kontrole sudo/admin akceptuje administrativní ekvivalenty Vyatta
file_existspathAkceptuje soubor nebo adresář
file_containspath, pattern nebo contentPoužívá grep; hodnota je vzor pro grep, ne čistě doslovné porovnání
file_permissionspath, modePorovnává oktalový režim hlášený příkazem stat
service_runningserviceKontroluje aktivní stav systemd; zná malou sadu aliasů napříč distribucemi
service_enabledserviceKontroluje povolení ve systemd
package_installedpackageKontroluje podporovanou databázi správce balíčků hosta
port_listeningportprotocol může být tcp nebo udp; výchozí je TCP
command_succeedscommandNávratový kód musí být nula; timeout_seconds/timeout je omezen na 1–1 800 sekund
command_outputcommand plus regex v expected_pattern, pattern, expected nebo expected na úrovni asercePorovnává stdout se sémantikou regulárních výrazů Pythonu
network_reachablehostcount výchozí 3; používá ICMP ping
http_respondsurlstatus 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.

TypHlavní parametryCo kontroluje
gui_application_opensapplication (kanonické); handler akceptuje i volby specifické pro spuštěníSpustí aplikaci a hledá okno
gui_window_visibleparametry titulku okna nebo shody používané handleremHledá existující okno
gui_execute_commandcommandSpustí příkaz na ploše; může pořídit snímek obrazovky
gui_application_processprocess_nameHledá proces jako záložní headless variantu
gui_screenshot_matchesreference_id; volitelně threshold, oblasti crop/maskPorovná aktuální snímek s uloženou referencí
gui_wallpaper_matcheswallpaper_path; volitelné prahy a oblastiKontroluje nakonfigurovanou cestu tapety a vizuální výsledek
desktop_wallpaper_matcheswallpaper_pathSpustí přísnější kontrolu původu, konfigurace a vzhledu tapety plochy
gui_click_elementx, yOdešle vstup ukazatele podle souřadnic
gui_form_fillfieldsVyplní vstupy formuláře popsané souřadnicemi
gui_text_visibletext, contains nebo ocr_containsPouž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_vm vede k skipped.
  • Nesoulad vede k failed.
  • Pouze passed je kladný důkaz pro danou aserci.

Viz Custom assertions pro návod k psaní.