デフォルトのテスト
テストは、4 つの事前定義された正規化されたレシピでデフォルトで有効になります。
テスト名: boot、login、packages、および network。こちらは小さなゲストです
完全な受け入れスイートではなく、チェックです。レシピによってテストが無効になったり、
リストを置き換え、一部のアーティファクト タイプはより狭いコントラクトを使用します。
デフォルトが実際に証明していること
| テスト | 実行されたチェック | 証明できない |
|---|---|---|
boot | uptime は QEMU ゲスト エージェントを通じて正常に終了します。すべてのブートローダー パス、ハードウェア ブート、またはカーネル警告の欠如 | |
login | whoami は、ルート ゲスト エージェント チャネルを通じて実行できます。インタラクティブパスワード、SSH キー、PAM、デスクトップグリータ、またはエンドユーザーログイン | |
packages | dpkg --list、rpm -qa、または pacman -Q のいずれかが成功します。プロンプトによって要求されたすべてのパッケージがインストールされていること。 | |
network | DNS は example.com を解決し、ポート 443 への TCP 接続は制限付き再試行後に成功します。一般的なインターネットの健全性、HTTP コンテンツ、あらゆるインターフェイス、またはエアギャップ設計 |
Ubuntu 24.04 CIS パスは、汎用ネットワーク チェックを削除し、その 代わりに、readiness-gated 機能アサーションを使用します。予想外のレシピ インターネット ルートでは、汎用ネットワーク チェックが失敗し、警告に変換される場合があります。
機能と機能のチェック
ランナーは、有効な機能メタデータによって提供されるチェックもマージします。 フック テスト ファイル、凍結された機能計画、明示的なカスタム テスト、およびその他の ベンチマークテスト。重複するアサーションは削除されます。既知のアサーション 不足しているパラメータはサーバー警告とともに削除されます。結果をレビューする 落ちた小切手が合格と間違われないようにテスト計画を立てます。
例には、構成された 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 assertions と Assertion types を参照してください。