使用说明
🧠 代理剧作家MCP框架
A. 下一代人工智能增强测试自动化平台 使用Playwright和模型上下文协议(MCP)构建,用于智能测试规划、生成、执行和自愈。
🌟 核心功能
✅ 19名专业代理 -跨7个架构层的分布式智能
✅ AI测试生成 -根据需求创建LLM驱动的测试计划
✅ 动态测试数据 -无需硬编码的真实数据生成(Faker.js)
✅ 安全SQL查询 -验证并生成仅SELECT查询(块DELETE/INSERT/UPDATE)
✅ 自我修复测试 -使用字符串相似性自动修复选择器
✅ 智能故障分析 -基于人工智能的根本原因建议
✅ DOM更改检测 -识别UI结构中的突破性变化
✅ 需求覆盖范围 -可追溯性矩阵和差距分析
✅ 零硬编码 -所有配置均来自环境变量
✅ 多环境支持 -DEV、QA、UAT、PROD,具有基于环境的配置
✅ 完整的工件管道 -每个阶段生成的工件
🏗️ 7层架构
该框架实现了一个复杂的分层代理架构:
Layer 7: Reporting agent-report-composer, agent-test-coverage
↑
Layer 6: Intelligence agent-self-healing, agent-failure-analyzer
↑
Layer 5: Execution Playwright test runner
↑
Layer 4: Generation agent-codegen (generates .spec.ts)
↑
Layer 3: Discovery agent-explorer, agent-dom-analyzer
↑
Layer 2: Planning (AI) agent-ai-planner (LLM-based), agent-test-data
↑
Layer 1: Configuration Environment variables, credentials, paths
这意味着什么
- 第1层(配置):所有设置都外部化了-没有硬编码值
- 第2层(规划/AI):LLM根据需求生成测试计划+Faker生成测试数据
- 第3层(探索):应用程序探索和DOM更改检测
- 第4层(世代):自动将计划转换为Playwright代码
- 第5层(执行):使用Playwright运行测试
- 第6层(智能):自动修复损坏的选择器+AI故障分析
- 第7层(报告):生成报告+验证需求覆盖率 ↓ 代理目录(服务发现) ↓ 代理编排器(测试编排) ↓ 代理功能(功能测试) ↓ 代理测试计划(VSTP大楼) ↓ 代理资源管理器(UI元素发现) ↓ 代理代码生成器(代码生成) ↓ 代理qa-gate(质量验证) ↓ 剧作家(测试执行) ↓ 代理报告编写器(报告生成) ↓ 报告和人工制品
## 📦 Project Structure
代理剧作家mcp框架/ ├── config/#主配置 │ ├── path.properties#路径配置 │ ├── credentials/credentials.xml#加密凭据 │ ├── Url/Application_Url_Config.xlsx#Url配置 │ └── 环境/#环境配置 │ ├── ISB_DEV_Env.properties │ ├── ISB_QA_Env.properties │ ├── ISB_UAT_Env.properties │ └── ISB_PROD_Env.properties │ ├── artifacts/#生成的工件管道 │ ├── 已解决/#连接配置 │ ├── 目录/#服务目录 │ ├── vstp/#测试计划 │ ├── 对象存储库/#UI元素 │ ├── 质量保证门/#质量保证报告 │ ├── 报告/#最终报告 │ └── logs/#执行日志 │ ├── packages/#代理包(npm工作区) │ ├── 代理核心/#核心框架 │ ├── 代理连接器/#连接代理 │ ├── 代理登录/#登录代理 │ ├── 代理目录/#目录代理 │ ├── 代理编排器/#编排代理 │ ├── agent功能/#功能测试agent │ ├── 代理测试计划/#VSTP构建器代理 │ ├── 代理浏览器/#元素发现代理 │ ├── agent codegen/#代码生成代理 │ ├── 代理qa-gate/#qa验证代理 │ ├── 代理报告编写器/#报告生成代理 │ ├── agent codemod/#代码转换代理 │ └── 治疗剂/#选择治疗剂 │ ├── apps/#测试应用程序 │ └── 示例webapp测试/#示例Playwright测试 │ ├── 测试/ │ │ ├── 已生成/#代理生成的规格 │ │ └── 手动/#手动编写的测试 │ ├── pageObjects/#页面对象模型 │ ├── 特征/#BDD特征文件 │ ├── 测试数据/#测试数据集 │ └── utils/#实用程序函数 │ ├── appModules/#业务实用程序 │ └── utils/ │ ├── accountUtils.ts │ ├── authUtils.ts │ └── searchUtils.ts │ ├── scripts/#管道自动化 │ ├── run-pipeline.js#主管道脚本 │ ├── clean-artifacts.js#清理脚本 │ └── generate-reports.js#报表生成 │ ├── docs/#文档 │ ├── architecture.md#系统架构 │ ├── pipeline.md#管道导向器 │ └── agents.md#代理文档 │ ├── package.json#根package.json ├── tsconfig.json#TypeScript配置 ├── playwright.config.ts#剧作家配置 ├── REQUIMENTS.md#项目要求 └── README.md#此文件
## 🚀 Quick Start
### Prerequisites
- **Node.js** 18 or higher
- **npm** 8 or higher
- **Playwright** browsers (will auto-download)
### Installation
```bash
# Clone repository
git clone <repository-url>
cd agentic-playwright-mcp-framework
# Install all dependencies
npm install
# Optional: Install Playwright browsers
npx playwright install
运行管道
# Full pipeline execution
npm run pipeline
# Or run individual commands:
npm run build # Build all packages
npm run test # Run tests (workspaces)
npm run dev # Development mode with watch
npm run clean # Clean artifacts
npm run reports # Generate reports
🔧 配置
环境设置
-
选择环境:
export ENVIRONMENT=ISB_DEV # or ISB_QA, ISB_UAT, ISB_PROD -
更新凭据 (config/credentials/credentials.xml):
<Environment name="ISB_DEV"> <Credential> <UserID>your_username</UserID> <Password>your_password</Password> <ApiKey>your_api_key</ApiKey> </Credential> </Environment> -
更新应用程序URL (config/urls/Application_Url_config.xlsx):
- 为每个环境设置适当的URL
-
配置路径 (config/path.properties):
- 根据需要调整基础路径
环境性能
每个环境都有自己的配置文件:
# config/environments/ISB_DEV_Env.properties
ENVIRONMENT=ISB_DEV
APP_URL=http://dev.isb-example.com
API_BASE_URL=http://api-dev.isb-example.com
BROWSER=chromium # chromium, firefox, webkit
HEADLESS=false # false for development
TIMEOUT=30000 # ms
RETRY_COUNT=2
LOG_LEVEL=debug
📚 代理商概述
| # | 代理 | 目的 | 输入 | 输出 |
|---|---|---|---|---|
| 1 | 代理连接器 | 连接解析 | 配置 | 连接配置.json |
| 2 | 代理登录 | 身份验证 | 凭据 | 身份验证令牌 |
| 3 | 代理商目录 | 服务发现 | appModules/ | utilities.json |
| 4 | 代理编排器 | 测试计划 | 服务 | 执行.plan.json |
| 5 | 代理功能 | 功能测试 | 计划 | 测试结果.json |
| 6 | 代理测试计划 | VSTP生成 | 结果 | *.VSTP.json |
| 7 | 代理浏览器 | 元素发现 | 应用程序URL | elements.json |
| 8 | 代理代码生成器 | 代码生成 | VSTP+元素 | *.spec.ts |
| 9 | qa-gate探员 | 质量验证 | 生成代码 | qa-gate-report.json |
| 10 | 剧作家 | 测试执行 | *.spec.ts | 测试结果 |
| 11 | 代理人报告撰写人 | 报告生成 | 所有结果 | HTML/JSON报告 |
其他代理人: 代理codemod (代码转换), 代理治疗师 (选择器维修)
📋 管道阶段
第一阶段:连接解析
agent-connector
├─ Input: config/path.properties + Environment
├─ Process: Resolve connections, validate connectivity
└─ Output: artifacts/resolved/connection-config.json
阶段2-11:顺序执行
每个阶段都使用前一阶段的输出。看 docs/pipeline.md 详细文档。
🧪 运行测试
运行所有测试
npm test
仅运行剧作家测试
npx playwright test
使用UI模式运行
npx playwright test --ui
在调试模式下运行
npx playwright test --debug
运行单个测试文件
npx playwright test apps/example-webapp-tests/tests/manual/sample.spec.ts
生成测试代码
npx playwright codegen http://localhost:3000
📊 报告
报告生成于 artifacts/reports/:
- summary.html -包含指标的执行摘要
- 详细信息.html -详细的测试结果
- 数据库报告.html -数据库验证结果
- 可追踪性.html -需求可追溯性矩阵
查看报告
npm run reports # Generate reports
npx playwright show-report # View Playwright report
🛠️ 发展
添加新代理
- 创建目录:
packages/agent-newagent - 创建
package.json有依赖关系 - 实现代理扩展
BaseAgent - 添加到管道编排器
TypeScript构建
# Build all packages
npm run build
# Build specific package
npm run build -w packages/agent-connector
# Watch mode
npm run dev
过梁和类型检查
npm run lint # Run linters (workspaces)
npm run type-check # Type checking
🔐 安全
- 凭证:存储在加密的XML文件中(config/credentials/)
- 环境隔离:每个环境的配置不同
- 许可证管理:安全会话令牌处理
- 审计日志:所有操作都记录到工件/日志中/
📈 演出
典型的管道执行时间:
| 阶段 | 持续时间 | 备注 |
|---|---|---|
| 连接和认证 | 30-90s | 网络相关 |
| 目录和计划 | 1-2分钟 | 服务扫描 |
| 元素发现 | 2-5min | 取决于应用程序的复杂性 |
| 代码生成 | 30-90s | 取决于测试用例计数 |
| QA验证 | 20-40s | 代码质量检查 |
| 编剧执行 | 5-30min+ | 测试套件大小取决 |
| 报告生成 | 20-60s | 结果聚合 |
| 总计 | 5-30+分钟 | 完整管道 |
🐛 故障排除
常见问题
问题:管道在连接阶段出现故障
- 解决方案:检查credentials.xml和环境配置
问题:元素发现超时
- 解决方案:增加环境属性中的超时时间,检查网络
问题:生成的测试失败
- 解决方案:查看qa-gate报告,检查对象存储库元素
问题:选择器片状
- 解决方案:启用代理治疗师,查看元素定位器
📖 文档
🤝 贡献
请参阅 贡献.md 关于以下方面的指导方针:
- 代码样式和标准
- 代理开发
- 测试要求
- 拉取请求流程
📝 许可证
此项目根据MIT许可证获得许可-有关详细信息,请参阅许可证文件。
🙋 支持
如有疑问或问题:
- 检查文档
docs/文件夹 - 查看故障排除部分
- 打开一个包含详细信息的问题
📚 技术栈
- 语言:TypeScript(ES2020+)
- 测试框架:剧作家
- 运行时:Node.js 18+
- 包管理器:带工作区的npm
- 构建:TypeScript编译器
- 建筑:基于模型上下文协议(MCP)的多代理系统
🎯 路线图
未来的增强功能:
- []与AI模型集成,实现更智能的测试生成
- []分布式代理执行
- []基于云的工件存储
- []实时测试监控仪表板
- []移动测试支持
- []API测试集成
- []性能测试试剂
- []基于ML的高级选择器修复