Assertietypen
Canonieke referentie voor assertions die in een ingerichte test-VM worden
uitgevoerd. Tenzij anders vermeld, is het doel primary. Elke assertion
vereist ook een leesbare description.
Stabiele guest-assertions
| Type | Vereiste params | Optioneel gedrag |
|---|---|---|
user_exists | username | Voert id uit |
user_password | username | Controleert of er een ontgrendelde wachtwoordhash bestaat; er wordt geen interactieve login geprobeerd |
user_in_group | username, group | Accepteert Vyatta-beheerequivalenten bij controle op sudo/admin |
file_exists | path | Accepteert een bestand of map |
file_contains | path, pattern of content | Gebruikt grep; de waarde is een grep-patroon, geen puur letterlijke vergelijking |
file_permissions | path, mode | Vergelijkt de octale modus die stat rapporteert |
service_running | service | Controleert systemd active state; kent een kleine cross-distro aliass set |
service_enabled | service | Controleert systemd enablement |
package_installed | package | Controleert de ondersteunde package-managerdatabase van de guest |
port_listening | port | protocol kan tcp of udp zijn; standaard is TCP |
command_succeeds | command | Exitcode moet nul zijn; timeout_seconds/timeout wordt begrensd tot 1–1.800 seconden |
command_output | command plus een regex in expected_pattern, pattern, expected, of assertion-level expected | Matcht stdout met Python-regular-expression-semantiek |
network_reachable | host | count standaard 3; gebruikt ICMP ping |
http_responds | url | status standaard 200 |
Voorbeeld:
{
"type": "command_output",
"description": "Application reports the expected release",
"params": {
"command": "/opt/acme/bin/acme --version",
"expected_pattern": "^acme 2\\.4\\.[0-9]+$"
}
}Het commando en de vastgelegde output kunnen testbewijs worden. Embed geen geheimen.
GUI-assertions
GUI-controles hangen af van een werkende displaysessie en de screenshot- of inputhelpers van de runner. Ze zijn gevoeliger voor de omgeving dan guest-commandocontroles.
| Type | Belangrijkste parameters | Wat wordt gecontroleerd |
|---|---|---|
gui_application_opens | application (canoniek); handler accepteert ook launch-specifieke opties | Start een applicatie en zoekt een venster |
gui_window_visible | venstertitel- of matchparameters die de handler gebruikt | Zoekt een bestaand venster |
gui_execute_command | command | Voert een desktopcommando uit; kan een screenshot vastleggen |
gui_application_process | process_name | Zoekt het proces als headless fallback |
gui_screenshot_matches | reference_id; optioneel threshold, crop/mask-regio’s | Vergelijkt het huidige screenshot met een opgeslagen referentie |
gui_wallpaper_matches | wallpaper_path; optionele drempels en regio’s | Controleert het geconfigureerde wallpaperpad en het visuele resultaat |
desktop_wallpaper_matches | wallpaper_path | Voert de strengere desktop-wallpaper provenance/configuration/visual check uit |
gui_click_element | x, y | Stuurt coördinaatgebaseerde pointerinput |
gui_form_fill | fields | Vult coördinaatbeschreven formuliervelden in |
gui_text_visible | text, contains, of ocr_contains | Gebruikt OCR op het scherm of een geselecteerde regio |
De executor accepteert ook compatibiliteitsaliassen voor sommige OCR- en wallpapertypes. Gebruik in nieuwe recipes bij voorkeur de canonieke namen hierboven. Coördinaattests zijn resolutiegevoelig; gebruik waar mogelijk OCR of outcome-checks.
Benchmark-checks zijn een apart formaat
cis_benchmark staat in het historische assertion-vocabulaire van het recipe, maar
de gewone assertion-dispatcher heeft geen cis_benchmark-handler. CIS en
andere benchmark-checks worden geleverd als benchmarkrecords met een audit_script
en lopen via de benchmark-runner. Gebruik de
CIS benchmark-workflow, geen custom assertion met
type: "cis_benchmark".
Resultaatinterpretatie
- Ontbrekende verplichte gegevens geven
error, of de planner laat de assertion vallen met een waarschuwing vóór uitvoering. - Een niet-beschikbaar
on_vm-doel geeftskipped. - Een niet-passend resultaat geeft
failed. - Alleen
passedis bevestigend bewijs voor die assertion.
Zie Custom assertions voor richtlijnen bij het schrijven.