在批量构建中执行并行测试 - Amazon CodeBuild
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

在批量构建中执行并行测试

您可以使用 Amazon CodeBuild 在批量构建中执行并行测试。并行测试执行是一种测试方法,其中多个测试用例在不同的环境、计算机或浏览器上同时运行,而不是按顺序执行。这种方法可以显著缩短总体测试执行时间并提高测试效率。在 CodeBuild 中,您可以将测试拆分到多个环境中并且并行运行它们。

并行测试执行的主要优势包括:

  1. 缩短执行时间:按顺序需要数小时的测试可以在几分钟内完成。

  2. 提高资源利用率:高效地利用可用的计算资源。

  3. 更早的反馈:更快地完成测试意味着可以更快地向开发人员提供反馈。

  4. 经济实惠:从长远来看,可以节省时间和计算成本。

在实施并行测试执行时,通常会考虑两种主要方法:独立环境和多线程。虽然这两种方法都旨在实现并发测试执行,但它们在实施和有效性方面存在显著差异。独立环境会创建隔离的实例,其中每个测试套件独立运行,而多线程使用不同的线程在同一个进程空间内同时执行多个测试。

与多线程相比,独立环境的主要优势包括:

  1. 隔离:每个测试都在完全隔离的环境中运行,以防止测试之间的干扰。

  2. 资源冲突:不存在多线程中经常发生的共享资源竞争。

  3. 稳定性:不太容易出现争用条件和同步问题。

  4. 更易于调试:当测试失败时,由于每个环境都是独立的,因此更容易确定原因。

  5. 状态管理:轻松管理困扰多线程测试的共享状态问题。

  6. 更好的可扩展性:可以轻松地添加更多环境,而不会增加复杂性。

在 Amazon CodeBuild 中支持

Amazon CodeBuild 通过其批量构建功能为并行测试执行提供强有力的支持,该功能专为利用独立环境执行而设计。这种实施与隔离测试环境的优点完美吻合。

使用测试分配进行批量构建

CodeBuild 的批量构建功能支持创建多个同时运行的构建环境。每个环境都作为一个完全独立的单元运行,有自己的计算资源、运行时环境和依赖项。通过批量构建配置,您可以指定它们需要多少个并行环境,以及如何在这些环境间分配测试。

测试分片 CLI

CodeBuild 通过其 CLI 工具 codebuild-tests-run 包括内置的测试分配机制,该机制可自动将测试划分到不同的环境中。

报告聚合

CodeBuild 实施的主要优势之一是它能够无缝地处理测试结果聚合。当测试在独立环境中执行时,CodeBuild 会自动收集来自每个环境的测试报告,并将其合并成批量构建级别的统一测试报告。这种整合提供了测试结果的全面视图,同时保持了并行执行的效率优势。

下图解释了 Amazon CodeBuild 中并行测试执行的完整概念。

并行测试执行的概念图。