使用 Amazon Nova Act 加速软件交付的代理式 QA 自动化 – 第 2 部分
本文扩展了之前的基础,展示了 QA Studio 如何通过测试套件组织并并行执行批量回归测试,以及命令行界面(CLI)如何将代理式测试集成到自动化 CI/CD 流水线中。
在之前的文章中,我们介绍了 QA Studio,这是一个基于 Amazon Nova Act 构建的代理式 QA 自动化参考解决方案,展示了如何用自然语言定义单个测试用例、按需运行并通过 AI 驱动的视觉导航查看执行轨迹。本文进一步扩展,重点讲解 QA Studio 如何通过测试套件实现批量回归测试以及如何通过命令行界面(CLI)将代理式测试集成到 CI/CD 流水线中。
测试套件用于组织回归测试
在 QA Studio 中,您可以将验证特定用户旅程的单个测试用例分组为测试套件,这些套件一起运行并支持跨功能区域的回归测试。套件以批次方式执行并支持并行处理:当套件运行时,每个测试用例在其自己的 Amazon ECS on AWS Fargate 工作任务上独立执行。例如,一个包含 20 个测试的套件可以并发执行,而不是串行执行,从而显著缩短总执行时间。
您可以按功能领域、发布阶段或测试目的组织套件,例如用于每次部署验证关键路径的冒烟测试、覆盖整个应用的回归套件,以及发布前验证跨功能工作流的集成测试。
创建和管理测试套件
在 QA Studio Web 界面中,通过提供名称、描述和可选标签来创建测试套件,然后添加现有测试用例。每个测试用例保留其自己的配置,包括起始 URL、变量、密钥和标头。套件执行时,这些配置独立应用于每个测试用例。
套件执行和结果
套件执行时,QA Studio 为每个测试用例创建独立的执行记录并分发到工作队列。套件执行页面提供聚合视图,显示成功、失败和仍在运行的测试数量。您可以深入查看单个执行结果,以检查失败测试的轨迹日志、截图和会话记录。每个套件维护自己的执行历史,提供回归稳定性的纵向视图。
CI/CD 集成与 QA Studio CLI
QA Studio 的 Web 界面适用于交互式测试创建和按需执行,但 CI/CD 流水线需要不同的接口:命令行执行、结构化的输出、非交互式身份验证以及可与流水线编排器集成的退出代码。
QA Studio CLI (qa-studio) 提供此接口。它连接到与 Web 应用程序相同的 API 后端,但不同之处在于,它会将测试发送到执行 CLI 的机器(如 CI/CD runner)上的 Amazon Nova Act,而不是发送到 Fargate 工作任务。结果会报告回 QA Studio 部署。
安装和身份验证
QA Studio CLI 是项目 GitHub 仓库的一部分。克隆仓库后,作为 Python 包安装 CLI 及其可选的 runner 依赖。对于 CI/CD 环境,CLI 支持 OAuth 2.0 客户端凭证身份验证。在 QA Studio Web 界面创建具有所需作用域的 OAuth 客户端,并将凭证配置为流水线环境变量。CLI 自动请求和缓存访问令牌,在过期时刷新,无需交互式浏览器登录。
运行测试和套件
qa-studio run 命令执行单个测试用例或整个测试套件。例如:qa-studio run --suite-id suite-456。CI/CD 流水线通常需要对不同环境运行相同测试,CLI 支持 --base-url 标志替换起始 URL 的域名,以及 --var 标志覆盖模板变量。--region 和 --model-id 用于控制 AWS 区域和模型版本。
标头和密钥
测试用例可以定义自定义 HTTP 标头,在测试执行期间随每个请求发送。密钥(如密码、API 密钥)存储在 AWS Secrets Manager 中,加密存储,并且不会写入执行日志或历史记录。CI/CD 流水线可以执行需要凭据的测试而不暴露这些凭据。
退出代码和流水线集成
CLI 使用退出代码映射到流水线的成功和失败状态:0 表示全部通过,1 表示一个或多个测试失败,2 表示 CLI 错误(如身份验证、配置、API)。这种三态模型允许流水线区分测试失败和基础设施问题。--format 标志控制输出格式,默认为 json 用于程序消费,human 提供可读摘要。
CI/CD 平台示例
文章提供了 GitHub Actions、GitLab CI 和 Jenkins 的完整示例,展示了如何配置 OAuth 凭据、AWS 凭据、运行测试以及上传 artifact。例如,在 GitHub Actions 中,使用 if: always() 确保即使测试失败也保存 artifact;GitLab CI 支持调度触发;Jenkins 使用 withCredentials 注入密钥。
结论
测试套件和 CI/CD 集成将 QA Studio 从交互式测试创建工具扩展为持续质量保证平台。测试套件组织回归覆盖范围并支持并行执行。CLI 将代理式测试引入统一执行历史,无论测试以何种方式启动。