使用 AWS IoT Greengrass 測試框架 - AWS IoT Greengrass

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用 AWS IoT Greengrass 測試框架

Greengrass 測試框架(GTF)是支持從客戶角度 end-to-end自動化的構建模塊的集合。GTF 使用黃瓜作為功能驅動程序。 AWS IoT Greengrass 使用相同的建置區塊來限定各種裝置上的軟體變更。有關更多信息,請參閱 Greengrass itHub 上的綠色測試框架

GTF 是使用黃瓜,用於運行自動化測試的工具來實現,以鼓勵組件的行為驅動開發(BDD)。在黃瓜,這個系統的功能在一個名為特殊類型的文件概述feature。每個功能被稱為場景是可以轉換成自動化測試規範的人類可讀格式描述。每個場景被概述為一系列使用稱為小黃瓜特定領域的語言定義該系統的相互作用和結果的步驟。一個小黃瓜步驟被鏈接到使用一種稱為步驟定義的方法,其硬線規範到測試流程的編程代碼。GTF 中的步驟定義是使用 Java 實現的。

運作方式

AWS IoT Greengrass 將 GTF 作為由多個 Java 模塊組成的獨立 JAR 進行分發。要使用 GTF end-to-end 測試組件,您必須在 Java 項目中實現測試。在 Java 項目中添加測試可站立的 JAR 作為依賴項使您可以使用 GTF 的現有功能,並通過編寫自己的自定義測試用例來擴展它。要運行自定義測試用例,您可以構建 Java 項目並使用中描述的配置選項運行目標 JAR 綠色測試框架配置選項

GTF 獨立式 JAR

使用雲端作為 Maven 存儲庫來託管不同版本的 GTF 獨立 JAR。有關 GTF 版本的完整列表,請參閱 GTF 版本。

GTF 獨立 JAR 包括以下模塊。它不僅限於這些模塊。您可以在專案中分別挑選並選擇每個依賴項,或者使用測試獨立 JAR 文件一次包含所有這些依賴項。

  • aws-greengrass-testing-resources:此模塊提供抽象,用於在測試過程中管理 AWS 資源的生命週期。您可以使用它來使用ResourceSpec抽象來定義您的自定義 AWS 資源,以便 GTF 可以為您創建和刪除這些資源。

  • aws-greengrass-testing-platform:此模塊為測試生命週期期間被測設備提供平台級抽象。它包含用於與獨立於平台的操作系統進行交互的 API,並且可用於模擬在設備外殼中運行的命令。

  • aws-greengrass-testing-components:此模組包含用於測試 Greengrass 核心功能 (例如部署、IPC 和其他功能) 的範例元件。

  • aws-greengrass-testing-features:此模塊由可重複使用的通用步驟及其定義組成,這些步驟用於在 Greengrass 環境中進行測試。

變更記錄

下表描述了每個 GTF 版本中的變更。如需詳細資訊,請參閱中的 GTF 發行版本頁面 GitHub。

版本

變更

1.2.0
新功能
  • 新增與網路相關的步驟,以在測試期間設定 MQTT 和網際網路連線。

  • 添加系統度量步驟以監視設備 RAM 和 CPU 使用情況。

錯誤修復和改進
  • 重試 CLI 本地部署步驟,直到它成功為止。

  • 測試優雅地停止 Greengrass 核,而不是殺死它。

  • 新增 GTF 輪詢 AWS IoT 認證端點的改進,直到可擷取物件和角色別名的認證為止。

  • 修復丟失的工件和配方目錄。此版本還修復了缺少的組件版本。

  • 修復了如果碼頭映像不存在,則在 docker 映像清理期間 GTF 失敗的問題。

  • 添加當前關鍵字作為組件的版本。

1.1.0

新功能
  • 添加了使用配置安裝自定義組件的功能。這需要自定義組件的配方。

  • 添加使用自訂規劃更新本機部署的功能。

錯誤修復和改進
  • 修復了日誌上下文 GTF 版本不一致的問題。

1.0.0

初始版本。