Token导航 LogoToken导航TokenDH.com
Playwright Test MCP logo
浏览器工具stdio官方级别未说明来源级核验

Playwright Test MCP

MCP Server

一个利用多代理工作流从用户故事生成端到端Playwright测试的AI驱动测试自动化框架。

工具数

0

提示词数

0

GitHub Stars

0

资源数

0
测试自动化浏览器自动化PythonAI代理AI驱动

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

mayankmahajan0work

提供方

mayankmahajan0work

最后核验

2026/5/17 20:23

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

pip install -r requirements.txt

详细介绍

使用LangChain、Playwright和Streamlit实现剧作家测试自动化

一个AI驱动的测试自动化框架,使用多代理工作流从用户故事生成端到端的Playwright测试(参见 workflow/).

一个由人工智能驱动的测试自动化框架,使用由LangChain、OpenAI和Playwright支持的多代理工作流,从用户故事中生成端到端的Playwright测试。

🎯 概述

此项目使用 多agent体系结构 致:

  1. 探索 您的web应用程序
  2. 模型 UI页面作为可重用的页面对象
  3. 计划 用户故事中的测试场景
  4. 生成 测试数据
  5. 执行 测试场景并捕获证据
  6. 验证 结果并产生判决
  7. 创建 可执行Playwright测试脚本

🏗️ 建筑

代理工作流(工作流/代理)

graph TD
    A[User Story] --> B[Explorer]
    B --> C[Page Modeler]
    C --> D[Planner]
    D --> E[Test Data Generator]
    E --> F[Test Executor]
    F --> G[Results Generator]
    G --> H[Code Generator]
    H --> I[Playwright Test Scripts]

代理

  1. 浏览器代理 (workflow/agents/explorer.py)

- 发现导航步骤、页面结构和UI元素 - 输出:快照、定位器

  1. 页面建模器代理 (workflow/agents/page_modeler.py)

- 将资源管理器输出转换为逻辑UI页面模型 - 将定位器分为选择器、动作、输入和断言 - 输出:页面对象文件

  1. 规划师代理 (workflow/agents/planner.py)

- 读取导航流和页面模型 - 从用户故事生成结构化测试计划标记 - 输出:分析的测试场景

  1. 测试数据生成器代理 (workflow/agents/test_data_generator.py)

- 生成特定场景的强类型测试数据 - 输出:测试数据文件

  1. 测试执行代理 (workflow/agents/test_executor.py)

- 通过Playwright MCP执行测试场景 - 捕获执行证据(快照、屏幕截图、DOM状态) - 产出:执行报告

  1. 结果生成器代理 (workflow/agents/results_generator.py)

- 根据预期结果分析执行证据 - 通过推理和信心评分做出通过/失败的判断 - 输出:验证结果

  1. 代码生成器代理 (workflow/agents/code_generator.py)

- 从执行报告生成Playwright测试脚本(TypeScript) - 输出: .spec.ts 文件

🚀 入门指南

先决条件

  • Python 3.11+
  • Node.js 18+ (为剧作家)
  • 剧作家 (通过npm安装)
  • OpenAI API密钥

(可选)使用save-auth.js绕过身份验证

如果您的应用程序需要登录,您可以使用提供的 save-auth.js 生成Playwright身份验证状态文件的脚本(auth_state.json).

步骤:

  1. 运行脚本:
   node save-auth.js
  1. 按照提示在打开的浏览器窗口中登录您的应用程序。
  2. 成功登录后,脚本将把您的会话Cookie和令牌保存到 auth_state.json 在项目根中。

Playwright和代理将使用此文件在测试执行期间绕过登录步骤。

安装

git clone 
cd playwright_test_mcp
pip install -r requirements.txt
npm install
npx playwright install chromium

创建一个 .env 项目根目录中的文件:

OPENAI_API_KEY=your_openai_api_key_here

运行应用程序

streamlit run main.py

该应用程序将在您的浏览器中打开 http://localhost:8501.

📖 功能

  • 输入:用户故事和应用程序URL
  • 探索:自动UI探索和快照
  • 建模:页面对象模型生成
  • 规划:根据用户故事进行测试场景规划
  • 测试数据:特定场景的数据生成
  • 执行:自动化测试执行和证据捕获
  • 结果:智能验证和判决
  • 代码生成:剧作家测试脚本生成

📁 项目结构

playwright_test_mcp/
├── main.py
├── workflow/
│   ├── agents/
│   │   ├── explorer.py
│   │   ├── page_modeler.py
│   │   ├── planner.py
│   │   ├── test_data_generator.py
│   │   ├── test_executor.py
│   │   ├── results_generator.py
│   │   └── code_generator.py
│   ├── state.py
│   └── utils/
├── output/
│   ├── snapshots/
│   ├── locators/
│   ├── pages/
│   ├── test_data/
│   ├── execution/
│   ├── results/
│   └── test_plans/
├── tests/
├── requirements.txt
├── package.json
└── playwright.config.ts

🔧 配置

剧作家配置

编辑 playwright.config.ts 自定义:

  • 浏览器类型(chromium、firefox、webkit)
  • 视口大小
  • 基础URL
  • 超时设置
  • 屏幕截图/视频捕捉

环境变量

必修的:

  • OPENAI_API_KEY -您的OpenAI API密钥

可选:

  • OPENAI_BASE_URL -自定义OpenAI端点
  • OPENAI_API_VERSION -API版本

🧪 用户故事示例

电子商务流程

As a user, I want to:
1. Search for "laptop" in the product catalog
2. Filter results by price range $500-$1000
3. Select the first product
4. Add it to cart
5. Proceed to checkout
6. Verify the cart contains 1 item with correct price

登录和导航

As a user, I want to:
1. Login with valid credentials
2. Navigate to Settings page
3. Update profile information
4. Save changes
5. Verify success message appears

📊 输出工件

生成的文件

  • 页面快照 (output/snapshots/*.md)-人类可读的页面结构
  • 定位器 (output/locators/*.json)JSON格式的元素定位器
  • 页面对象 (output/pages/*.ts)TypeScript页面对象类
  • 测试数据 (output/test_data/*.ts)-结构化测试数据文件
  • 执行报告 (output/execution/)-测试执行证据
  • 结果 (output/results/)-核查裁决
  • 测试计划 (output/test_plans/*.md)Markdown测试计划
  • 测试脚本 (tests/*.spec.ts)-可执行的剧作家测试

示例页面对象

export class LoginPage {
  readonly page: Page;
  
  constructor(page: Page) {
    this.page = page;
  }
  
  // Selectors
  async getUsernameInput() {
    return this.page.locator('#username');
  }
  
  // Actions
  async login(username: string, password: string) {
    await this.getUsernameInput().fill(username);
    await this.getPasswordInput().fill(password);
    await this.getLoginButton().click();
  }
  
  // Assertions
  async expectLoginSuccess() {
    await expect(this.page).toHaveURL(/dashboard/);
  }
}

🛠️ 故障排除

常见问题

  1. MCP连接错误

- 确保安装了Playwright: npx playwright install - 检查 auth_state.json 已通过身份验证的应用程序存在

  1. 代理超时

- 增加代理配置中的超时时间 - 检查应用程序的网络连接

  1. OpenAI API错误

- 在中验证API密钥 .env - 检查API费率限制和配额

  1. 生成的测试失败

- 查看页面快照的准确性 - 检查应用程序结构是否更改 - 使用“强制重新生成”选项重新生成页面模型

🤝 贡献

欢迎投稿!拜托:

  1. 分叉存储库
  2. 创建要素分支
  3. 进行更改
  4. 提交拉取请求

📝 许可证

\[在此处添加您的许可证\]

🙏 致谢

  • 建于 LangChain
  • 用途 剧作家 用于浏览器自动化
  • UI由 溪流
  • 用于浏览器控制的MCP(模型上下文协议)

______________________________________________________________________

需要帮助? 在中打开问题或查看文档 tools.md

目录标签

目录标签

测试自动化浏览器自动化PythonAI代理AI驱动本地部署PlaywrightLangChain多代理系统

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

session

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiosession部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP