IDT テストスイート設定ファイルを作成する - AWS IoT Greengrass

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

IDT テストスイート設定ファイルを作成する

このセクションでは、カスタムテストスイートの作成時、これに含める設定ファイルを作成する際の形式について説明します。

必要な設定ファイル
suite.json

テストスイートに関する情報が含まれています。suite.json を設定する を参照してください。

group.json

テストグループに関する情報が含まれています。テストスイート内のテストグループごとに group.json ファイルを作成する必要があります。group.json を設定する を参照してください。

test.json

テストケースに関する情報が含まれています。テストスイート内のテストケースごとに test.json ファイルを作成する必要があります。test.json を設定する を参照してください。

オプションの設定ファイル
test_orchestrator.yaml または state_machine.json

IDT がテストスイートを実行するときのテストの実行方法を定義します。「test_orchestrator.yaml を設定する」を参照してください。

注記

IDT v4.5.1 以降では、テストワークフローの定義に test_orchestrator.yaml ファイルを使用します。IDT のそれより前のバージョンでは、state_machine.jsonファイルを開きます。ステートマシンの詳細については、「IDT ステートマシンを構成する」を参照してください。

userdata_schema.json

テストの実行者が構成設定に含めることができる userdata.json ファイルのスキーマを定義します。userdata.json ファイルは、テストの実行に必要であるものの、device.json ファイルに含まれていない、追加の設定情報用に使用します。userdata_schema.json を設定する を参照してください。

設定ファイルは、以下に示すように <custom-test-suite-folder> に配置します。

<custom-test-suite-folder> └── suite ├── suite.json ├── test_orchestrator.yaml ├── userdata_schema.json ├── <test-group-folder> ├── group.json ├── <test-case-folder> └── test.json

suite.json を設定する

suite.json ファイルは、環境変数を設定し、テストスイートの実行にユーザーデータが必要かどうかを決定します。以下のテンプレートを使用して、<custom-test-suite-folder>/suite/suite.json ファイルを設定します。

{ "id": "<suite-name>_<suite-version>", "title": "<suite-title>", "details": "<suite-details>", "userDataRequired": true | false, "environmentVariables": [ { "key": "<name>", "value": "<value>", }, ... { "key": "<name>", "value": "<value>", } ] }

以下に説明するように、値が含まれているすべてのフィールドは必須です。

id

テストスイートの一意のユーザー定義 ID。id の値は、suite.json ファイルが配置されているテストスイートフォルダ名と一致する必要があります。スイート名とスイートのバージョンは、次の要件も満たしている必要があります。

  • <suite-name> にアンダースコアを含めることはできません。

  • <suite-version>x.x.x として表されている (x は数字)。

ID は IDT によって生成されるテストレポートに表示されます。

title

このテストスイートでテストされる製品または機能のユーザー定義名。この名前は、テストの実行者の IDT CLI に表示されます。

details

テストスイートの目的の簡単な説明。

userDataRequired

テストの実行者が userdata.json ファイルにカスタム情報を含める必要があるかどうかを定義します。この値を true に設定した場合は、テストスイートフォルダに userdata_schema.json ファイルも含める必要があります。

environmentVariables

オプションです。このテストスイートに設定する環境変数の配列。

environmentVariables.key

環境変数の名前。

environmentVariables.value

環境変数の値。

group.json を設定する

group.json ファイルは、テストグループが必須かオプションかを定義します。以下のテンプレートを使用して、<custom-test-suite-folder>/suite/<test-group>/group.json ファイルを設定します。

{ "id": "<group-id>", "title": "<group-title>", "details": "<group-details>", "optional": true | false, }

以下に説明するように、値が含まれているすべてのフィールドは必須です。

id

テストグループの一意のユーザー定義 ID。id の値は、group.json ファイルが配置されているテストグループフォルダの名前と一致する必要があり、アンダースコア (_) は使用できません。ID は IDT によって生成されるテストレポートで使用されます。

title

テストグループのわかりやすい名前。この名前は、テストの実行者の IDT CLI に表示されます。

details

テストグループの目的の簡単な説明。

optional

オプションです。true に設定すると、IDT が必須テストの実行を完了した後に、このテストグループがオプショングループとして表示されます。デフォルト値は false です。

test.json を設定する

test.json ファイルは、テストケースによって使用されるテストケース実行ファイルと環境変数を決定します。テストケース実行可能ファイルの作成の詳細については、IDT テストケース実行可能ファイルを作成するを参照してください。

以下のテンプレートを使用して、<custom-test-suite-folder>/suite/<test-group>/<test-case>/test.json ファイルを設定します。

{ "id": "<test-id>", "title": "<test-title>", "details": "<test-details>", "requireDUT": true | false, "requiredResources": [ { "name": "<resource-name>", "features": [ { "name": "<feature-name>", "version": "<feature-version>", "jobSlots": <job-slots> } ] } ], "execution": { "timeout": <timeout>, "mac": { "cmd": "/path/to/executable", "args": [ "<argument>" ], }, "linux": { "cmd": "/path/to/executable", "args": [ "<argument>" ], }, "win": { "cmd": "/path/to/executable", "args": [ "<argument>" ] } }, "environmentVariables": [ { "key": "<name>", "value": "<value>", } ] }

以下に説明するように、値が含まれているすべてのフィールドは必須です。

id

テストケースの一意のユーザー定義 ID。id の値は、test.json ファイルが配置されているテストケースフォルダの名前と一致する必要があり、アンダースコア (_) は使用できません。ID は IDT によって生成されるテストレポートで使用されます。

title

テストケースのわかりやすい名前。この名前は、テストの実行者の IDT CLI に表示されます。

details

テストケースの目的の簡単な説明。

requireDUT

オプションです。このテストの実行にデバイスが必要な場合は true に設定します。必要ない場合は false に設定します。デフォルト値は true です。テストの実行者は、テストの実行に使用するデバイスを device.json ファイルに設定します。

requiredResources

オプションです。このテストの実行に必要なリソースデバイスに関する情報を指定する配列。

requiredResources.name

このテストの実行時にリソースデバイスに与える一意の名前。

requiredResources.features

ユーザー定義のリソースデバイス機能の配列。

requiredResources.features.name

機能の名前。このデバイスが使用するデバイス機能。この名前は、テストの実行者によって resource.json ファイルに指定される機能名に対してマッチングされます。

requiredResources.features.version

オプションです。機能のバージョン。この値は、テストの実行者によって resource.json ファイルに指定される機能のバージョンに対してマッチングされます。バージョンが指定されていない場合、機能はチェックされません。機能にバージョン番号が必要ない場合は、このフィールドは空白のままにしてください。

requiredResources.features.jobSlots

オプションです。この機能がサポートできる同時テストの数。デフォルト値は、1です。IDT が機能ごとに異なるデバイスを使用する場合は、この値を 1 に設定することをお勧めします。

execution.timeout

IDT がテスト実行終了まで待機する時間 (ミリ秒単位)。この値の設定の詳細については、IDT テストケース実行可能ファイルを作成するを参照してください。

execution.os

IDT を実行するホストコンピュータのオペレーティングシステムに基づいて実行されるテストケースの実行可能ファイル。サポートされている値は linuxmacwin です。

execution.os.cmd

指定されたオペレーティングシステムで実行するテストケース実行可能ファイルへのパス。この場所は、システムパス内に存在する必要があります。

execution.os.args

オプションです。テストケースの実行可能ファイルを実行するために指定する引数。

environmentVariables

オプションです。このテストケース用に設定された環境変数の配列。

environmentVariables.key

環境変数の名前。

environmentVariables.value

環境変数の値。

注記

test.json ファイルと suite.json ファイルに同じ環境変数を設定した場合は、test.json ファイルの値が優先されます。

test_orchestrator.yaml を設定する

テストオーケストレーターは、テストスイートの実行フローを制御するコンストラクトです。テストスイートの開始ステートを決定し、ユーザー定義のルールに基づいてステートの移行を管理し、終了ステートに達するまでステートの移行を継続します。

テストスイートにユーザー定義のテストオーケストレーターが含まれていない場合は、IDT によってテストオーケストレーターが生成されます。

デフォルトのテストオーケストレーターには以下の機能があります。

  • テストの実行者に、テストスイート全体ではなく、特定のテストグループを選択して実行する機能を提供する。

  • 特定のテストグループが選択されていない場合、テストスイート内のすべてのテストグループをランダムな順序で実行する。

  • レポートを生成し、各テストグループおよびテストケースのテスト結果を示すコンソールサマリーを出力する。

IDT テストオーケストレーターの機能の詳細については、「IDT テストオーケストレーターを設定する」を参照してください。

userdata_schema.json を設定する

userdata_schema.json ファイルは、テストの実行者がユーザーデータを指定するスキーマを決定します。ユーザーデータは、テストスイートが device.json ファイルに含まれていない情報を必要とする場合に必要になります。例えば、テストを実行するために、Wi-Fi ネットワークの認証情報、特定のオープンポート、またはユーザーが提供する証明書が必要になる場合があります。この情報は、userdata という入力パラメータとして IDT に提供できます。これは、ユーザーが <device-tester-extract-location>/config フォルダに作成するuserdata.json ファイルの値です。userdata.json の形式は、テストケースに含まれている userdata_schema.json ファイルに基づきます。

テストの実行者が userdata.json ファイルを提供しなければならないことを示す方法

  1. suite.json ファイルで、userDataRequiredtrue に設定します。

  2. <custom-test-suite-folder> で、userdata_schema.json ファイルを作成します。

  3. userdata_schema.json ファイルを編集して、有効な IETF Draft v4 JSON Schema を作成します。

IDT は、テストスイートを実行するときに、このスキーマを自動的に読み込み、テストの実行者によって提供される userdata.json ファイルの検証に使用します。有効な場合、userdata.json ファイルのコンテンツは IDT コンテキストおよび、テストオーケストレーターコンテキストの両方で利用可能になります。