使用 AWS IoT Greengrass 测试框架 - AWS IoT Greengrass

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

使用 AWS IoT Greengrass 测试框架

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

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

工作方式

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

GTF 独立版 JAR

Greengrass 使用 Cloudfront 作为 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 使用情况。

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

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

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

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

  • 修复了在 docker 镜像清理 docker 镜像期间,如果 docker 镜像不存在,GTF 会失败的问题。

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

1.1.0

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

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

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

1.0.0

初始版本。