Assertionstyper
Kanonisk reference for assertions, der køres i en provisioneret test-VM.
Medmindre andet er angivet, er målet primary. Hver assertion kræver også et
læsbart felt description.
Stabile gæste-assertions
| Type | Påkrævede params | Valgfri adfærd |
|---|---|---|
user_exists | username | Kører id |
user_password | username | Verificerer at der findes en ulåst adgangskodehash; forsøger ikke interaktiv login |
user_in_group | username, group | Accepterer Vyatta-administrative ækvivalenter ved kontrol af sudo/admin |
file_exists | path | Accepterer fil eller mappe |
file_contains | path, pattern eller content | Bruger grep; værdien er et grep-mønster, ikke udelukkende literal sammenligning |
file_permissions | path, mode | Sammenligner oktaltilstand rapporteret af stat |
service_running | service | Tjekker systemd active state; kender et lille sæt alias på tværs af distroer |
service_enabled | service | Tjekker systemd enablement |
package_installed | package | Tjekker gæstens understøttede pakkehånderdatabase |
port_listening | port | protocol kan være tcp eller udp; standard er TCP |
command_succeeds | command | Exit code skal være nul; timeout_seconds/timeout begrænses til 1–1.800 sekunder |
command_output | command plus regex i expected_pattern, pattern, expected, eller assertion-level expected | Matcher stdout med Python regular-expression-semantik |
network_reachable | host | count standard 3; bruger ICMP ping |
http_responds | url | status standard 200 |
Eksempel:
{
"type": "command_output",
"description": "Application reports the expected release",
"params": {
"command": "/opt/acme/bin/acme --version",
"expected_pattern": "^acme 2\\.4\\.[0-9]+$"
}
}Kommandoen og den indfangede output kan blive testbevis. Indlejr ikke hemmeligheder.
GUI-assertions
GUI-tjek afhænger af en fungerende displaysession og runnerens screenshot- eller inputhjælpere. De er mere miljøfølsomme end gæstekommando-tjek.
| Type | Hovedparametre | Hvad der tjekkes |
|---|---|---|
gui_application_opens | application (kanonisk); handler accepterer også startspecifikke valg | Starter et program og leder efter et vindue |
gui_window_visible | vinduestitel- eller matchparametre brugt af handleren | Leder efter et eksisterende vindue |
gui_execute_command | command | Udfører en skrivebordskommando; kan tage et screenshot |
gui_application_process | process_name | Leder efter processen som headless fallback |
gui_screenshot_matches | reference_id; valgfri threshold, crop/mask-regioner | Sammenligner aktuelt screenshot med gemt reference |
gui_wallpaper_matches | wallpaper_path; valgfrie tærskler og regioner | Tjekker konfigureret baggrundsbillede-sti og visuelt resultat |
desktop_wallpaper_matches | wallpaper_path | Kører det strengere desktop-baggrundsbillede provenance/configuration/visual-tjek |
gui_click_element | x, y | Sender koordinatbaseret pointerinput |
gui_form_fill | fields | Udfylder koordinatbeskrevne formularfelter |
gui_text_visible | text, contains, eller ocr_contains | Bruger OCR på skærmen eller en valgt region |
Executoren accepterer også kompatibilitetsalias for nogle OCR- og baggrundstyper. Foretræk de kanoniske navne ovenfor i nye recipes. Koordinattests er opløsningsfølsomme; brug OCR eller resultattjek hvor det er muligt.
Benchmark-tjek er et separat format
cis_benchmark findes i opskriftens historiske assertion-ordforråd, men
den almindelige assertion-dispatcher har ingen cis_benchmark-handler. CIS og
andre benchmark-tjek leveres som benchmark-poster med audit_script
og kører via benchmark-runneren. Brug
CIS benchmark-workflow, ikke en custom assertion med
type: "cis_benchmark".
Fortolkning af resultat
- Manglende påkrævede data giver
error, eller planlæggeren kan droppe assertionen med advarsel før kørsel. - Utilgængeligt
on_vm-mål giverskipped. - Ikke matchende resultat giver
failed. - Kun
passeder bekræftende bevis for den assertion.
Se Custom assertions for vejledning til forfattere.