Skip to Content
ReferenceTypes d’assertion

Types d’assertion

Référence canonique pour les assertions exécutées dans une VM de test provisionnée. Sauf mention, la cible est primary. Chaque assertion exige aussi une description lisible par un humain.

Assertions invité stables

Typeparams requisComportement optionnel
user_existsusernameExécute id
user_passwordusernameVérifie qu’un hash de mot de passe déverrouillé existe ; n’essaie pas une connexion interactive
user_in_groupusername, groupAccepte les équivalents administratifs Vyatta lors d’une vérification sudo/admin
file_existspathAccepte un fichier ou un répertoire
file_containspath, pattern ou contentUtilise grep ; la valeur est un motif grep, pas une comparaison littérale seule
file_permissionspath, modeCompare le mode octal rapporté par stat
service_runningserviceVérifie l’état actif systemd ; connaît un petit ensemble d’alias inter-distro
service_enabledserviceVérifie l’activation systemd
package_installedpackageVérifie la base du gestionnaire de paquets supporté de l’invité
port_listeningportprotocol peut être tcp ou udp ; défaut TCP
command_succeedscommandLe code de sortie doit être zéro ; timeout_seconds/timeout est borné entre 1 et 1 800 secondes
command_outputcommand plus une regex dans expected_pattern, pattern, expected, ou expected au niveau assertionFait correspondre stdout avec la sémantique regex Python
network_reachablehostcount vaut 3 par défaut ; utilise ping ICMP
http_respondsurlstatus vaut 200 par défaut

Exemple :

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

La commande et la sortie capturée peuvent devenir preuve de test. N’intégrez pas de secrets.

Assertions GUI

Les vérifications GUI dépendent d’une session affichage fonctionnelle et des aides capture ou entrée du runner. Elles sont plus sensibles à l’environnement que les vérifications commande invité.

TypeParamètres principauxCe qu’elle vérifie
gui_application_opensapplication (canonique) ; le handler accepte aussi des options spécifiques au lancementDémarre une application et cherche une fenêtre
gui_window_visibleparamètres titre fenêtre ou correspondance utilisés par le handlerCherche une fenêtre existante
gui_execute_commandcommandExécute une commande bureau ; peut capturer une capture d’écran
gui_application_processprocess_nameCherche le processus comme repli headless
gui_screenshot_matchesreference_id ; threshold, régions crop/mask optionnelsCompare la capture courante à une référence stockée
gui_wallpaper_matcheswallpaper_path ; seuils et régions optionnelsVérifie le chemin fond d’écran configuré et le résultat visuel
desktop_wallpaper_matcheswallpaper_pathExécute la vérification provenance/configuration/visuelle fond d’écran bureau plus stricte
gui_click_elementx, yEnvoie une entrée pointeur par coordonnées
gui_form_fillfieldsRemplit des champs de formulaire décrits par coordonnées
gui_text_visibletext, contains, ou ocr_containsUtilise OCR sur l’écran ou une région sélectionnée

L’exécuteur accepte aussi des alias de compatibilité pour certains types OCR et fond d’écran. Préférez les noms canoniques ci-dessus dans les nouvelles recettes. Les tests par coordonnées sont sensibles à la résolution ; utilisez OCR ou vérifications de résultat lorsque possible.

Les vérifications benchmark sont un format séparé

cis_benchmark apparaît dans le vocabulaire historique d’assertion de recette, mais le dispatcher d’assertion ordinaire n’a pas de handler cis_benchmark. Les vérifications CIS et autres benchmarks sont fournies comme enregistrements benchmark avec un audit_script et s’exécutent via le runner benchmark. Utilisez le workflow benchmark CIS, pas une assertion personnalisée avec type: "cis_benchmark".

Interprétation des résultats

  • Des données requises manquantes produisent error, ou le planificateur peut abandonner l’assertion avec un avertissement avant exécution.
  • Une cible on_vm indisponible produit skipped.
  • Un résultat non concordant produit failed.
  • Seul passed est une preuve affirmative pour cette assertion.

Voir Assertions personnalisées pour la rédaction.