使用 Amazon IoT Greengrass 测试框架 - Amazon IoT Greengrass
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

使用 Amazon IoT Greengrass 测试框架

Greengrass 测试框架 GTF () 是一系列从客户角度 end-to-end支持自动化的构建模块。GTF使用 C uc umber 作为功能驱动程序。 Amazon IoT Greengrass 使用相同的构造块来验证不同设备上的软件更改。欲了解更多信息,请参阅 Github 上的 Greengrass 测试框架。

GTF是使用 Cucumber(一种用于运行自动测试的工具)实现的,以鼓励组件的行为驱动开发 (BDD)。在 Cucumber 中,该系统的功能在一种名为的特殊文件类型中概述feature。每个功能都以一种人类可读的格式描述,称为场景,这些规范可以转换为自动测试。每个场景都被概述为一系列步骤,这些步骤使用一种名为Gherkin的特定领域语言来定义被测系统的交互和结果。使用一种名为步骤定义的方法将 Gherkin 步骤链接到编程代码,该方法将规范与测试流程硬连线。中的步骤定义GTF是使用 Java 实现的。

工作方式

Amazon IoT Greengrass 将GTF作为由多个 Java 模块组JAR成的独立版本发布。要GTF用于 end-to-end 测试组件,必须在 Java 项目中实现测试。在您的 Java 项目中添加测试标准JAR作为依赖项,使您能够使用的现有功能,GTF并通过编写自己的自定义测试用例对其进行扩展。要运行自定义测试用例,您可以构建 Java 项目并使用中所述JAR的配置选项运行目标Greengrass 测试框架配置选项

GTF独立 JAR

Greengrass 使用 Cloudfront 作为 Maven 存储库来管独立版本的不同版本。GTF JAR有关GTF版本的完整列表,请参阅GTF发行版

GTF独立版JAR包括以下模块。它不仅限于这些模块。您可以在项目中单独选择每个依赖项,也可以将所有这些依赖项同时包含在测试独立JAR文件中

  • aws-greengrass-testing-resources:此模块为在测试过程中管理 Amazon 资源的生命周期提供了抽象。你可以用它来使用ResourceSpec抽象来定义你的自定义 Amazon 资源,这样GTF就可以为你创建和删除这些资源。

  • aws-greengrass-testing-platform:此模块为测试生命周期中的被测设备提供平台级抽象。它包含APIs用于与独立于平台的操作系统进行交互,并可用于模拟在设备外壳中运行的命令。

  • aws-greengrass-testing-components:此模块由用于测试 Greengrass 核心功能(例如部署IPC和其他功能)的示例组件组成。

  • aws-greengrass-testing-features:此模块由可重复使用的常用步骤及其定义组成,用于在 Greengrass 环境中进行测试。

更改日志

下表描述了的每个版本中的更改GTF。有关更多信息,请参阅上的 “GTF发布” 页面 GitHub。

版本

更改

1.2.0
新功能
  • 添加与网络相关的步骤以配置MQTT测试期间的互联网网络连接。

  • 添加用于监控设备RAM和CPU使用的系统指标步骤。

错误修复和改进
  • G CLI reengrass 本地部署步骤会重试,直到成功为止。

  • 测试可以优雅地阻止 Greengrass 核,而不是杀死它。

  • 添加了改进,即GTF轮询 Amazon IoT 凭证端点,直到可以检索事物和角色别名的凭证。

  • 修复了缺失的工件和配方目录。此版本还修复了缺失的组件版本。

  • 修复了如果 docker 镜像不存在则在 docker 镜像清理过程中GTF失败的问题。

  • 添加CURRENT关键字作为组件的版本。

1.1.0

新功能
  • 添加了安装带配置的自定义组件的功能。这需要自定义组件的配方。

  • 添加了使用自定义配置更新本地部署的功能。

错误修复和改进
  • 修复了日志上下文GTF版本不一致的问题。

1.0.0

初始版本。