このページの目次
Python テスト ファイルでの Junos スナップショット アドミニストレータについて
Python(jsnapy)テストファイルのJunosスナップショットアドミニストレータは、スナップショットに含まれる内容の詳細を定義します。テストファイルは、テストケースとも呼ばれ、jsnapy構成ファイル内から参照されるYAML形式のファイルです。コンフィギュレーション・ファイルは、CLI コマンドの引数として読み取られます jsnapy
。一般に、テストファイルは、テストケースに含まれるテストと、それらのテストの特定の定義を定義します。
テスト ファイルの構造について
テスト ファイルには、tests_include リストと詳細セクションの 2 つのセクションしかありません。インクルードリストに名前が付けられた各テストの詳細セクションがあります。テスト ファイルは、include ステートメントで始まります。 tests_include:
include ステートメントは、テスト ケースに含まれるテストの一覧の先頭を示します。リスト内の各テスト名の前にはダッシュ (-) が付きます。たとえば、 - test_name
.テスト名にスペースや特殊文字を含めることはできませんが、テストには好きな名前を付けることができます。有効なテスト名には、 check_interfaces_up
、 、 show_software_version
または test_bgp_neighbors
が含まれます。
tests_include リストがテスト ファイルに存在しないが、詳細セクションで定義されているテストがある場合は、テスト ファイル内で詳細に説明されているすべてのテストが実行されます。テスト ファイル内の特定のテストの実行をスキップするには、テスト名を tests_include リストから外します。
詳細セクションは、インクルード リストからのテストの名前で始まり、その後にコロンが続きます。たとえば、 check_interfaces_up:
.詳細セクションの目的は、次のようなテスト ケースのすべてのテスト条件を提供することです。
デバイス上で実行される Junos OS CLI または RPC コマンド(テストごとに 1 つ)。これらのコマンドの出力は、スナップショットの基礎となります。
テストの実行元のJunos OS階層内の開始ノードを識別する拡張マークアップパス言語(XPath)。
コマンドからの出力の分析に役立つテスト演算子。
テスト演算子が正常に実行された結果として返される情報メッセージ。
テスト演算子の失敗の結果として返されるエラー メッセージ。
RPC コマンドを使用する場合 get-config
、 ステートメントを使用して filter_xml:
特定の設定情報をフィルタリングできます。一例として、 ステートメントにより filter_xml: configuration/system/login
、デバイスは Junos OS /system/login
階層にある構成要素を除くすべての構成要素を除外します。このステートメントは、特定のRPCコマンド get-config
でのみ機能します。詳細については、「 例: Python テスト ファイルでの Junos スナップショット アドミニストレータの作成」を参照してください。
テスト ファイルの要素
jsnapy で使用される他の YAML ファイルと同様に、テスト ファイルはキーと値のペアを使用して構造化されます。キーワードと値はコロン (:) で区切られます。
例えば rpc: get-config
.
表 1 は、jsnapy テスト・ファイルで使用できるキーを示し、各キーについて説明します。
キーワード |
説明 |
---|---|
|
このキーワードは、jsnapy テスト・ファイルの先頭およびインクルード・ステートメントの開始を示します。その後にコロン(:)とキャリッジリターンが続きます。後続のリストの各要素は、テスト ケースの名前であり、先頭にはスペース、ダッシュ、および別のスペースが付き、それ自体が行上にある必要があります。例えば: tests_include: - show_version - check_interface_state - return_bgp_neighbors |
|
このキーワードは、jsnapy によってデバイス上で実行される Junos OS コマンドを指定するために使用されます。先頭にはスペース、ダッシュ (-)、および別のスペースが続き、その直後にコロン (:)) が続きます。例えば:
|
|
このキーワードは、jsnapy がデバイス上で実行する Junos OS RPC コマンドを指定するために使用します。先頭にはスペース、ダッシュ (-)、および別のスペースが続き、その直後にコロン (:)) が続きます。例えば:
|
|
このキーワードは、デバイス出力をフォーマットするために使用されます。使用可能なオプションは、 |
|
このキーワードは、RPC コマンドでのみ機能します。キーワードがテスト・ケース定義で使用されている場合 コマンドを使用する場合 |
|
このキーワードは、テスト定義の開始を示します。先頭にはスペース、ダッシュ (-)、および別のスペースが続き、その直後にコロン (:)) が続きます。例えば:
また、このキーワードは、 の最初のノード |
|
このキーワードは、テスト定義の開始を示します。先頭にはスペース、ダッシュ (-)、および別のスペースが続き、その直後にコロン (:)) が続きます。例えば:
また、このキーワードは、 内のすべてのノード
メモ:
テスト定義では、 または |
|
このキーワードは、テストを開始するJunos OS階層内のパスを示します。先頭に 2 つのスペースが続き、その後にコロン (:)。例えば:
このキーワードで使用される値は、パス構文値です。例えば XPath は |
|
このキーワードは、反復処理されるノード・セットを基準とした XPATH 式を示し、最初のスナップショット・データ項目を 2 番目のスナップショット・データ項目にマップする固有のデータ・エレメントを指定します。キーワードの直後にはコロン (:)。同じ |
|
このキーワードは、テスト定義の開始を示します。その後にコロンが続きます。テストは、 |
|
このキーワードは、jsnapy ロギング・レベルが debug に設定されている場合に、テストが正常に完了したときにログに記録される情報を指定します。この情報では、スナップショット ファイルからノード値を取得する jinja2 形式のテンプレートを使用できます。例えば:
|
|
このキーワードは、jsnapy ロギング・レベルが debug に設定されている場合に、テストの失敗時にログに記録される情報を指定します。この情報では、スナップショット ファイルからノード値を取得する jinja2 形式のテンプレートを使用できます。例えば:
|
|
info セクションまたは err メッセージ セクションで jinja2 形式の変数と共に使用すると、このキーワードにより、jsnapy は変更前のスナップショット内で名前付き変数を検索します。 |
|
info セクションまたは err メッセージ セクションで jinja2 形式のテンプレートと共に使用すると、このキーワードにより、jsnapy は変更後のスナップショット内で名前付き変数を検索します。 |