チュートリアル: 信頼テストスイートからの信頼テストを使用する - AWS IoT Greengrass

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

チュートリアル: 信頼テストスイートからの信頼テストを使用する

AWS IoT Greengrass テストフレームワーク (GTF) と Greengrass Development Kit (GDK) は、デベロッパーが end-to-end テストを実行する方法を提供します。このチュートリアルを完了すると、 コンポーネントで GDK プロジェクトを初期化し、 end-to-end テストモジュールで GDK プロジェクトを初期化し、 信頼度テストスイートからの信頼テストを使用できます。カスタムテストケースの作成後、テストを実行できます。

信頼テストは、Greengrass が提供する一般的なテストで、基本的なコンポーネントの動作を検証します。これらのテストは、より具体的なコンポーネントニーズに合わせて変更または拡張できます。

このチュートリアルでは、 HelloWorld コンポーネントを使用します。別のコンポーネントを使用している場合は、 HelloWorld コンポーネントをコンポーネントに置き換えます。

このチュートリアルでは、以下の作業を行います。

  1. GDK プロジェクトをコンポーネントで初期化します。

  2. end-to-end テストモジュールを使用して GDK プロジェクトを初期化します。

  3. 信頼度テストスイートのテストを使用します。

  4. 新しいテストケースにタグを追加します。

  5. テスト JAR をビルドします。

  6. テストを実行します。

前提条件

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

  • GDK バージョン 1.6.0 以降

  • Java

  • Maven

  • Git

ステップ 1: GDK プロジェクトをコンポーネントで初期化する

  • GDK プロジェクトで空のフォルダを初期化します。以下のコマンドを実行して Python で実装された HelloWorld コンポーネントをダウンロードします。

    gdk component init -t HelloWorld -l python -n HelloWorld

    このコマンドで、現在のディレクトリに HelloWorld という名前の新しいディレクトリが作成されます。

ステップ 2: テストモジュールを使用して GDK プロジェクトを初期化する end-to-end

  • GDK を使用して、テストモジュールテンプレートをダウンロードできます。このテンプレートには、特定の機能とステップの実装が含まれています。以下のコマンドを実行して HelloWorld ディレクトリを開き、テストモジュールを使用して既存の GDK プロジェクトを初期化します。

    cd HelloWorld gdk test-e2e init

    このコマンドで、HelloWorld ディレクトリに gg-e2e-tests という名前の新しいディレクトリが作成されます。このテストディレクトリは Greengrass のテスト用スタンドアロン JAR に依存する Maven プロジェクトです。

ステップ 3: 信頼度テストスイートのテストを使用する

信頼度テストケースの作成は、提供された機能ファイルの使用と、必要に応じてシナリオの変更で構成されます。信頼テストの使用例については、「」を参照してください例: カスタムテストケースを構築する。信頼度テストを使用するには、次の手順に従います。

  • 提供された機能ファイルを使用します。

    現在のディレクトリ内のgg-e2e-tests/src/main/resources/greengrass/featuresフォルダに移動します。サンプルconfidenceTest.featureファイルを開き、信頼テストを使用します。

ステップ 4 : 新しいテストケースにタグを追加する

  • 機能やシナリオにタグを割り当てて、テストプロセスを整理できます。タグを使用してシナリオのサブセットを分類したり、実行するフックを条件付きで選択したりできます。機能とシナリオには、スペースで区切ることで複数のタグを付けることができます。

    この例では、HelloWorld コンポーネントを使用します。

    各シナリオには のタグが付けられます@ConfidenceTest。テストスイートのサブセットのみを実行する場合は、タグを変更または追加します。各テストシナリオは、各信頼テストの最上部で説明されています。このシナリオは、各テストケースのインタラクションと期待される結果を理解するのに役立つ一連のステップです。これらのテストを拡張するには、独自のステップを追加するか、既存のステップを変更します。

    @ConfidenceTest Scenario: As a Developer, I can deploy GDK_COMPONENT_NAME to my device and see it is working as expected ....

ステップ 5: テスト JAR を構築する

  1. コンポーネントを構築します。テストモジュールを構築する前に、コンポーネントを構築する必要があります。

    gdk component build
  2. 次のコマンドを使用してテストモジュールを構築します。このコマンドは、greengrass-build フォルダーにテスト用 JAR を構築します。

    gdk test-e2e build

ステップ 6 : テストを実行する

信頼度テストを実行すると、GTF はテスト中に作成されたリソースの管理とともにテストのライフサイクルを自動化します。まず、テスト対象デバイス (DUT) を AWS IoT 機器としてプロビジョニングし、そのデバイスに Greengrass コアソフトウェアをインストールします。次に、そのパスで指定されたレシピを使用して HelloWorld という名前の新しいコンポーネントを作成します。その後、HelloWorldコンポーネントは Greengrass モノのデプロイを介してコアデバイスにデプロイされます。その後、デプロイが成功したかどうかが検証されます。デプロイが成功すると 3 分以内にデプロイステータスが COMPLETED に変わります。

  1. プロジェクトディレクトリの gdk-config.json ファイルに移動して、ステップ 4 で指定した ConfidenceTest タグまたはタグ TAK8u を持つテストをターゲットにします。次のコマンドを使用して、test-e2e キーをアップデートします。

    "test-e2e":{ "gtf_options" : { "tags":"ConfidenceTest" } }
  2. テストを実行する前に、AWS ホストデバイスへの認証情報を入力する必要があります。GTF はこれらの認証情報を使用してテストプロセス中の AWS リソースを管理します。指定したロールに、テストに含まれる必要な操作を自動化する権限があることを確認してください。

    次のコマンドを実行して、AWS 認証情報を提供します。

    1. Linux or Unix
      export AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE export AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
      Windows Command Prompt (CMD)
      set AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE set AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
      PowerShell
      $env:AWS_ACCESS_KEY_ID="AKIAIOSFODNN7EXAMPLE" $env:AWS_SECRET_ACCESS_KEY="wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"
  3. 次のコマンドを使用してテストを実行します。

    gdk test-e2e run

    このコマンドは、greengrass-build フォルダーにある Greengrass nucleus の最新バージョンをダウンロードし、それを使用してテストを実行します。また、このコマンドは、ConfidenceTest タグを持つシナリオのみをターゲットにし、それらのシナリオのレポートを生成します。このテスト中に作成されたAWSリソースは、テストの最後に破棄されます。

例: 信頼テストを使用する

GDK プロジェクトでダウンロードされたテストモジュールは、提供された機能ファイルで構成されています。

次の例では、Greengrass ソフトウェアのモノのデプロイ機能をテストするための機能ファイルを使用します。Greengrass AWS クラウド を介してコンポーネントをデプロイするシナリオを使用して、この機能の機能を部分的にテストします。これは、このユースケースの相互作用と期待される結果を理解するのに役立つ一連のステップです。

  • 提供された機能ファイルを使用します。

    現在のディレクトリ内のgg-e2e-tests/src/main/resources/greengrass/featuresフォルダに移動します。次の例confidenceTest.featureのようなサンプルを見つけることができます。

    Feature: Confidence Test Suite Background: Given my device is registered as a Thing And my device is running Greengrass @ConfidenceTest Scenario: As a Developer, I can deploy GDK_COMPONENT_NAME to my device and see it is working as expected When I create a Greengrass deployment with components | GDK_COMPONENT_NAME | GDK_COMPONENT_RECIPE_FILE | | aws.greengrass.Cli | LATEST | And I deploy the Greengrass deployment configuration Then the Greengrass deployment is COMPLETED on the device after 180 seconds # Update component state accordingly. Possible states: {RUNNING, FINISHED, BROKEN, STOPPING} And I verify the GDK_COMPONENT_NAME component is RUNNING using the greengrass-cli

    各テストシナリオは、各信頼テストの最上部で説明されています。このシナリオは、各テストケースのインタラクションと期待される結果を理解するのに役立つ一連のステップです。これらのテストを拡張するには、独自のステップを追加するか、既存のステップを変更します。各シナリオには、これらの調整に役立つコメントが含まれています。