AWS Community Day Hong Kong 2025 Recap

使用 MCP 与 AI 智能体进行自动化测试

Recap Series

视频

https://www.youtube.com/watch?v=cgoFdt8ybwY&t=1296s

准备与规划

基础:测试数据

  • 经常被忽视,但至关重要
  • 任务管理系统(例如 Jira):使用 Webhook 将更新存储到 Amazon S3
  • Swagger 文档:提供 API 规范和参数
  • 历史测试用例:可用于验证并重新测试以往用例

连接数据源

  • 传统方法发现关联关系的能力有限
  • 引入大语言模型(LLM)来建立关联
  • 示例:
  • Mariana(在 AWS 从事云计算与 AI 工作)
  • Dario(AI 公司 Entropic 的联合创始人)
  • Entropic 开发了一系列可通过 Amazon Bedrock 使用的 LLM

执行

AI 驱动的测试工作流

  • 利用 AI 实现测试流程自动化并提升测试能力
  • 深入探讨 AI 如何与现有测试框架集成

报告

综合报告

  • 根据自动化测试生成富有洞察的报告
  • 利用 AI 提供可执行的洞察和建议
  • 强调使用 AI 改造传统测试工作流
  • 邀请大家就所介绍的构想提供反馈并展开讨论

使用知识图谱理解关联关系

  • 知识图谱能够捕捉简单文本搜索无法发现的复杂关系
  • 示例:Mariana(在 AWS 从业)与 Entropic(由 Dario 创立的 AI 公司)之间的关系
  • 知识图谱可以揭示简单搜索无法发现的隐藏关联

知识图谱在自动化测试中的重要性

  • 对自动生成任务和测试用例至关重要
  • 从数据源中提取实体,并连接相关项目
  • 示例:
  • 需求工单
  • API 规范
  • 历史测试用例

创建知识图谱

  • 传统方法(例如 PostgreSQL)操作繁琐,可视性较低
  • 无代码解决方案(例如 DynamoDB)效率不高
  • 图数据库(例如 Amazon Neptune、Neo4j)效果更好,但需要学习节点、边和属性等新概念

解决方案:Amazon Neptune Analytics

  • 将图数据库能力与基础模型和 Amazon Bedrock 相结合
  • 无需复杂语法即可插入和检索信息
  • 提供美观的图视图,用于数据可视化

图检索增强(RA)

  • AI 检索参考文档并生成响应的一种技术
  • 图 RA 使用知识图谱进行检索,而不是简单的文本搜索

AI 驱动的测试流水线

  • 构建在知识图谱基础之上
  • 采用行为驱动开发(BDD),并以 Gherkin 格式编写测试用例
  • Gherkin 场景使用 Given、When 和 Then 等关键字,指定功能的初始状态、操作和预期结果
  • 测试用例示例:根据前置条件和场景检查首页标题
  • 知识图谱是实现有效自动化测试的关键
  • Amazon Neptune Analytics 简化了图数据库管理和可视化
  • 图 RA 增强了 AI 驱动的测试用例生成与执行能力

AI 驱动的测试用例生成

目标

  • 使用 AI 智能体提高测试用例覆盖率和一致性

AI 智能体的能力

  • 选择最合适的操作来实现测试目标
  • 分析业务流程,并从知识图谱中读取需求

示例

订阅管理功能

业务流程分析

  • 知识图谱识别出:
  • 在 UI 中验证支付方式
  • 调用支付 API

冲突检测

  • AI 智能体检测需求冲突:
  • 旧规则:用户必须先验证电子邮箱,才能访问高级功能
  • 新规则:试用用户无需验证电子邮箱,即可使用高级功能七天
  • 相应更新相关测试用例

发现 API 详细信息

  • 从图数据库中提取端点、必选/可选参数和错误响应
  • 通过记录的数据识别 API 依赖关系(例如订阅创建成功、支付失败)

测试数据生成

  • 创建覆盖以下情况的测试数据:
  • 正常流程(成功场景)
  • 边界情况(边界条件)
  • 错误情况(失败场景)

结论

  • AI 智能体通过以下方式增强测试用例生成:
  • 分析业务流程
  • 检测冲突并更新测试用例
  • 发现 API 详细信息和依赖关系
  • 生成全面的测试数据

完善并执行测试用例

使用业务规则完善测试用例

  • 利用业务流程分析和已识别规则中的信息完善场景
  • 将完善后的场景转换为基于场景的测试用例

人在回路验证

  • AI 可以生成全面的测试用例,但仍需要人类专家进行验证
  • 人工验证可确保边界情况和业务背景得到充分覆盖
  • Jira 工单系统、API 文档和历史测试用例可能无法覆盖所有场景

使用 Playwright 执行

  • Playwright:快速可靠的端到端测试工具
  • Playwright 支持 Chromium、WebKit 和 Firefox 等所有现代渲染引擎,并可跨平台运行;能够在本地的 Windows、Linux 和 macOS 上进行测试
  • 使用 Playwright 执行测试
  • 广为人知的开源自动化测试框架
  • 直接与浏览器通信,高效执行测试
  • 支持多种语言(Java、Python、C、JavaScript、TypeScript)
  • 社区支持强大,在 GitHub 上拥有 78.9K 个 Star
  • 原生支持 MCP(Model-Based Continuous Planning),可接收自然语言指令
  • 内置功能:
  • 并行执行,提高效率
  • 全面的跟踪与调试功能
  • 自动截屏和视频录制
  • 详细记录日志,用于记录测试过程并支持后续验证

结论

  • AI 能够增强测试用例生成能力,但人工验证至关重要
  • Playwright 能够高效、灵活且功能丰富地执行测试

使用 AI 智能体执行测试用例

任务执行智能体

  • 负责执行阶段的 AI 智能体
  • 从生成的任务中提取测试参数
  • 创建 Playwright 脚本并存入数据库,以供日后参考
  • 自动执行测试

使用 Playwright 进行 AI 驱动测试的示例

  • 前端和后端测试
  • 使用 Playwright MCP 与 Amazon Q Developer CLI 进行实验
  • 为一个简单的电子商务网站设计三个测试用例:
  • 购买商品、填写配送信息并完成下单流程
  • 登录并进入商品页面,不执行后续操作
  • 将商品加入购物车,不执行后续操作

执行后验证

  • 将测试用例存储在数据库中
  • 利用视频录制等功能进行后续验证
  • 测试人员可以查看录制的视频,确认实际行为是否符合预期

完整测试执行流程回顾

  • 三个 AI 智能体协同工作:
  • 测试用例生成器
  • 测试用例执行器
  • 报告生成器(记录结果并保存录像)
  • 模块化方式具备灵活性和可扩展性

利用多个 MCP

  • 根据不同测试需求使用多种 MCP:
  • 使用 MySQL MCP 生成真实数据
  • 使用 Redis MCP 存储最近使用的测试用例
  • 简化测试流程

核心信息:测试左移

  • 在开发周期早期集成自动化测试
  • 优势:
  • 提高质量
  • 提升效率
  • 降低成本
  • 减少技术债务

结论

  • AI 驱动的自动化测试可节省时间和成本
  • 测试人员可专注于验证,而非生成测试用例