テストの実行者向けの設定の設定 - 無料RTOS

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

テストの実行者向けの設定の設定

カスタムテストスイートを実行するには、テストの実行者は、実行するテストスイートに基づいて設定を設定する必要があります。設定は、<device-tester-extract-location>/configs/ フォルダにある設定ファイルテンプレートに基づいて指定します。必要に応じて、テストランナーIDTは AWS クラウドへの接続に使用する AWS 認証情報も設定する必要があります。

テストを作成するユーザーは、テストスイートをデバッグするために、以下に示すファイルの設定が必要になります。また、テストスイートを実行するために必要な以下の設定を設定できるように、テストの実行者に指示を提供する必要があります。

device.json の設定

device.json ファイルには、テストが実行されるデバイスに関する情報 (IP アドレス、ログイン情報、オペレーティングシステム、CPUアーキテクチャなど) が含まれています。

テストの実行者は、<device-tester-extract-location>/configs/ フォルダにある次のテンプレート device.json ファイルを使用してこの情報を指定できます。

[ { "id": "<pool-id>", "sku": "<pool-sku>", "features": [ { "name": "<feature-name>", "value": "<feature-value>", "configs": [ { "name": "<config-name>", "value": "<config-value>" } ], } ], "devices": [ { "id": "<device-id>", "pairedResource": "<device-id>", //used for no-op protocol "connectivity": { "protocol": "ssh | uart | docker | no-op", // ssh "ip": "<ip-address>", "port": <port-number>, "publicKeyPath": "<public-key-path>", "auth": { "method": "pki | password", "credentials": { "user": "<user-name>", // pki "privKeyPath": "/path/to/private/key", // password "password": "<password>", } }, // uart "serialPort": "<serial-port>", // docker "containerId": "<container-id>", "containerUser": "<container-user-name>", } } ] } ]

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

id

デバイスプールと呼ばれるデバイスのコレクションを一意に識別するユーザー定義の英数字の ID。プールに属するデバイスには、同一のハードウェアが必要です。テストスイートを実行する場合、プールのデバイスを使用してワークロードを並列化します。複数のデバイスを使用して異なるテストを実行します。

sku

テスト対象デバイスを一意に識別する英数字の値。SKU は、認定されたデバイスを追跡するために使用されます。

注記

Partner AWS Device Catalog にボードを一覧表示する場合は、ここでSKU指定する が、一覧表示プロセスで使用する SKU と一致する必要があります。

features

オプション。デバイスでサポートされている機能を含む配列。デバイス機能は、テストスイートに設定するユーザー定義の値です。テストの実行者に、device.json ファイルに含める機能名および値に関する情報を提供する必要があります。例えば、他のデバイスのMQTTサーバーとして機能するデバイスをテストする場合は、テストロジックを設定して、 という名前の機能でサポートされている特定のレベルを検証できますMQTT_QoS。テストの実行者は、この機能名を指定し、デバイスによってサポートされる QoS レベルにその機能値を設定します。提供された情報は、devicePool.featuresクエリのIDTコンテキストから、またはpool.featuresクエリのステートマシンコンテキストから取得できます。

features.name

機能の名前。

features.value

サポートされている機能値。

features.configs

機能の構成設定 (必要な場合)。

features.config.name

構成設定の名前。

features.config.value

サポートされている設定値。

devices

テスト対象のプール内のデバイスの配列。少なくとも 1 つのデバイスが必要です。

devices.id

テスト対象のデバイスのユーザー定義の一意の識別子。

devices.pairedResource

リソースデバイスに対してユーザーが定義した一意の識別子。この値は、no-op 接続プロトコルを使用してデバイスをテストする場合に必要です。

connectivity.protocol

このデバイスと通信するために使用される通信プロトコル。プール内の各デバイスは、同じプロトコルを使用する必要があります。

現在サポートされている値は、物理デバイスuart、Docker docker コンテナ、ホストマシンと直接接続していないがIDT、ホストマシンと通信するために物理ミドルウェアとしてリソースデバイスを必要とするデバイスno-opの場合、 ssh と のみです。

no-op デバイスの場合は、devices.pairedResource でリソースデバイス ID を設定します。この ID も resource.json ファイルで指定する必要があります。ペアリングするデバイスは、テスト対象のデバイスと物理的にペアリングされているデバイスである必要があります。が IDTを識別してペアリングされたリソースデバイスに接続すると、 IDTはtest.jsonファイルに記載されている機能に従って他のリソースデバイスに接続されません。

connectivity.ip

テスト対象のデバイスの IP アドレス。

このプロパティは、connectivity.protocolssh に設定されている場合にのみ適用されます。

connectivity.port

オプション。SSH 接続に使用するポート番号。

デフォルト値は 22 です。

このプロパティは、connectivity.protocolssh に設定されている場合にのみ適用されます。

connectivity.publicKeyPath

オプション。テスト対象のデバイスへの接続を認証するために使用される公開キーへのフルパス。を指定するとpublicKeyPath、 はテスト対象のデバイスSSHへの接続を確立するときにデバイスのパブリックキーIDTを検証します。この値を指定しない場合、 はSSH接続IDTを作成しますが、デバイスのパブリックキーは検証しません。

公開キーへのパスを指定し、安全な方法を使用して、この公開キーをフェッチすることを強くお勧めします。標準コマンドラインベースのSSHクライアントの場合、パブリックキーは known_hosts ファイルで提供されます。別の公開キーファイルを指定する場合、このファイルは known_hosts ファイルと同じ形式、つまり (ip-address key-type public-key) を使用する必要があります。

connectivity.auth

接続の認証情報。

このプロパティは、connectivity.protocolssh に設定されている場合にのみ適用されます。

connectivity.auth.method

指定された接続プロトコルを介してデバイスにアクセスするために使用される認証方法。

サポートされている値は以下のとおりです。

  • pki

  • password

connectivity.auth.credentials

認証に使用される認証情報。

connectivity.auth.credentials.password

テスト中のデバイスにサインインするためのパスワード。

この値は、connectivity.auth.methodpassword に設定されている場合にのみ適用されます。

connectivity.auth.credentials.privKeyPath

テスト中のデバイスにサインインするためのプライベートキーへの完全パス。

この値は、connectivity.auth.methodpki に設定されている場合にのみ適用されます。

connectivity.auth.credentials.user

テスト対象デバイスにサインインするためのユーザー名。

connectivity.serialPort

オプション。デバイスが接続されているシリアルポート。

このプロパティは、connectivity.protocoluart に設定されている場合にのみ適用されます。

connectivity.containerId

テスト対象の Docker コンテナのコンテナ ID または名前。

このプロパティは、connectivity.protocoldocker に設定されている場合にのみ適用されます。

connectivity.containerUser

オプション。コンテナ内のユーザー名。デフォルト値は Dockerfile で指定されたユーザーです。

デフォルト値は 22 です。

このプロパティは、connectivity.protocoldocker に設定されている場合にのみ適用されます。

注記

テストの実行者がテストに対して誤ったデバイス接続を構成しているかどうかを確認するには、ステートマシンコンテキストから pool.Devices[0].Connectivity.Protocol を取得し、この値を Choice ステート内の予想値と比較します。正しくないプロトコルが使用されている場合は、LogMessage ステートを使用してメッセージを出力し、Fail ステートに移行します。

または、エラー処理コードを使用して、誤ったデバイスタイプによるテスト失敗をレポートすることもできます。

(オプション) userdata.json の設定

userdata.json ファイルには、device.json ファイルには指定されていない、テストスイートに必要とされる追加情報が含まれています。このファイルの形式は、テストスイートに定義されている userdata_scheme.json ファイルによって異なります。テストを作成するユーザーは、作成したテストスイートを実行するユーザーにこの情報を提供してください。

(オプション) resource.json の設定

resource.json ファイルには、リソースデバイスとして使用されるすべてのデバイスに関する情報が含まれています。リソースデバイスは、テスト対象のデバイスの特定の機能をテストするために必要なデバイスです。例えば、デバイスの Bluetooth 機能をテストするには、リソースデバイスを使用して、デバイスがリソースデバイスに正常に接続できるかどうかをテストできます。リソースデバイスはオプションで、必要な数だけリソースデバイスを要求できます。テストを作成するユーザーは、test.json ファイル を使用して、テストに必要なリソースデバイスの機能を定義します。テストの実行者は、resource.json ファイルを使用して、必要な機能を持つリソースデバイスのプールを指定します。作成したテストスイートを実行するユーザーに、以下の情報を提供してください。

テストの実行者は、<device-tester-extract-location>/configs/ フォルダにある次のテンプレート resource.json ファイルを使用してこの情報を指定できます。

[ { "id": "<pool-id>", "features": [ { "name": "<feature-name>", "version": "<feature-value>", "jobSlots": <job-slots> } ], "devices": [ { "id": "<device-id>", "connectivity": { "protocol": "ssh | uart | docker", // ssh "ip": "<ip-address>", "port": <port-number>, "publicKeyPath": "<public-key-path>", "auth": { "method": "pki | password", "credentials": { "user": "<user-name>", // pki "privKeyPath": "/path/to/private/key", // password "password": "<password>", } }, // uart "serialPort": "<serial-port>", // docker "containerId": "<container-id>", "containerUser": "<container-user-name>", } } ] } ]

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

id

デバイスプールと呼ばれるデバイスのコレクションを一意に識別するユーザー定義の英数字の ID。プールに属するデバイスには、同一のハードウェアが必要です。テストスイートを実行する場合、プールのデバイスを使用してワークロードを並列化します。複数のデバイスを使用して異なるテストを実行します。

features

オプション。デバイスでサポートされている機能を含む配列。このフィールドに必要な情報は、テストスイートの test.json ファイル に定義されています。この情報によって、実行するテストと、テストの実行方法が決まります。テストスイートに機能が必要ない場合は、このフィールドは必須ではありません。

features.name

機能の名前。

features.version

機能バージョン。

features.jobSlots

デバイスを同時に使用できるテストの数を示すための設定。デフォルト値は 1 です。

devices

テスト対象のプール内のデバイスの配列。少なくとも 1 つのデバイスが必要です。

devices.id

テスト対象のデバイスのユーザー定義の一意の識別子。

connectivity.protocol

このデバイスと通信するために使用される通信プロトコル。プール内の各デバイスは、同じプロトコルを使用する必要があります。

現在、サポートされている値は、物理デバイス用の ssh および uart と、Docker コンテナ用の docker のみです。

connectivity.ip

テスト対象のデバイスの IP アドレス。

このプロパティは、connectivity.protocolssh に設定されている場合にのみ適用されます。

connectivity.port

オプション。SSH 接続に使用するポート番号。

デフォルト値は 22 です。

このプロパティは、connectivity.protocolssh に設定されている場合にのみ適用されます。

connectivity.publicKeyPath

オプション。テスト対象のデバイスへの接続を認証するために使用される公開キーへのフルパス。を指定するとpublicKeyPath、 はテスト対象のデバイスSSHへの接続を確立するときにデバイスのパブリックキーIDTを検証します。この値を指定しない場合、 はSSH接続IDTを作成しますが、デバイスのパブリックキーは検証しません。

公開キーへのパスを指定し、安全な方法を使用して、この公開キーをフェッチすることを強くお勧めします。標準コマンドラインベースのSSHクライアントの場合、パブリックキーは known_hosts ファイルで提供されます。別の公開キーファイルを指定する場合、このファイルは known_hosts ファイルと同じ形式、つまり (ip-address key-type public-key) を使用する必要があります。

connectivity.auth

接続の認証情報。

このプロパティは、connectivity.protocolssh に設定されている場合にのみ適用されます。

connectivity.auth.method

指定された接続プロトコルを介してデバイスにアクセスするために使用される認証方法。

サポートされている値は以下のとおりです。

  • pki

  • password

connectivity.auth.credentials

認証に使用される認証情報。

connectivity.auth.credentials.password

テスト中のデバイスにサインインするためのパスワード。

この値は、connectivity.auth.methodpassword に設定されている場合にのみ適用されます。

connectivity.auth.credentials.privKeyPath

テスト中のデバイスにサインインするためのプライベートキーへの完全パス。

この値は、connectivity.auth.methodpki に設定されている場合にのみ適用されます。

connectivity.auth.credentials.user

テスト対象デバイスにサインインするためのユーザー名。

connectivity.serialPort

オプション。デバイスが接続されているシリアルポート。

このプロパティは、connectivity.protocoluart に設定されている場合にのみ適用されます。

connectivity.containerId

テスト対象の Docker コンテナのコンテナ ID または名前。

このプロパティは、connectivity.protocoldocker に設定されている場合にのみ適用されます。

connectivity.containerUser

オプション。コンテナ内のユーザー名。デフォルト値は Dockerfile で指定されたユーザーです。

デフォルト値は 22 です。

このプロパティは、connectivity.protocoldocker に設定されている場合にのみ適用されます。

(オプション) config.json の設定

config.json ファイルには、 の設定情報が含まれていますIDT。通常、テストランナーは、 IDTおよびオプションで AWS リージョンの AWS ユーザー認証情報を提供する場合を除き、このファイルを変更する必要はありません。必要なアクセス許可を持つ認証情報が提供されている場合 AWS 、 は使用状況メトリクスを AWS IoT Device Tester 収集して に送信します AWS。これはオプトイン機能であり、IDT機能の向上に使用されます。詳細については、「IDT 使用状況メトリクスを送信する」を参照してください。

テストランナーは、次のいずれかの方法で AWS 認証情報を設定できます。

  • 認証情報ファイル

    IDT は、 と同じ認証情報ファイルを使用します AWS CLI。詳細については、「設定ファイルと認証情報ファイル」を参照してください。

    認証情報ファイルの場所は、使用しているオペレーティングシステムによって異なります。

    • macOS、Linux: ~/.aws/credentials

    • Windows: C:\Users\UserName\.aws\credentials

  • 環境変数

    環境変数は、オペレーティングシステムによって維持され、システムコマンドによって使用される変数です。SSH セッション中に定義された変数は、そのセッションが終了した後には使用できません。IDT は、 AWS_ACCESS_KEY_IDおよび AWS_SECRET_ACCESS_KEY環境変数を使用して AWS 認証情報を保存できます。

    これらの変数を Linux、macOS、または Unix で設定するには、export を使用します。

    export AWS_ACCESS_KEY_ID=<your_access_key_id> export AWS_SECRET_ACCESS_KEY=<your_secret_access_key>

    Windows でこれらの変数を設定するには、set を使用します。

    set AWS_ACCESS_KEY_ID=<your_access_key_id> set AWS_SECRET_ACCESS_KEY=<your_secret_access_key>

の AWS 認証情報を設定するにはIDT、テストランナーは <device-tester-extract-location>/configs/フォルダにあるconfig.jsonファイルの authセクションを編集します。

{ "log": { "location": "logs" }, "configFiles": { "root": "configs", "device": "configs/device.json" }, "testPath": "tests", "reportPath": "results", "awsRegion": "<region>", "auth": { "method": "file | environment", "credentials": { "profile": "<profile-name>" } } } ]

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

注記

このファイル内のすべてのパスは、 に対して定義されます。<device-tester-extract-location>.

log.location

のログフォルダへのパス <device-tester-extract-location>.

configFiles.root

設定ファイルが含まれるフォルダへのパス。

configFiles.device

device.json ファイルへのパス。

testPath

テストスイートが含まれるフォルダへのパス。

reportPath

がテストスイートIDTを実行した後のテスト結果を含むフォルダへのパス。

awsRegion

オプション。スイートをテストする AWS リージョン。設定されない場合、テストスイートは各テストスイートに指定されているデフォルトのリージョンを使用します。

auth.method

メソッドは IDTを使用して AWS 認証情報を取得します。サポートされる値は、file (認証情報ファイルから認証情報を取得) と environment (環境変数を使用して認証情報を取得) です。

auth.credentials.profile

認証情報ファイルから使用する認証情報プロファイル。このプロパティは、auth.methodfile に設定されている場合にのみ適用されます。