

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

# 使用 AWS IoT Greengrass 測試架構
<a name="gg-testing-framework"></a>

Greengrass 測試架構 (GTF) 是支援從客戶角度end-to-end自動化的建置區塊集合。GTF 使用 [Cucumber](https://cucumber.io) 做為功能驅動程式。 AWS IoT Greengrass 會使用相同的建置區塊來驗證各種裝置上的軟體變更。如需詳細資訊，請參閱 [Github 上的 Greengrass 測試架構](https://github.com/aws-greengrass/aws-greengrass-testing/tree/dev_v1)。

GTF 使用 Cucumber 實作，這是用來執行自動化測試的工具，可鼓勵元件的行為驅動開發 (BDD)。在 Cucumber 中，此系統的功能概述於稱為 的特殊檔案類型中`feature`。每個功能都以稱為案例的人類可讀格式描述，這些案例是可轉換為自動化測試的規格。每個案例都概述為一系列步驟，使用稱為 Gherkin 的網域特定語言來定義此系統的互動和結果。[Gherkin 步驟](https://cucumber.io/docs/gherkin/reference/#steps)會使用稱為步驟定義的方法連結至程式設計程式碼，該方法將規格硬式路由至測試流程。GTF 中的步驟定義是使用 Java 實作。

**Topics**
+ [運作方式](#gg-testing-framework-how-gtf-works)
+ [變更記錄](#gtf-changelog)
+ [Greengrass 測試架構組態選項](configuration-options-gtf.md)
+ [教學課程：使用 Greengrass 測試架構和 Greengrass 開發套件執行end-to-end測試](run-e2e-tests-tutorial.md)
+ [教學課程：使用可信度測試套件中的可信度測試](confidence-tests-tutorial.md)

## 運作方式
<a name="gg-testing-framework-how-gtf-works"></a>

AWS IoT Greengrass 會將 GTF 分發為由數個 Java 模組組成的獨立 JAR。若要使用 GTF end-to-end測試，您必須在 Java 專案中實作測試。在 Java 專案中新增測試可站立的 JAR 做為相依性，可讓您使用 GTF 的現有功能，並透過撰寫自己的自訂測試案例來擴展它。若要執行自訂測試案例，您可以建置 Java 專案，並使用中所述的組態選項執行目標 JAR[Greengrass 測試架構組態選項](configuration-options-gtf.md)。

### GTF 獨立 JAR
<a name="w2ab1c24c19c25c11b5"></a>

Greengrass 使用 Cloudfront 做為 [Maven](https://maven.apache.org/) 儲存庫來託管不同版本的 GTF 獨立 JAR。如需 GTF 版本的完整清單，請參閱 [GTF 版本](https://github.com/aws-greengrass/aws-greengrass-testing/releases)。

GTF 獨立 JAR 包含下列模組。這不限於這些模組。您可以分別在專案中挑選和選擇每個相依性，或使用[測試獨立 JAR 檔案](https://github.com/aws-greengrass/aws-greengrass-testing/tree/dev_v1/aws-greengrass-testing-standalone)同時包含所有相依性。
+ `aws-greengrass-testing-resources`：本單元提供在測試過程中管理 AWS 資源生命週期的抽象概念。您可以使用此參數來定義自訂 AWS 資源，以便 GTF `ResourceSpec` 為您建立和移除這些資源。
+ `aws-greengrass-testing-platform`：此模組會在測試生命週期期間為待測裝置提供平台層級抽象。它包含 API， APIs 用於與獨立於 平台的作業系統互動，並可用於模擬在裝置 shell 中執行的命令。
+ `aws-greengrass-testing-components`：此模組包含用於測試 Greengrass 核心功能的範例元件，例如部署、IPC 和其他功能。
+ `aws-greengrass-testing-features`：此模組包含可重複使用的常見步驟及其定義，用於在 Greengrass 環境中測試 內的 。

**Topics**
+ [運作方式](#gg-testing-framework-how-gtf-works)
+ [變更記錄](#gtf-changelog)
+ [Greengrass 測試架構組態選項](configuration-options-gtf.md)
+ [教學課程：使用 Greengrass 測試架構和 Greengrass 開發套件執行end-to-end測試](run-e2e-tests-tutorial.md)
+ [教學課程：使用可信度測試套件中的可信度測試](confidence-tests-tutorial.md)

## 變更記錄
<a name="gtf-changelog"></a>

下表說明 GTF 每個版本中的變更。如需詳細資訊，請參閱 GitHub 上的 [GTF 版本頁面](https://github.com/aws-greengrass/aws-greengrass-testing/releases)。


|  **版本**  |  **變更**  | 
| --- | --- | 
| 1.2.0 |  [See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/gg-testing-framework.html) [See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/gg-testing-framework.html)  | 
| 1.1.0 |  [See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/gg-testing-framework.html)  | 
| 1.0.0 | 初始版本。 | 