Playwright测试代理工具

Playwright测试代理工具结合了大型语言模型(LLM)和Playwright的浏览器自动化功能,通过对话式提示简化测试流程,适用于测试计划生成、测试代码编写和修复失败测试等场景。

  • by beinghumantester
  • TypeScript
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 beinghumantester/Playwright_MCP_Server

使用说明

剧作家MCP测试代理–实用指南

此存储库演示了如何使用 剧作家测试代理 随着 MCP(模型上下文协议) 简化测试工作流程,减少重复性工作。

我们的目标不是取代测试人员,而是让人工智能处理繁琐的探索、测试计划起草、骨架生成和修复明显的问题,而人类则专注于真正需要判断的事情:决定测试什么、自动化什么以及什么是重要的。


这是实验性的

测试代理通过提示工作,并且不是确定性的。质量取决于及时的清晰度、范围定义和提供的上下文。代理人会提供帮助,但不能保证完美。

期待一个提示来提供完美的自动化将导致失望。


什么是剧作家测试代理?

剧作家测试代理结合了:

  • 大型语言模型(LLM)
  • Playwright的浏览器自动化
  • 用于受控执行的MCP工具

交互是通过聊天界面中的对话提示进行的。

代理模式

模式 目的
规划师 在Markdown中探索应用程序并生成测试计划
发电机 将测试场景转换为Playwright测试
治愈者 调查并修复失败的测试
通用 处理运行测试和执行命令

了解更多: 剧作家测试代理文档


先决条件

  • Node.js(LTS版本)
  • 剧作家
  • VS代码内部人员(建议用于MCP支持,常规VS代码也适用)
  • 通过MCP(GPT-4、Claude等)获得法学硕士学位

安装和设置

# Install dependencies
npm install
npx playwright install

# Initialize Playwright Agents
npx playwright init-agents --loop=vscode

什么 init-agents 做:

  • 安装剧作家测试代理
  • 配置MCP与VS代码的集成
  • 设置具有代理模式的聊天界面

在VS Code Insiders中打开项目以访问聊天界面。


关键:范围问题

什么行不通

  • 一次探索整个应用程序
  • 一次完成所有事情的自动化
  • 处理没有上下文的复杂流

结果:覆盖率差距30-50%,理解浅,假设不正确,断言薄弱。

什么效果更好

逐个模块的方法。

一次专注于一个模块或功能可以显著提高结果。通过适当的范围界定,覆盖率可以从50-70%跃升至80-90%。

将代理人视为需要明确方向和界限的初级团队成员。


工作流程

步骤1:创建测试计划(计划模式)

示例提示:

Navigate to the login module.
Explore all visible elements and user flows.
Create a detailed test plan covering positive, negative, and edge case scenarios.

输出:

  • Markdown测试计划,包括场景、步骤和预期结果
  • 典型覆盖率:50-70%

重要提示: 审查计划。添加缺失的场景。对业务逻辑的正确假设。


步骤2:生成测试(生成器模式)

将测试计划置于上下文中,并切换到生成器模式。

示例提示:

Generate Playwright tests for the "Product Search" scenarios
from the attached test plan.
Use proper locators and include assertions.

输出:

  • 带有测试结构、定位器和基本断言的Playwright测试文件

对于页面对象模型: 附加一个现有的页面对象文件,并明确请求:“遵循附件中显示的页面对象模型结构。”


步骤3:运行测试

通过总代理模式:

Run the generated tests in Chromium headed mode

通过终端:

npx playwright test --project=chromium --headed

有些测试会通过,有些会失败。这是正常的,也是意料之中的。


步骤4:修复失败的测试(治疗师模式)

示例提示:

The search-with-no-results.spec.ts test failed.
Investigate and fix the issue.

治疗师可以修复:

  • 严格违反模式
  • 模糊的定位器
  • 选择器索引问题
  • 轻微的时间问题

治疗师无法修复:

  • 错误的业务逻辑
  • 有缺陷的测试策略
  • 应用程序错误

这是一个需要后续问题和背景的迭代对话。


用于深度导航的种子文件

当测试需要浏览许多页面才能到达目标区域时,请创建一个种子文件来自动进行初始导航。

用途:

  1. 编写一个可导航到目标区域的剧作家测试
  2. 在提示Planner时附加种子文件
  3. 指定:“使用附加的种子文件导航到[目标区域],然后为[模块]创建测试计划”

人的责任

仍然需要:

  • 验证测试计划
  • 决定自动化什么
  • 提供业务背景
  • 审查生成的代码
  • 定义测试策略

代理人处理什么:

  • 乏味的探索
  • 生成测试骨架
  • 查找定位器
  • 创建基本结构
  • 解决明显的技术问题

这是授权,不是退位。


改善结果

提供上下文

附上相关文件:

  • 业务需求(用于理解有效输入、错误消息)
  • 现有页面对象(遵循框架模式)
  • API文档
  • 种子文件

写清楚提示

而不是:“测试搜索功能”

使用:“为产品搜索创建测试,包括:完全匹配、部分搜索、无结果、特殊字符和区分大小写。验证结果是否正确显示。”

迭代

这是一个对话:

  1. 从基本提示开始
  2. 评审输出
  3. 请求更正
  4. 提供更多上下文
  5. 要求具体更改

这表明了什么

演示如何:

  • 加快测试计划
  • 自动化探索性导航
  • Bootstrap自动化更快
  • 在帮助下修复明显的故障

不:

  • 更换测试工程师
  • 提供零工作量自动化
  • 作为开箱即用的生产框架工作
  • 做出测试决策

关键要点

剧作家测试代理减少了繁忙的工作,而不是批判性思维。

用作助手:非常有价值。 用作决策者:令人失望。


资源