Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

例:テスト

ここでは、「 新しいテストエージェントの作成とデプロイ」のセクションに従って、テストエージェント(テストに必要な数だけ)が作成されていることを前提としています。

テスト用 YANG モデル パス

項目 YANGモデルパス: /accounts/account/tests ...
テスト /.
テスト[id] /テスト
ID /テスト/id
名前 /テスト/名前
ステータス /テスト/ステータス
開始時間 /テスト/開始時間
終了時間 /テスト/終了時間
レポートURL /テスト/レポートURL
手順 /テスト/ステップ
ステップ[ID] /テスト/ステップ/ステップ
名前 /test/steps/step/name
ID /test/steps/step/id
開始時間 /test/steps/step/start-time
終了時間 /test/steps/step/end-time
ステータス /test/steps/step/status
ステータスメッセージ /test/steps/step/status-message
テンプレート /テンプレート
テンプレート[名前] /templates/template
名前 /templates/template/name
説明 /templates/template/description
パラメータ /templates/template/parameters
パラメータ[キー] /templates/template/parameters/parameter
キー /templates/template/parameters/parameter/key
タイプ /templates/template/parameters/parameter/type

テストオーケストレーションの前提条件

  • ncclientを使用してNETCONFを介してテストを開始するには、まず、アプリ内ヘルプの「テストと監視」>「テンプレートの作成」に記載されているように、コントロールセンターGUIを使用してテストテンプレートを作成する必要があります。そのテンプレートで「テンプレート入力」として指定されたすべてのフィールドは、テストテンプレートの開始をオーケストレーションする際に、XMLのパラメーターとして必要になります。
    • ルーティングでのテストの実行アクティブテストは、オーケストレーションのコンテキストでは "状態" と見なされます。状態データは、 テストエージェントオーケストレーションの概要のセクションで説明されている設定データとは対照的に、設定データベースに保存されない書き込み不可能なデータです。つまり、基本的に、コントロールセンターのGUIでテストやテンプレートを変更しても、コントロールセンターと設定データベースの間で同期関連の問題は発生しません。
  • テストレポートで正しく report-url するには、コントロールセンターのURLが正しく設定されていることを確認する必要があります。これはファイル /opt/netrounds-confd/settings.pyで行われます。デフォルトでは、コントロールセンターのホスト名は socket.gethostname()を使用して取得されます。以下を参照してください。これで正しい結果が得られない場合は、このファイルでホスト名(またはURL全体)を手動で設定する必要があります。

テストの開始

新しいテストエージェントの作成とデプロイ」セクションで説明したように、コマンドを実行します

ディレクトリ /opt/netrounds-confd/ からYANGモデルを出力します。このモデルでは、ncclient を使用してテストを開始するための RPC は次のようになります。

説明については、付録の 「凡例」 セクションを参照してください。

以下の手順を以下に示します。

  1. テストエージェントはルーティングアクティブテストアカウントに登録されていますが、テストはまだ開始されていません。
  2. 必要な入力パラメーターは、実行されるテストテンプレートで識別されます。
  3. ncclient を使用して 60 秒間の HTTP テストが開始されます。

ステップ1:最初は、ルーティングアクティブテストアカウントでテストは開始されていません。以下のコントロールセンターGUIのスクリーンショットをご覧ください。

User interface screenshot showing Tests section with message You are currently not running any tests. Options include Create new test and QuickStart. Additional link Show all is present. Columns labeled Started and Share indicate test details.

ステップ2:この例でテストを開始するために使用するテンプレートは、HTTPテストテンプレートです。2つの必須入力フィールド(ClientsURL)があり、コントロールセンターのGUIでテンプレートを作成する際に指定しました。

User interface for creating a new test sequence with fields for Name and Description, Step 1 labeled HTTP, and Add Step placeholder.

これらのパラメーター(とりわけ)は、NETCONFマネージャー(ncclient)によって設定データベースに伝達されるXML設定で定義します。

ステップ3:HTTPテストは、ncclientを使用して開始されます。

以下は、HTTPテストテンプレートに必要な設定情報とパラメーターを指定するコード例です。テンプレートの構築方法によっては、ここでの詳細が異なる場合があります。

各パラメーターに対して、 <key> 属性を指定する必要があります。キーは、コントロールセンターのパラメーターの Variable name と同じです。変数名は、次のように検査できます。

  • サイドバーの [テスト] をクリックし、[ 新しいテストシーケンス] を選択します。
  • マイテンプレートをクリックします
  • 目的のテンプレートの下にある 編集 リンクをクリックします。
  • 右上隅にある [入力の編集 ] ボタンをクリックします。

この例では、デフォルトで、変数名はコントロールセンターに表示される表示名(「url」と「URL」など)の単なる小文字バージョンです。ただし、コントロールセンターのGUIでは、変数の名前を好きなように変更できます。

キーの他に、各パラメーターには、URLの<string>など、そのタイプを指定する必要があります。タイプに関する完全な情報を得るには、完全なYANGモデルを確認する必要があることに注意してください。テストエージェントインターフェイスの場合、以下のコードの<clients>で示すように、型はより複雑な構造を持っています。

これで、ncclientを使用してスクリプトを実行できます。すべてが正しいと仮定すると、テストが開始され、その実行がコントロールセンターに表示されます。

NETCONF-initiated HTTP test interface showing test on client VTA1:eth0 IPv4, response time 209ms, rate 0.04824 Mbit/s, with actions Rerun, Delete, Report, Export.

テストが正常に開始されると、コントロールセンターからテストIDが返されます。この例では、テストIDは3です。

テストIDは、コントロールセンターGUIのテストのURLにも記載されています。この例では、そのURLは https://host/demo/testing/3/です。

テスト結果の取得

テスト結果を取得する最も簡単な方法は、テスト ID をポイントすることです。

以下は、ID = 3の上記のHTTPテストから結果を取得するためのPythonコードです。

出力は次のようになります。

テストテンプレートのエクスポートとインポート

テストテンプレートはJSON形式でエクスポートし、その形式でコントロールセンターに再インポートできます。これは、コントロールセンターの別のインストールでテストテンプレートを使用する場合に便利です。(テンプレートの初期作成は、コントロールセンターのGUIを使用して行うのが最適です)。

以下は、エクスポートとインポートを実行するためのコードです。

テストテンプレートのエクスポート

テンプレートは json_config オブジェクトに含まれています。

テストテンプレートのインポート

テストテンプレートを含むJSON設定オブジェクトは、次のようにコントロールセンターに再インポートできます。