翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
テストの実行者向けの設定の構成
カスタムテストスイートを実行するには、テストの実行者は、実行するテストスイートに基づいて設定を設定する必要があります。設定は、
フォルダにある設定ファイルテンプレートに基づいて指定します。必要に応じて、テストの実行者は IDT が AWS クラウドへの接続に使用する AWS 認証情報も設定する必要があります。<device-tester-extract-location>
/configs/
テストを作成するユーザーは、テストスイートをデバッグするために、以下に示すファイルの設定が必要になります。また、テストスイートを実行するために必要な以下の設定を設定できるように、テストの実行者に指示を提供する必要があります。
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 は、認定されたデバイスの追跡に使用されます。
注記
AWS Partner 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
-
このデバイスと通信するために使用される通信プロトコル。プール内の各デバイスは、同じプロトコルを使用する必要があります。
現在、サポートされている値は、物理デバイスの場合は
ssh
とuart
、Docker コンテナの場合はdocker
、IDT ホストマシンと直接接続されていないが、ホストマシンと通信するための物理ミドルウェアとしてリソースデバイスを必要とするデバイスの場合はno-op
だけです。no-op デバイスの場合は、
devices.pairedResource
でリソースデバイス ID を設定します。この ID もresource.json
ファイルで指定する必要があります。ペアリングするデバイスは、テスト対象のデバイスと物理的にペアリングされているデバイスである必要があります。IDT は、ペアリングされたリソースデバイスを識別して接続した後は、test.json
ファイルに記述されている機能に従って他のリソースデバイスに接続することはありません。 connectivity.ip
-
テスト対象のデバイスの IP アドレス。
このプロパティは、
connectivity.protocol
がssh
に設定されている場合にのみ適用されます。 connectivity.port
-
オプション。SSH 接続に使用するポート番号。
デフォルト値は 22 です。
このプロパティは、
connectivity.protocol
がssh
に設定されている場合にのみ適用されます。 connectivity.publicKeyPath
-
オプション。テスト対象のデバイスへの接続を認証するために使用される公開キーへのフルパス。
publicKeyPath
を指定すると、IDT がテスト対象のデバイスへの SSH 接続を確立するときに、デバイスの公開キーを検証します。この値が指定されていない場合、IDT は SSH 接続を作成しますが、デバイスのパブリックキーは検証しません。公開キーへのパスを指定し、安全な方法を使用して、この公開キーをフェッチすることを強くお勧めします。標準のコマンドラインベースの SSH クライアントの場合、パブリックキーは
known_hosts
ファイルで提供されます。別の公開キーファイルを指定する場合、このファイルはknown_hosts
ファイルと同じ形式、つまり (ip-address key-type public-key
) を使用する必要があります。 connectivity.auth
-
接続の認証情報。
このプロパティは、
connectivity.protocol
がssh
に設定されている場合にのみ適用されます。connectivity.auth.method
-
指定された接続プロトコルを介してデバイスにアクセスするために使用される認証方法。
サポートされている値は以下のとおりです。
-
pki
-
password
-
connectivity.auth.credentials
-
認証に使用される認証情報。
connectivity.auth.credentials.password
-
テスト中のデバイスにサインインするためのパスワード。
この値は、
connectivity.auth.method
がpassword
に設定されている場合にのみ適用されます。 connectivity.auth.credentials.privKeyPath
-
テスト中のデバイスにサインインするためのプライベートキーへの完全パス。
この値は、
connectivity.auth.method
がpki
に設定されている場合にのみ適用されます。 connectivity.auth.credentials.user
-
テスト対象デバイスにサインインするためのユーザー名。
connectivity.serialPort
-
オプション。デバイスが接続されているシリアルポート。
このプロパティは、
connectivity.protocol
がuart
に設定されている場合にのみ適用されます。 connectivity.containerId
-
テスト対象の Docker コンテナのコンテナ ID または名前。
このプロパティは、
connectivity.protocol
がdocker
に設定されている場合にのみ適用されます。 connectivity.containerUser
-
オプション。コンテナ内のユーザー名。デフォルト値は Dockerfile で指定されたユーザーです。
デフォルト値は 22 です。
このプロパティは、
connectivity.protocol
がdocker
に設定されている場合にのみ適用されます。
注記
テストの実行者がテストに対して誤ったデバイス接続を構成しているかどうかを確認するには、ステートマシンコンテキストから
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.protocol
がssh
に設定されている場合にのみ適用されます。 connectivity.port
-
オプション。SSH 接続に使用するポート番号。
デフォルト値は 22 です。
このプロパティは、
connectivity.protocol
がssh
に設定されている場合にのみ適用されます。 connectivity.publicKeyPath
-
オプション。テスト対象のデバイスへの接続を認証するために使用される公開キーへのフルパス。
publicKeyPath
を指定すると、IDT がテスト対象のデバイスへの SSH 接続を確立するときに、デバイスの公開キーを検証します。この値が指定されていない場合、IDT は SSH 接続を作成しますが、デバイスのパブリックキーは検証しません。公開キーへのパスを指定し、安全な方法を使用して、この公開キーをフェッチすることを強くお勧めします。標準のコマンドラインベースの SSH クライアントの場合、パブリックキーは
known_hosts
ファイルで提供されます。別の公開キーファイルを指定する場合、このファイルはknown_hosts
ファイルと同じ形式、つまり (ip-address key-type public-key
) を使用する必要があります。 connectivity.auth
-
接続の認証情報。
このプロパティは、
connectivity.protocol
がssh
に設定されている場合にのみ適用されます。connectivity.auth.method
-
指定された接続プロトコルを介してデバイスにアクセスするために使用される認証方法。
サポートされている値は以下のとおりです。
-
pki
-
password
-
connectivity.auth.credentials
-
認証に使用される認証情報。
connectivity.auth.credentials.password
-
テスト中のデバイスにサインインするためのパスワード。
この値は、
connectivity.auth.method
がpassword
に設定されている場合にのみ適用されます。 connectivity.auth.credentials.privKeyPath
-
テスト中のデバイスにサインインするためのプライベートキーへの完全パス。
この値は、
connectivity.auth.method
がpki
に設定されている場合にのみ適用されます。 connectivity.auth.credentials.user
-
テスト対象デバイスにサインインするためのユーザー名。
connectivity.serialPort
-
オプション。デバイスが接続されているシリアルポート。
このプロパティは、
connectivity.protocol
がuart
に設定されている場合にのみ適用されます。 connectivity.containerId
-
テスト対象の Docker コンテナのコンテナ ID または名前。
このプロパティは、
connectivity.protocol
がdocker
に設定されている場合にのみ適用されます。 connectivity.containerUser
-
オプション。コンテナ内のユーザー名。デフォルト値は Dockerfile で指定されたユーザーです。
デフォルト値は 22 です。
このプロパティは、
connectivity.protocol
がdocker
に設定されている場合にのみ適用されます。
(オプション) 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>
IDT の AWS 認証情報を設定するには、テストランナーは
フォルダにある <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.method
がfile
に設定されている場合にのみ適用されます。