Tipos de aserción
Referencia canónica de aserciones ejecutadas dentro de una VM de prueba aprovisionada. Salvo nota, el destino es primary. Cada aserción requiere también una description legible por humanos.
Aserciones estables en guest
| Tipo | params requeridos | Comportamiento opcional |
|---|---|---|
user_exists | username | Ejecuta id |
user_password | username | Verifica que existe un hash de contraseña desbloqueado; no intenta login interactivo |
user_in_group | username, group | Acepta equivalentes administrativos Vyatta al comprobar sudo/admin |
file_exists | path | Acepta archivo o directorio |
file_contains | path, pattern o content | Usa grep; el valor es un patrón grep, no solo comparación literal |
file_permissions | path, mode | Compara el modo octal reportado por stat |
service_running | service | Comprueba estado activo systemd; conoce un conjunto pequeño de alias cross-distro |
service_enabled | service | Comprueba habilitación systemd |
package_installed | package | Comprueba la base de datos del gestor de paquetes admitido del guest |
port_listening | port | protocol puede ser tcp o udp; por defecto TCP |
command_succeeds | command | El código de salida debe ser cero; timeout_seconds/timeout se limita a 1–1,800 segundos |
command_output | command más una regex en expected_pattern, pattern, expected o expected a nivel de aserción | Coincide stdout con semántica de expresiones regulares Python |
network_reachable | host | count por defecto 3; usa ping ICMP |
http_responds | url | status por defecto 200 |
Ejemplo:
{
"type": "command_output",
"description": "Application reports the expected release",
"params": {
"command": "/opt/acme/bin/acme --version",
"expected_pattern": "^acme 2\\.4\\.[0-9]+$"
}
}El comando y la salida capturada pueden convertirse en evidencia de prueba. No incrustes secretos.
Aserciones GUI
Las comprobaciones GUI dependen de una sesión de pantalla funcional y de los helpers de captura o entrada del runner. Son más sensibles al entorno que comprobaciones por comando en guest.
| Tipo | Parámetros principales | Qué comprueba |
|---|---|---|
gui_application_opens | application (canónico); el handler también acepta opciones específicas de lanzamiento | Inicia una aplicación y busca una ventana |
gui_window_visible | título de ventana o parámetros de coincidencia usados por el handler | Busca una ventana existente |
gui_execute_command | command | Ejecuta un comando de escritorio; puede capturar captura |
gui_application_process | process_name | Busca el proceso como respaldo headless |
gui_screenshot_matches | reference_id; threshold, regiones crop/mask opcionales | Compara la captura actual con una referencia almacenada |
gui_wallpaper_matches | wallpaper_path; umbrales y regiones opcionales | Comprueba la ruta de fondo configurada y el resultado visual |
desktop_wallpaper_matches | wallpaper_path | Ejecuta la comprobación más estricta de procedencia/configuración/visual del fondo de escritorio |
gui_click_element | x, y | Envía entrada de puntero por coordenadas |
gui_form_fill | fields | Rellena entradas de formulario descritas por coordenadas |
gui_text_visible | text, contains o ocr_contains | Usa OCR en pantalla o una región seleccionada |
El ejecutor también acepta alias de compatibilidad para algunos tipos OCR y fondo. Prefiere los nombres canónicos anteriores en recetas nuevas. Las pruebas por coordenadas son sensibles a resolución; usa OCR o comprobaciones de resultado cuando sea posible.
Las comprobaciones de benchmark son un formato aparte
cis_benchmark aparece en el vocabulario histórico de aserciones de la receta, pero el dispatcher ordinario de aserciones no tiene handler cis_benchmark. Las comprobaciones CIS y otros benchmarks se suministran como registros de benchmark con audit_script y se ejecutan mediante el runner de benchmark. Usa el flujo de benchmarks CIS, no una aserción personalizada con type: "cis_benchmark".
Interpretación de resultados
- Datos requeridos faltantes producen
error, o el planificador puede descartar la aserción con advertencia antes de ejecutar. - Un destino
on_vmno disponible produceskipped. - Un resultado que no coincide produce
failed. - Solo
passedes evidencia afirmativa para esa aserción.
Consulta Aserciones personalizadas para orientación de autoría.