断言类型
在配置的测试虚拟机内执行的断言的规范参考。
除非另有说明,目标是 primary。每个断言还需要人类
可读description。
稳定的访客断言
| 类型 | 必需 params | 可选行为 |
|---|---|---|
user_exists | username | 运行 id |
user_password | username | 验证是否存在未锁定的密码哈希值;它不会尝试交互式登录 |
user_in_group | username、group | 检查 sudo/admin 时接受 Vyatta 管理等效项 |
file_exists | path | 接受文件或目录 |
file_contains | path、pattern 或 content | 使用grep;该值是一个 grep 模式,而不是纯文字比较 |
file_permissions | path、mode | 比较 stat 报告的八进制模式 |
service_running | service | 检查 systemd 活动状态;知道一个小的跨发行版别名集 |
service_enabled | service | 检查 systemd 启用 |
package_installed | package | 检查来宾支持的包管理器数据库 |
port_listening | port | protocol 可以是 tcp 或 udp;默认为 TCP |
command_succeeds | command | 退出代码必须为零; timeout_seconds/timeout 被限制为 1–1,800 秒 |
command_output | command 加上 expected_pattern、pattern、expected 或断言级别 expected 中的正则表达式 | 将 stdout 与 Python 正则表达式语义相匹配 |
network_reachable | host | count 默认为 3;使用 ICMP ping |
http_responds | url | status 默认为 200 |
示例:
{
"type": "command_output",
"description": "Application reports the expected release",
"params": {
"command": "/opt/acme/bin/acme --version",
"expected_pattern": "^acme 2\\.4\\.[0-9]+$"
}
}命令和捕获的输出可以成为测试证据。不要嵌入秘密。
GUI 断言
GUI 检查取决于工作显示会话和跑步者的屏幕截图或 输入助手。它们比来宾命令检查对环境更加敏感。
| 类型 | 主要参数 | 它检查什么 |
|---|---|---|
gui_application_opens | application(规范);处理程序还接受特定于启动的选项 | 启动应用程序并寻找窗口 |
gui_window_visible | window-title 或处理程序使用的匹配参数 | |
gui_execute_command | command | 执行桌面命令;可以截图 |
gui_application_process | process_name | 寻找一个无头后备进程 |
gui_screenshot_matches | reference_id;可选 threshold,裁剪/遮罩区域 | 将当前屏幕截图与存储的参考进行比较 |
gui_wallpaper_matches | wallpaper_path;可选阈值和区域 | 检查配置的壁纸路径和视觉结果 |
desktop_wallpaper_matches | wallpaper_path | 运行更严格的桌面壁纸出处/配置/视觉检查 |
gui_click_element | x、y | 发送基于坐标的指针输入 |
gui_form_fill | fields | 填充坐标描述的表单输入 |
gui_text_visible | text、contains 或 ocr_contains | 在屏幕或选定区域上使用 OCR |
执行器还接受某些 OCR 和壁纸的兼容性别名 类型。在新食谱中更喜欢上面的规范名称。坐标测试是 分辨率敏感;尽可能使用 OCR 或结果检查。
基准检查是一种单独的格式
cis_benchmark 出现在配方的历史断言词汇中,但是
普通的断言调度程序没有 cis_benchmark 处理程序。独联体和
其他基准检查作为带有 audit_script 的基准记录提供
并通过基准运行程序执行。使用
CIS 基准工作流程,不是自定义断言
type: "cis_benchmark"。
结果解释
- 缺少所需的数据会产生
error,或者规划器可能会删除断言 执行前有警告。 - 不可用的
on_vm目标会产生skipped。 - 不匹配的结果产生
failed。 - 只有
passed是该断言的肯定证据。
请参阅自定义断言 以获取创作指南。