Skip to Content
Testing默认测试

默认测试

默认情况下,在标准化配方中启用测试,有四个预定义的 测试名称:bootloginpackagesnetwork。这些都是小客人 检查,而不是完整的验收套件。配方可以禁用测试或 替换列表,并且某些工件类型使用更窄的契约。

默认值实际上证明了什么

测试已执行检查不证明
bootuptime 通过 QEMU 来宾代理成功退出每个引导加载程序路径、硬件引导或缺少内核警告
loginwhoami 可以通过 root guest-agent 通道运行交互式密码、SSH 密钥、PAM、桌面欢迎程序或最终用户登录
packagesdpkg --listrpm -qapacman -Q 之一成功提示所请求的每个包均已安装
networkDNS 解析 example.com 并在有限重试后与端口 443 的 TCP 连接成功一般互联网健康状况、HTTP 内容、每个接口或气隙设计

Ubuntu 24.04 CIS 路径删除了通用网络检查并使用其 相反,准备就绪门控功能断言。没有预期的食谱 互联网路由可以将失败的通用网络检查转换为警告。

特性和能力检查

运行程序还合并由启用的功能元数据、旧版本提供的检查 挂钩测试文件、冻结的能力计划、显式自定义测试以及任何 基准测试。重复的断言被删除。已知的断言 丢失的参数将被丢弃,并发出服务器警告;审查结果 制定测试计划,这样掉落的支票就不会被误认为是通过。

示例包括检查配置的 SSH 端口、服务状态、请求的 包,或特定于配方的工件。覆盖范围取决于启用的 功能:包含某个功能本身并不保证该功能具有 一个完整的断言集。

读取结果

使用断言行和证据,而不仅仅是聚合徽章:

  • passed 表示可执行检查返回了预期结果。
  • failed 表示检查已运行且与预期相矛盾。
  • error 表示安全带无法做出判断。
  • skipped 表示检查未运行,例如因为其目标 VM 是 缺席。

错误和跳过不是通过。完成的图像和通过的测试运行是 独立的州;认证是第三道门。

定义更严格的验收标准

对于真实的工作负载,添加与提示相关的断言。例如:

{ "description": "Nginx serves the local health endpoint", "assertions": [ { "type": "service_running", "description": "Nginx is active", "params": { "service": "nginx" } }, { "type": "http_responds", "description": "Health endpoint returns 200", "params": { "url": "http://localhost/health", "status": 200 } } ] }

然后在控制台中检查构建的图像,对于硬件绑定的声明, 在代表性硬件上进行测试。参见 Custom assertionsAssertion types