AWS IoT Greengrass テストフレームワークを使用する - AWS IoT Greengrass

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

AWS IoT Greengrass テストフレームワークを使用する

Greengrass Testing Framework (GTF) は、お客様の観点からオートメーションをサポートする end-to-end構成要素のコレクションです。GTF は、機能ドライバーとして Cucumber AWS IoT Greengrass を使用します。 は、同じ構成要素を使用して、さまざまなデバイスでソフトウェアの変更を認定します。詳細については、Github の「Greengrass テストフレームワーク」を参照してください。

GTF は、コンポーネントの動作主導型開発 (BDD) を促進するために、自動テストを実行するツールである Cucumber を使用して実装されています。Cucumber では、このシステムの機能の概要は、feature という特殊なタイプのファイルにまとめられています。各機能は、自動テストに変換できる仕様を持つ、シナリオと呼ばれる人間が読める形式で記述されています。各シナリオは、Gherkin と呼ばれるドメイン固有の言語を使用して、テスト対象のシステムの相互作用と結果を定義する一連のステップとして概説されています。Gherkin ステップは、仕様をテストフローに固定するステップ定義と呼ばれる方法を使用してプログラミングコードにリンクされます。GTF のステップ定義は Java で実装されます。

仕組み

AWS IoT Greengrass は、GTF を複数の Java モジュールで構成されるスタンドアロン JAR として配布します。コンポーネントの end-to-end テストに GTF を使用するには、Java プロジェクト内でテストを実装する必要があります。テスト用スタンドタブル JAR を Java プロジェクトの依存関係として追加すると、GTF の既存の機能を使用したり、独自のカスタムテストケースを作成することで拡張したりできるようになります。カスタムテストケースを実行するには、Java プロジェクトを構築し、Greengrass テストフレームワークの設定オプション で説明されている設定オプションを使用してターゲット JAR を実行します。

GTF スタンドアロン JAR

Greengrass は Cloudfront を Maven リポジトリとして使用し、GTF スタンドアロン JAR の異なるバージョンをホストしています。GTF バージョンの全リストについては、GTF リリースを参照してください。

GTF スタンドアロン JAR には以下のモジュールが含まれています。これらのモジュールだけに限定されるものではありません。これらの依存関係をプロジェクト内で個別に選択することも、テスト用スタンドアロン JAR ファイルですべての依存関係をプロジェクトに一度に含めることもできます。

  • aws-greengrass-testing-resources: このモジュールは、テスト中に AWS リソースのライフサイクルを管理するための抽象化を提供します。これを使用して抽ResourceSpec象化を使用してカスタム AWS リソースを定義し、GTF がそれらのリソースの作成と削除を自動的に処理できるようにします。

  • aws-greengrass-testing-platform: このモジュールは、テストライフサイクル中にテスト対象のデバイスをプラットフォームレベルで抽象化します。プラットフォームとは独立して OS とやりとりするための API が含まれており、デバイスシェルで実行されるコマンドをシミュレートするために使用できます。

  • aws-greengrass-testing-components: このモジュールは、デプロイメント、IPC、その他の機能などの Greengrass のコア機能のテストに使用されるサンプルコンポーネントで構成されています。

  • aws-greengrass-testing-features: このモジュールは、Greengrass 環境でのテストに使用される再利用可能な共通ステップとその定義で構成されています。

変更ログ

次の表に、GTF の各バージョンの変更点を示します。詳細については、「」の「GTF リリース」ページを参照してください GitHub。

バージョン

変更

1.2.0
新機能
  • テスト中に MQTT とインターネット接続を設定するためのネットワーク関連のステップを追加しました。

  • デバイス RAM と CPU の使用をモニタリングするシステムメトリクスステップを追加します。

バグ修正と機能向上
  • Greengrass CLI ローカルデプロイステップは、成功するまで再試行します。

  • テストでは、Greengrass nucleus を強制終了するのではなく、適切に停止します。

  • モノとロールのエイリアスに対して AWS IoT 認証情報が取得可能になるまで、GTF が認証情報エンドポイントをポーリングする改善が追加されました。

  • アーティファクトとレシピディレクトリの欠落を修正しました。このバージョンでは、欠落しているコンポーネントバージョンも修正されています。

  • Docker イメージが存在しない場合、Docker イメージのクリーンアップ中に GTF が失敗する問題を修正しました。

  • コンポーネントのバージョンとして CURRENT キーワードを追加します。

1.1.0

新機能
  • 設定を使用してカスタムコンポーネントをインストールする機能が追加されました。これには、カスタムコンポーネントの recipe が必要です。

  • カスタム設定でローカルデプロイを更新する機能を追加します。

バグ修正と機能向上
  • ログコンテキストの GTF バージョンの不整合の問題を修正しました。

1.0.0

当初のバージョン