

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 使用 Amazon IoT Greengrass 测试框架
<a name="gg-testing-framework"></a>

Greengrass 测试框架 (GTF) 是一系列从客户角度支持自动化的构建模块。 end-to-endGTF 使用 Cuc [u](https://cucumber.io) mber 作为功能驱动程序。 Amazon 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 end-to-end 测试框架和 Greengrass 开发套件运行测试](run-e2e-tests-tutorial.md)
+ [教程：使用置信度测试套件中的置信度测试](confidence-tests-tutorial.md)

## 工作原理
<a name="gg-testing-framework-how-gtf-works"></a>

Amazon IoT Greengrass 将 GTF 作为由多个 Java 模块组成的独立 JAR 分发。要使用 GTF end-to-end 测试组件，必须在 Java 项目中实现测试。将可测试的独立 JAR 作为依赖关系添加到您的 Java 项目后，您就可以使用 GTF 的现有功能，并通过编写自己的自定义测试用例对其进行扩展。要运行自定义测试用例，您可以构建 Java 项目并使用 [Greengrass 测试框架配置选项](configuration-options-gtf.md) 中所述的配置选项运行目标 JAR。

### 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`：此模块为在测试过程中管理 Amazon 资源的生命周期提供了抽象。你可以用它来使用`ResourceSpec`抽象来定义你的自定义 Amazon 资源，这样 GTF 就可以为你创建和删除这些资源。
+ `aws-greengrass-testing-platform`：此模块测试生命周期内为被测设备提供平台级抽象。它包含 APIs 用于与独立于平台的操作系统进行交互，并可用于模拟在设备外壳中运行的命令。
+ `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 end-to-end 测试框架和 Greengrass 开发套件运行测试](run-e2e-tests-tutorial.md)
+ [教程：使用置信度测试套件中的置信度测试](confidence-tests-tutorial.md)

## 更改日志
<a name="gtf-changelog"></a>

下表介绍每个版本 GTF 的更改。如需了解更多信息，请参阅上的 [GTF 发布页面](https://github.com/aws-greengrass/aws-greengrass-testing/releases)。 GitHub


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