使用说明
RunAutomation MCP服务器
用于Playwright自动化的全面模型上下文协议(MCP)服务器,为web测试、浏览器自动化和质量保证任务提供100多种工具。
目录
为什么使用此MCP服务器?
模型上下文协议(MCP)
模型上下文协议是一个开放标准,可实现人工智能助手和外部工具之间的无缝集成。此MCP服务器允许AI模型(如Claude、GPT等):
- 执行浏览器自动化 直接通过自然语言命令
- 执行质量保证任务 无需手动编写脚本
- 生成测试代码 通过观察用户交互
- 运行全面的测试套件 具有可视化回归、可访问性和跨浏览器测试
- 将测试集成到AI工作流程中 用于自主创建和执行测试
主要优势
- AI驱动测试:让AI助手根据需求编写和执行测试
- 自然语言控制:通过对话命令控制剧作家
- 全面覆盖:100多种工具,涵盖web测试的各个方面
- 生产就绪:基于Playwright可靠的自动化框架
- 可扩展:易于集成到现有的测试工作流程中
- 开源:麻省理工学院获得商业和个人使用许可
用例
- 自动化测试:创建并运行浏览器自动化测试
- 视觉质量保证:执行可视化回归测试和跨浏览器验证
- 可访问性审计:运行WCAG合规性检查
- PDF测试:验证PDF生成和内容
- API测试:在UI测试的同时测试后端API
- 测试生成:记录用户操作并生成测试代码
- CI/CD集成:在持续集成管道中运行测试
安装
先决条件
- Node.js 18或更高版本
- npm或yarn包管理器
### Local Development Installation
1. Clone the repository:
```bash
git clone https://github.com/tayyabakmal1/runautomation-mcpserver.git
cd runautomation-mcpserver
- 安装依赖项:
npm install
- 构建项目:
npm run build
- 运行测试(可选):
npm test
配置
Claude桌面集成
要将此MCP服务器与Claude Desktop一起使用,请将以下配置添加到您的Claude Desktop配置文件中:
视窗: %APPDATA%\Claude\claude_desktop_config.json
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Linux: ~/.config/Claude/claude_desktop_config.json
{
"mcpServers": {
"playwright": {
"command": "npx",
"args": [
"--directory",
"/your-playwright-mcp-server-clone-directory",
"run",
"runautomation-mcpserver"
]
}
}
}
环境变量
您可以使用环境变量配置服务器:
# Browser configuration
PLAYWRIGHT_BROWSER=chromium # chromium, firefox, webkit
PLAYWRIGHT_HEADLESS=true # true or false
# Video recording
PLAYWRIGHT_VIDEO_DIR=./videos
PLAYWRIGHT_VIDEO_QUALITY=100
# Session management
MAX_SESSIONS=10
SESSION_TIMEOUT=3600000 # milliseconds
可用工具
浏览器自动化(50多种工具)
playwright_navigate-导航到URLplaywright_click-点击元素playwright_fill-填写输入字段playwright_select-选择下拉选项playwright_hover-将鼠标悬停在元素上playwright_screenshot-截图playwright_evaluate-执行JavaScriptplaywright_upload_file-上传文件playwright_download_file-下载文件playwright_drag-拖放元素playwright_press_key-按键盘键playwright_go_back-返回导航playwright_go_forward-向前导航playwright_iframe_click-在iframe中单击playwright_iframe_fill-填写iframeplaywright_click_and_switch_tab-打开新选项卡playwright_copy_to_clipboard-复制到剪贴板playwright_read_clipboard-读取剪贴板playwright_handle_dialog-处理对话框playwright_expect_dialog-期待对话playwright_drag_to_position-拖动到坐标playwright_get_element_position-获取元素位置playwright_console_logs-获取控制台日志playwright_get_visible_text-获取页面文本playwright_get_visible_html-获取页面HTMLplaywright_custom_user_agent-设置用户代理playwright_close-关闭浏览器
代码生成(4个工具)
start_codegen_session-开始录制测试end_codegen_session-停止并生成代码get_codegen_session-获取会话信息clear_codegen_session-清除会话playwright_collect_locators-收集页面定位器
视频录制(5个工具)
playwright_start_video_recording-开始录制playwright_stop_video_recording-停止录制playwright_add_video_annotation-添加注释playwright_configure_video_settings-配置设置playwright_get_video_status-获取录制状态
视觉测试(7个工具)
playwright_visual_compare-比较截图playwright_create_baseline-创建基线playwright_batch_visual_compare-批量比较playwright_ai_visual_compare-AI视觉测试playwright_batch_ai_visual_compare-批量AI测试playwright_cross_browser_screenshot-跨浏览器捕获
会话管理(9个工具)
create_browser_session-创建新会话list_browser_sessions-列出所有会话close_browser_session-结束会话switch_browser_session-切换会话get_session_info-获取会话详细信息cleanup_idle_sessions-清理空闲会话playwright_recover_session-恢复会话playwright_recover_all_sessions-恢复所有会话playwright_get_persistence_stats-获取持久性统计数据
智能等待(6个工具)
playwright_wait_smart-智能等待playwright_wait_network_idle-等待网络playwright_wait_element_count-等待计数playwright_wait_attribute-等待属性playwright_wait_element_hidden-等待隐藏playwright_wait_url-等待URL更改
可访问性(4个工具)
playwright_check_accessibility-运行斧头扫描playwright_get_aria_snapshot-获取ARIA树playwright_check_contrast-检查对比度playwright_check_keyboard_navigation-测试键盘导航
代码覆盖率(4个工具)
playwright_start_coverage-开始覆盖playwright_get_coverage-获取覆盖结果playwright_generate_coverage_report-生成报告playwright_compare_coverage-比较覆盖范围
跨浏览器测试(4个工具)
playwright_run_across_browsers-在所有浏览器中运行playwright_emulate_device-模拟移动设备playwright_list_devices-列出可用设备
PDF测试(4个工具)
playwright_save_as_pdf-将页面另存为PDFplaywright_extract_pdf_text-提取PDF文本playwright_validate_pdf_content-验证PDF内容playwright_count_pdf_pages-统计PDF页面playwright_download_and_extract_pdf-下载并提取PDF
高级断言(6个工具)
playwright_assert_element_state-断言元素状态playwright_assert_element_count-断言计数playwright_assert_text_content-断言文本playwright_assert_attribute-断言属性playwright_assert_css_property-断言CSSplaywright_assert_request_made-断言网络请求
API测试(7种工具)
playwright_get-HTTP GET请求playwright_post-HTTP POST请求playwright_put-HTTP PUT请求playwright_patch-HTTP PATCH请求playwright_delete-HTTP删除请求playwright_expect_response-期待回应playwright_assert_response-断言回应
并行执行(2个工具)
playwright_run_tests_parallel-并行运行测试playwright_run_cross_browser-跨浏览器并行测试
资源管理(2个工具)
playwright_get_resource_usage-获取资源统计信息playwright_update_resource_limits-更新限制
特性
核心浏览器自动化
- 导航与交互:导航URL、单击元素、填写表单、选择下拉菜单、悬停、拖放
- 文件操作:上传文件、下载文件、处理文件输入
- 剪贴板操作:复制到剪贴板和从剪贴板读取
- 对话框处理:处理警报、确认和提示对话框
- iframe支持:与iframe中的元素交互
- 选项卡管理:打开新选项卡并在它们之间切换
- 高级交互:按键盘,拖动到指定位置,滚动,后退/前进
屏幕截图和视觉测试
- 电脑屏幕截图工具:具有可定制尺寸的整页或特定元素截图
- 视觉回归测试:使用像素完美差异检测将屏幕截图与基线进行比较
- 人工智能驱动的视觉测试:忽略动态内容的智能视觉比较
- 批量目视测试:并行运行多个视觉比较
- 跨浏览器截图:捕获并比较Chromium、Firefox和WebKit的屏幕截图
代码生成和记录
- 测试代码生成:记录浏览器操作并生成Playwright测试代码
- 多种语言:用TypeScript或JavaScript生成测试
- 页面对象模型:生成基于POM的测试结构
- 定位器集合:自动收集和组织元素定位器
- 会话录制:用注释记录完整的测试会话
视频录制
- 会话录制:将浏览器会话录制为视频
- 注释支持:在录制过程中添加带时间戳的注释
- 可配置设置:自定义视频质量、FPS和输出目录
- 有条件录音:仅记录测试失败
- 持续时间跟踪:跟踪记录持续时间和状态
会话管理
- 多会话支持:创建和管理多个独立的浏览器会话
- 会话保持:跨重新启动保存和恢复会话
- 会话切换:在活动会话之间无缝切换
- 空闲清理:自动清理非活动会话
- 资源监控:跟踪资源使用情况和会话统计信息
API测试
- HTTP方法:GET、POST、PUT、PATCH、DELETE请求
- 请求/响应验证:期待并断言HTTP响应
- 标题定制:添加自定义标头和授权令牌
- 响应等待:等待特定的API响应
智能等待与同步
- 智能等待:等待具有多种条件的元素(可见、稳定、交互式)
- 网络空闲:等待网络活动完成
- 元素计数:等待特定数量的元素
- 属性等待:等待元素属性达到预期值
- URL等待:等待URL模式更改
- 元素隐藏:等待元素消失
可访问性测试
- WCAG合规性:运行斧头核心可访问性扫描
- ARIA快照:获取可访问性树结构
- 对比度检查:验证颜色对比度
- 键盘导航:测试键盘可访问性
- 多个WCAG级别:支持WCAG 2.0 A、AA、AAA和第508节
代码覆盖率
- JavaScript覆盖率:在测试期间跟踪JS代码覆盖率
- CSS覆盖率:监控CSS使用情况和未使用的样式
- 覆盖范围报告:生成HTML、JSON、LCOV和文本格式的报告
- 基线比较:比较测试运行之间的覆盖率
- 详细统计:逐行覆盖分析
跨浏览器测试
- 多浏览器执行:在Chromium、Firefox和WebKit上并行运行测试
- 设备仿真:模拟移动设备(iPhone、iPad、Android)
- 自定义视口:使用不同屏幕尺寸进行测试
- 地理定位测试:测试基于位置的功能
- 时区和区域设置:测试国际化功能
PDF测试
- 文本提取:从PDF中提取和验证文本内容
- 页面计数:统计PDF页面并获取元数据
- 内容效度:在生成的PDF中声明预期文本
- PDF下载测试:测试PDF下载功能
- 另存为PDF:将网页转换为PDF格式
高级断言
- 元素状态:断言可见性、启用/禁用、选中/未选中状态
- 元素计数:通过灵活的比较验证匹配元素的数量
- 文本内容:使用模糊匹配断言文本(包含、以开头、以结尾、正则表达式)
- 属性验证:检查具有多个匹配类型的元素属性
- CSS属性:断言计算的CSS属性值
- 网络断言:验证是否发出了特定的网络请求
并行执行
- 测试并行化:同时运行多个测试场景
- 可配置并发:控制最大并行执行数
- 故障快速模式:第一次失败时停止或继续进行所有测试
- 碎片支持:将测试分布在多台机器上
- 跨浏览器并行:并行跨浏览器执行相同的测试
控制台和调试
- 控制台日志:捕获和过滤浏览器控制台日志
- 日志类型:按错误、警告、信息、调试级别筛选
- 日志搜索:按文本模式搜索控制台日志
- JavaScript执行:在浏览器上下文中执行自定义JavaScript
资源管理
- 浏览器限制:配置最大并发浏览器数
- 会话限制:设置每个用户和总会话限制
- 队列管理:处理请求排队和超时
- 资源监控:跟踪内存和浏览器资源使用情况
- 自动清理:清理空闲会话和资源
使用示例
示例1:基本导航和屏幕截图
// Using the MCP server through an AI assistant
"Navigate to https://example.com and take a screenshot"
// This translates to:
// 1. playwright_navigate with url: "https://example.com"
// 2. playwright_screenshot with name: "example-homepage"
示例2:表单自动化
// Natural language command
"Fill the login form with username 'test@example.com' and password 'secret123', then click the submit button"
// Executes:
// 1. playwright_fill with selector: "#username", value: "test@example.com"
// 2. playwright_fill with selector: "#password", value: "secret123"
// 3. playwright_click with selector: "button[type='submit']"
示例3:视觉回归测试
// Command
"Create a baseline screenshot of the homepage and compare it with the current page"
// Executes:
// 1. playwright_create_baseline with outputPath: "./baselines/homepage.png"
// 2. playwright_visual_compare with baseline: "./baselines/homepage.png"
示例4:可访问性测试
// Command
"Run an accessibility audit on the current page for WCAG AA compliance"
// Executes:
// 1. playwright_check_accessibility with level: "WCAG2AA"
示例5:跨浏览器测试
// Command
"Test the login page across all browsers"
// Executes:
// 1. playwright_run_across_browsers with url: "https://app.com/login"
// browsers: ["chromium", "firefox", "webkit"]
示例6:视频录制
// Command
"Start recording the browser session, navigate to the dashboard, and stop recording"
// Executes:
// 1. playwright_start_video_recording
// 2. playwright_navigate with url: "https://app.com/dashboard"
// 3. playwright_add_video_annotation with message: "Dashboard loaded"
// 4. playwright_stop_video_recording with saveVideo: true
示例7:代码生成
// Command
"Start a code generation session, perform some actions, then generate the test code"
// Executes:
// 1. start_codegen_session with outputPath: "./tests", language: "typescript"
// 2. [Perform various browser actions]
// 3. end_codegen_session with sessionId: "session-id"
//4. Get the code file
作者
塔亚布·阿克马尔
- 领英: https://www.linkedin.com/in/tayyab-sqa-engineer/
- github: https://github.com/tayyabakmal1
- 电子邮件: 通过GitHub联系
Tayyab是一名高级QA工程师,专门从事测试自动化、质量保证和构建开发工具。凭借在Playwright、Selenium和现代测试框架方面的丰富经验,他创建了这个MCP服务器,以弥合人工智能助手和浏览器自动化之间的差距。
贡献
欢迎投稿!请按照以下步骤操作:
- 分叉存储库
- 创建要素分支(
git checkout -b feature/amazing-feature) - 提交您的更改(
git commit -m 'Add amazing feature') - 推到分支(
git push origin feature/amazing-feature) - 打开拉取请求
问题和支持
如果您遇到任何问题或有疑问:
- GitHub 问题: https://github.com/tayyabakmal1/runautomation-mcpserver/issues
- 讨论: https://github.com/tayyabakmal1/runautomation-mcpserver/discussions
许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
致谢
- 建立在 剧作家 -微软强大的浏览器自动化框架
- 实现 模型上下文协议 -Anthropic的AI工具集成开放标准
- 用途 斧头核心 用于可访问性测试
- 由...驱动 @模型上下文协议/sdk
关键词
剧作家、自动化、人工智能、MCP、浏览器自动化、web测试、视觉回归、可访问性测试、跨浏览器测试、测试生成、质量保证、e2e测试、集成测试、claude、模型上下文协议
由...制作❤️ 通过 塔亚布·阿克马尔