斷言類型
在配置的測試虛擬機器內執行的斷言的規範參考。
除非另有说明,目标是 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是該斷言的肯定證據。
請參閱自訂斷言 以取得創作指南。