Skip to Content
ReferenceTypy asercji

Typy asercji

Kanoniczna referencja dla asercji wykonywanych w przygotowanej maszynie wirtualnej testowej. Jeśli nie zaznaczono inaczej, celem jest primary. Każda asercja wymaga też czytelnego pola description.

Stabilne asercje gościa

TypWymagane paramsOpcjonalne zachowanie
user_existsusernameUruchamia id
user_passwordusernameSprawdza, czy istnieje odblokowany hash hasła; nie próbuje interaktywnego logowania
user_in_groupusername, groupAkceptuje odpowiedniki administracyjne Vyatta przy sprawdzaniu sudo/admin
file_existspathAkceptuje plik lub katalog
file_containspath, pattern lub contentUżywa grep; wartość to wzorzec grep, nie porównanie wyłącznie dosłowne
file_permissionspath, modePorównuje tryb ósemkowy zgłaszany przez stat
service_runningserviceSprawdza stan active systemd; zna mały zestaw aliasów między dystrybucjami
service_enabledserviceSprawdza włączenie w systemd
package_installedpackageSprawdza obsługiwaną bazę menedżera pakietów gościa
port_listeningportprotocol może być tcp lub udp; domyślnie TCP
command_succeedscommandKod wyjścia musi być zero; timeout_seconds/timeout jest ograniczony do 1–1800 sekund
command_outputcommand plus regex w expected_pattern, pattern, expected lub expected na poziomie asercjiDopasowuje stdout z semantyką wyrażeń regularnych Pythona
network_reachablehostcount domyślnie 3; używa ping ICMP
http_respondsurlstatus domyślnie 200

Przykład:

{ "type": "command_output", "description": "Application reports the expected release", "params": { "command": "/opt/acme/bin/acme --version", "expected_pattern": "^acme 2\\.4\\.[0-9]+$" } }

Polecenie i przechwycone wyjście mogą stać się dowodem testowym. Nie osadzaj sekretów.

Asercje GUI

Kontrole GUI zależą od działającej sesji wyświetlania oraz helperów zrzutu ekranu lub wejścia runnera. Są bardziej wrażliwe na środowisko niż kontrole poleceń gościa.

TypGłówne parametryCo sprawdza
gui_application_opensapplication (kanoniczne); handler akceptuje też opcje specyficzne dla uruchomieniaUruchamia aplikację i szuka okna
gui_window_visibleparametry tytułu okna lub dopasowania używane przez handlerSzuka istniejącego okna
gui_execute_commandcommandWykonuje polecenie pulpitu; może przechwycić zrzut ekranu
gui_application_processprocess_nameSzuka procesu jako rezerwowy wariant headless
gui_screenshot_matchesreference_id; opcjonalnie threshold, regiony crop/maskPorównuje bieżący zrzut z zapisaną referencją
gui_wallpaper_matcheswallpaper_path; opcjonalne progi i regionySprawdza skonfigurowaną ścieżkę tapety i wynik wizualny
desktop_wallpaper_matcheswallpaper_pathUruchamia surowszą kontrolę pochodzenia/konfiguracji/wyglądu tapety pulpitu
gui_click_elementx, yWysyła wejście wskaźnika oparte na współrzędnych
gui_form_fillfieldsWypełnia pola formularza opisane współrzędnymi
gui_text_visibletext, contains lub ocr_containsUżywa OCR na ekranie lub wybranym regionie

Executor akceptuje też aliasy zgodności dla niektórych typów OCR i tapet. W nowych recipes preferuj kanoniczne nazwy powyżej. Testy współrzędnych są wrażliwe na rozdzielczość; tam, gdzie to możliwe, używaj OCR lub kontrol wyniku.

Kontrole benchmarków to osobny format

cis_benchmark występuje w historycznym słowniku asercji recipe, ale zwykły dispatcher asercji nie ma handlera cis_benchmark. CIS i inne kontrole benchmarków są dostarczane jako rekordy benchmarków z audit_script i wykonują się przez benchmark runner. Użyj workflow CIS benchmark, a nie własnej asercji z type: "cis_benchmark".

Interpretacja wyniku

  • Brak wymaganych danych daje error, albo planner może usunąć asercję z ostrzeżeniem przed wykonaniem.
  • Niedostępny cel on_vm daje skipped.
  • Niedopasowany wynik daje failed.
  • Tylko passed jest twierdzącym dowodem dla tej asercji.

Patrz Custom assertions, aby poznać wskazówki przy autorstwie.