

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

# チュートリアル: サンプル IDT テストスイートを構築して実行する
<a name="build-sample-suite"></a>

 AWS IoT Device Tester ダウンロードには、サンプルテストスイートのソースコードが含まれています。このチュートリアルを完了すると、サンプルテストスイートを構築して実行し、IDT for を使用してカスタムテストスイート AWS IoT Greengrass を実行する方法を理解できます。

 このチュートリアルでは、次の手順を実行します。

1. [サンプルテストスイートを構築する](#build-sample)

1. [IDT を使用してサンプルテストスイートを実行する](#run-sample)

## 前提条件
<a name="prereqs-tutorial-sample"></a><a name="prereqs-list"></a>

このチュートリアルを完了するには、以下が必要です。
+ 

**ホストコンピュータの要件**
  + の最新バージョン AWS IoT Device Tester
  + [Python](https://www.python.org/downloads/) 3.7 以降

    コンピュータにインストールされている Python のバージョンを確認するには、次のコマンドを実行します。

    ```
    python3 --version
    ```

    Windows で、このコマンドを使用してエラーが返された場合は、代わりに `python --version` を使用してください。返されたバージョン番号が 3.7 以上の場合は、Powershell ターミナルで次のコマンドを実行し、`python3` を `python` コマンドのエイリアスとして設定します。

    ```
    Set-Alias -Name "python3" -Value "python"
    ```

    バージョン情報が返されない場合や、バージョン番号が 3.7 未満 の場合は、[Python のダウンロード](https://wiki.python.org/moin/BeginnersGuide/Download)の手順に従って Python 3.7 以上をインストールしてください。詳細については、[Python のドキュメント](https://docs.python.org)を参照してください。
  + [urllib3](https://urllib3.readthedocs.io/en/latest/)

    `urllib3` が正しくインストールされていることを確認するには、次のコマンドを実行します。

    ```
    python3 -c 'import urllib3'
    ```

    `urllib3` がインストールされていない場合は、次のコマンドを実行してインストールします。

    ```
    python3 -m pip install urllib3
    ```
+ 

**デバイスの要件**
  + Linux オペレーティングシステムが搭載され、ホストコンピュータと同じネットワークにネットワーク接続するデバイス。

    Raspberry Pi OS が搭載された [Raspberry Pi](https://www.raspberrypi.org/) を使用することをお勧めします。Raspberry Pi に [SSH](https://www.raspberrypi.org/documentation/remote-access/ssh/) をセットアップし、リモートから接続できることを確認します。

## IDT 用のデバイス情報を設定する
<a name="configure-idt-sample"></a>

IDT がテストを実行するためのデバイス情報を設定します。次の情報を使用して、`<device-tester-extract-location>/configs` フォルダに含まれている `device.json` テンプレートを更新する必要があります。

```
[
  {
    "id": "pool",
    "sku": "N/A",
    "devices": [
      {
        "id": "<device-id>",
        "connectivity": {
          "protocol": "ssh",
          "ip": "<ip-address>",
          "port": "<port>",
          "auth": {
            "method": "pki | password",
            "credentials": {
              "user": "<user-name>",
              "privKeyPath": "/path/to/private/key",
              "password": "<password>"
            }
          }
        }
      }
    ]
  }
]
```

`devices` オブジェクトで、次の情報を指定します。

`id`  
自分のデバイスのユーザー定義の一意の識別子。

`connectivity.ip`  
自分のデバイスの IP アドレス。

`connectivity.port`  
オプション。デバイスへの SSH 接続に使用するポート番号。

`connectivity.auth`  
接続の認証情報。  
このプロパティは、`connectivity.protocol` が `ssh` に設定されている場合にのみ適用されます。    
`connectivity.auth.method`  
指定された接続プロトコルを介してデバイスにアクセスするために使用される認証方法。  
サポートされている値は以下のとおりです。  
+ `pki`
+ `password`  
`connectivity.auth.credentials`  
認証に使用される認証情報。    
`connectivity.auth.credentials.user`  
デバイスへのサインインに使用するユーザー名。  
`connectivity.auth.credentials.privKeyPath`  
デバイスへのサインインに使用するプライベートキーへの完全パス。  
この値は、`connectivity.auth.method` が `pki` に設定されている場合にのみ適用されます。  
`devices.connectivity.auth.credentials.password`  
自分のデバイスにサインインするためのパスワード。  
この値は、`connectivity.auth.method` が `password` に設定されている場合にのみ適用されます。

**注記**  
`method` が `pki` に設定されている場合のみ `privKeyPath` を指定します。  
`method` が `password` に設定されている場合のみ `password` を指定します。

## サンプルテストスイートを構築する
<a name="build-sample"></a>

`<device-tester-extract-location>/samples/python` フォルダには、サンプル設定ファイル、ソースコード、および提供されたビルドスクリプトを使用してテストスイートに結合できる IDT クライアント SDK が含まれています。次のディレクトリツリーは、これらのサンプルファイルの場所を示しています。

```
<device-tester-extract-location>
├── ...
├── tests
├── samples
│   ├── ...
│   └── python
│       ├── configuration
│       ├── src
│       └── build-scripts
│           ├── build.sh
│           └── build.ps1
└── sdks
    ├── ...
    └── python
        └── idt_client
```

テストスイートを構築するには、ホストコンピュータで次のコマンドを実行します。

------
#### [ Windows ]

```
cd <device-tester-extract-location>/samples/python/build-scripts
./build.ps1
```

------
#### [ Linux, macOS, or UNIX ]

```
cd <device-tester-extract-location>/samples/python/build-scripts
./build.sh
```

------

これにより、`<device-tester-extract-location>/tests` フォルダ内の `IDTSampleSuitePython_1.0.0` フォルダにサンプルテストスイートが作成されます。`IDTSampleSuitePython_1.0.0` フォルダのファイルを確認して、サンプルテストスイートの構造を理解し、テストケースの実行可能ファイルとテスト設定 JSON ファイルのさまざまな例を参照してください。

**注記**  
サンプルテストスイートには python ソースコードが含まれます。テストスイートのコードには機密情報を入力しないでください。

次のステップ: IDT を使用して、作成した[サンプルテストスイートを実行](#run-sample)します。

## IDT を使用してサンプルテストスイートを実行する
<a name="run-sample"></a>

サンプルテストスイートを実行するには、ホストコンピュータで次のコマンドを実行します。

```
cd <device-tester-extract-location>/bin
./devicetester_[linux | mac | win_x86-64] run-suite --suite-id IDTSampleSuitePython
```

IDT はサンプルテストスイートを実行し、結果をコンソールにストリーミングします。テストの実行が完了すると、次の情報が表示されます。

```
========== Test Summary ==========
Execution Time:         5s
Tests Completed:        4
Tests Passed:           4
Tests Failed:           0
Tests Skipped:          0
----------------------------------
Test Groups:
    sample_group:       PASSED
----------------------------------
Path to IoT Device Tester Report: /path/to/devicetester/results/87e673c6-1226-11eb-9269-8c8590419f30/awsiotdevicetester_report.xml
Path to Test Execution Logs: /path/to/devicetester/results/87e673c6-1226-11eb-9269-8c8590419f30/logs
Path to Aggregated JUnit Report: /path/to/devicetester/results/87e673c6-1226-11eb-9269-8c8590419f30/IDTSampleSuitePython_Report.xml
```

## トラブルシューティング
<a name="tutorial-troubleshooting-custom"></a>

次の情報は、チュートリアルの実行に関連する問題の解決に役立ちます。

**テストケースが正常に実行されない**  
テストが正常に実行されない場合、IDT はエラーログをコンソールにストリーミングします。このログはテスト実行のトラブルシューティングに役立ちます。このチュートリアルのすべての[前提条件](#prereqs-tutorial-sample)を満たしていることを確認してください。

**テスト対象のデバイスに接続できない**

以下について確認します。
+ `device.json` ファイルに、正しい IP アドレス、ポート、および認証情報が含まれている。
+ ホストコンピュータから SSH 経由でデバイスに接続できる。