SAR/TAR MCP工具系统
用于云ERP集成测试中SAR/TAR测试自动化的模型上下文协议(MCP)服务器集合。运行测试,捕获HTTP流量,验证TAR文件,并通过MCP工具分析结果。
特性
- SAR测试MCP:使用ScriptARest.exe运行TAR测试,验证文件,分析结果
- HTTP捕获MCP:使用无头Playwright浏览器自动化捕获HTTP流量
- OpenAPI MCP:解析OpenAPI规范并提取云ERP服务元数据
- 34强大的工具:完成测试执行、验证、浏览器自动化、API发现和数据捕获
- 结果分析:分析测试输出,识别错误,建议修复
- 安全:域分配列表、标头编辑、审核日志记录
- AI增强功能:GitHub Copilot的自定义代理,Cursor IDE的项目规则和命令
先决条件
- Node.js v20.0.0或更高版本
- npm或pnpm包管理器
- ScriptARest.exe(用于SAR测试MCP-测试执行)
- 访问云ERP服务器(用于测试执行)
可用的MCP服务器
| 服务器 | npm包 | 捆绑包大小 | 描述 |
|---|---|---|---|
| SAR测试MCP | @dilina0914/sar-test-mcp | 约87 KB | 运行并验证SAR/TAR测试文件 |
| HTTP捕获MCP | @dilina0914/http-capture-mcp | 约63 KB | 通过浏览器自动化捕获HTTP流量 |
| OpenAPI MCP | @dilina0914/openapi-mcp | 约35 KB | 解析OpenAPI规范并提取元数据 |
所有包裹均 完全捆绑 采用企业级实践:
- 摇动树木,使捆包尺寸最小化
- 用于调试的源映射
- ESM模块格式
- Node.js 20+目标
______________________________________________________________________
集成选项
选择最适合您工作流程的集成方法:
选项1:VS代码集成
将MCP服务器集成到VS Code中,以便直接在编辑器中使用工具。
步骤1:安装Playwright(HTTP捕获MCP所需)
检查是否安装了Playwright:
npx playwright --version如果未安装或看到错误,请安装:
npm install -g playwright
npx playwright install chromium步骤2:创建MCP配置文件夹
在项目根目录中,创建一个 .vscode 文件夹:
mkdir .vscode步骤3:创建MCP配置文件
里面 .vscode 文件夹,创建一个名为的文件 mcp.json 内容如下:
{
"servers": {
"sar-test": {
"command": "npx",
"args": [
"-y",
"@dilina0914/sar-test-mcp@6.0.0"
],
"env": {
"SAR_SCRIPT_A_REST_PATH": "C:\\Path\\To\\ScriptARest.exe",
"SAR_SERVER_URL": "https://your-erp-server.com",
"SAR_USERNAME": "your_username",
"SAR_PASSWORD": "your_password"
}
},
"http-capture": {
"command": "npx",
"args": [
"-y",
"@dilina0914/http-capture-mcp@6.0.0"
],
"env": {
"BROWSER_HEADLESS": "true",
"LOG_LEVEL": "info"
}
},
"openapi": {
"command": "npx",
"args": [
"-y",
"@dilina0914/openapi-mcp@6.0.0"
],
"env": {
"LOG_LEVEL": "info"
}
}
}
}步骤4:配置环境变量
SAR测试MCP变量
| 变量 | 描述 | 必填 |
|---|---|---|
SAR_SCRIPT_A_REST_PATH | ScriptARest.exe的完整路径 | 是(用于运行测试) |
SAR_SERVER_URL | 云ERP服务器URL | 是(用于运行测试) |
SAR_USERNAME | 身份验证用户名 | 是(用于运行测试) |
SAR_PASSWORD | 身份验证密码 | 是(用于运行测试) |
SAR_TIMEOUT_MS | 超时(毫秒) | 否(默认值:600000) |
HTTP捕获MCP变量
| 变量 | 描述 | 必填 | 默认 |
|---|---|---|---|
BROWSER_HEADLESS | 在无头模式下运行浏览器 | 否 | true |
LOG_LEVEL | 日志记录级别(调试、信息、警告、错误) | 否 | info |
MAX_CAPTURE_SIZE_MB | 要捕获的最大响应体大小 | 否 | 10 |
MAX_SESSIONS | 最大并发浏览器会话数 | 否 | 5 |
OpenAPI MCP变量
| 变量 | 描述 | 必填 | 默认 |
|---|---|---|---|
LOG_LEVEL | 日志记录级别(调试、信息、警告、错误) | 否 | info |
AUDIT_LOG_ENABLED | 启用审核日志记录 | 否 | true |
AUDIT_LOG_DIR | 审核日志目录 | 否 | ./logs/audit |
步骤5:重新启动VS代码
关闭并重新打开VS Code以加载MCP服务器配置。
______________________________________________________________________
选项2:游标IDE集成
Cursor IDE内置了对MCP服务器的支持,使集成变得简单。
步骤1:安装Playwright(HTTP捕获MCP所需)
检查是否安装了Playwright:
npx playwright --version如果未安装或看到错误,请安装:
npm install -g playwright
npx playwright install chromium步骤2:打开光标设置
- 打开光标IDE
- 转到“设置”(“文件”>“首选项”>“设置”或Ctrl/Cmd+,)
- 搜索“MCP”或导航到MCP配置部分
步骤3:添加MCP服务器配置
在MCP设置中,添加具有以下配置的服务器:
{
"mcpServers": {
"sar-test": {
"command": "npx",
"args": [
"-y",
"@dilina0914/sar-test-mcp@6.0.0"
],
"env": {
"SAR_SCRIPT_A_REST_PATH": "C:\\Path\\To\\ScriptARest.exe",
"SAR_SERVER_URL": "https://your-erp-server.com",
"SAR_USERNAME": "your_username",
"SAR_PASSWORD": "your_password",
"SAR_TIMEOUT_MS": "600000"
}
},
"http-capture": {
"command": "npx",
"args": [
"-y",
"@dilina0914/http-capture-mcp@6.0.0"
],
"env": {
"BROWSER_HEADLESS": "true",
"LOG_LEVEL": "info",
"MAX_CAPTURE_SIZE_MB": "10"
}
},
"openapi": {
"command": "npx",
"args": [
"-y",
"@dilina0914/openapi-mcp@6.0.0"
],
"env": {
"LOG_LEVEL": "info"
}
}
}
}示例:仅限SAR测试MCP
{
"mcpServers": {
"sar-test": {
"command": "npx",
"args": ["-y", "@dilina0914/sar-test-mcp@6.0.0"],
"env": {
"SAR_SCRIPT_A_REST_PATH": "C:\\Users\\YourName\\Downloads\\ScriptARest\\ScriptARest.exe",
"SAR_SERVER_URL": "https://your-erp-server.example.com",
"SAR_USERNAME": "your_username",
"SAR_PASSWORD": "your_password"
}
}
}
}示例:带可见浏览器的HTTP捕获MCP(用于调试)
{
"mcpServers": {
"http-capture": {
"command": "npx",
"args": ["-y", "@dilina0914/http-capture-mcp@6.0.0"],
"env": {
"BROWSER_HEADLESS": "false",
"LOG_LEVEL": "debug"
}
}
}
}示例:仅限OpenAPI MCP
{
"mcpServers": {
"openapi": {
"command": "npx",
"args": ["-y", "@dilina0914/openapi-mcp@6.0.0"],
"env": {
"LOG_LEVEL": "info"
}
}
}
}步骤4:保存并重新启动
保存配置并重新启动Cursor IDE以激活MCP服务器。
______________________________________________________________________
选项3:Claude桌面集成
步骤1:安装Playwright(HTTP捕获MCP所需)
检查是否安装了Playwright:
npx playwright --version如果未安装或看到错误,请安装:
npm install -g playwright
npx playwright install chromium步骤2:添加到Claude Desktop配置文件
窗户: %APPDATA%\Claude\claude_desktop_config.json
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"sar-test": {
"command": "npx",
"args": ["-y", "@dilina0914/sar-test-mcp@6.0.0"],
"env": {
"SAR_SCRIPT_A_REST_PATH": "C:\\Path\\To\\ScriptARest.exe",
"SAR_SERVER_URL": "https://your-erp-server.com",
"SAR_USERNAME": "your_username",
"SAR_PASSWORD": "your_password"
}
},
"http-capture": {
"command": "npx",
"args": ["-y", "@dilina0914/http-capture-mcp@6.0.0"],
"env": {
"BROWSER_HEADLESS": "true",
"LOG_LEVEL": "info"
}
},
"openapi": {
"command": "npx",
"args": ["-y", "@dilina0914/openapi-mcp@6.0.0"],
"env": {
"LOG_LEVEL": "info"
}
}
}
}______________________________________________________________________
方案4:地方发展
直接运行服务器进行开发或测试。
步骤1:克隆并安装
git clone https://github.com/dilinaweerasinghe/integration-testing-mcp.git
cd integration-testing-mcp
pnpm install步骤2:构建包
pnpm build步骤3:配置环境变量
Windows(PowerShell):
# SAR Test MCP
$env:SAR_SCRIPT_A_REST_PATH = "C:\Path\To\ScriptARest.exe"
$env:SAR_SERVER_URL = "https://your-erp-server.com"
$env:SAR_USERNAME = "your_username"
$env:SAR_PASSWORD = "your_password"
# HTTP Capture MCP
$env:BROWSER_HEADLESS = "true"
$env:LOG_LEVEL = "info"Windows(命令提示符):
:: SAR Test MCP
set SAR_SCRIPT_A_REST_PATH=C:\Path\To\ScriptARest.exe
set SAR_SERVER_URL=https://your-erp-server.com
set SAR_USERNAME=your_username
set SAR_PASSWORD=your_password
:: HTTP Capture MCP
set BROWSER_HEADLESS=true
set LOG_LEVEL=infoLinux/macOS:
# SAR Test MCP
export SAR_SCRIPT_A_REST_PATH="/path/to/ScriptARest"
export SAR_SERVER_URL="https://your-erp-server.com"
export SAR_USERNAME="your_username"
export SAR_PASSWORD="your_password"
# HTTP Capture MCP
export BROWSER_HEADLESS="true"
export LOG_LEVEL="info"步骤4:安装Playwright浏览器(用于HTTP Capture MCP)
npx playwright install chromium步骤5:运行MCP服务器
# Run SAR Test MCP
node packages/mcps/tar-validator-mcp/dist/index.js
# Run HTTP Capture MCP
node packages/mcps/http-capture-mcp/dist/index.js
# Run OpenAPI MCP
node packages/mcps/openapi-mcp/dist/index.js或者使用包脚本:
pnpm mcp:sar-test
pnpm mcp:http-capture
pnpm mcp:openapi______________________________________________________________________
AI助手增强功能
通过添加自定义代理、规则和命令来增强您的人工智能辅助开发体验。这些新增功能有助于AI助手理解SAR/TAR测试环境,并生成更准确的测试文件。
GitHub Copilot自定义代理(Visual Studio)
将SAR/TAR测试自动化代理添加到Visual Studio中的GitHub Copilot,以实现智能测试文件生成。
步骤1:查找或创建 .github 文件夹
在项目根目录中,创建一个 .github 文件夹(如果不存在):
mkdir .github步骤2:复制代理文件
复制 custome_agents_rules/sar_test.agent.md 致你的 .github 文件夹:
cp custome_agents_rules/sar_test.agent.md .github/或手动创建 .github/sar_test.agent.md 使用此存储库中的代理配置。
步骤3:在Visual Studio中启用
- 打开Visual Studio
- 首选 工具>选项>GitHub Copilot
- 确保选中“启用自定义代理”
- 重新启动Visual Studio
代理人提供什么:
- 智能SAR/TAR测试文件生成
- 正确的元数据结构(类型、所有者、模式)
- 正确的变量命名(camelCase)
- 替代模式指南({$}、{%}、{#})
- 测试工具和测试用例模板
- AAA(安排法案断言)结构执行
______________________________________________________________________
游标IDE项目规则
添加特定于项目的规则,以帮助Cursor理解SAR/TAR测试惯例。
步骤1:创建 .cursor/rules 文件夹
在项目根目录中:
mkdir -p .cursor/rules步骤2:复制规则文件
复制 custome_agents_rules/sar-rules.md 致你的 .cursor/rules 文件夹:
cp custome_agents_rules/sar-rules.md .cursor/rules/步骤3:验证配置
规则文件应包含以下内容:
---
name: sar-rules
description: This is a new rule
---规则提供了什么:
- TAR命令语法指南(Get、Post、Patch、Delete等)
- 变量命名约定
- 元数据结构要求
- 错误处理模式
- 测试用例开发的最佳实践
______________________________________________________________________
游标IDE项目命令
添加自定义命令,通过MCP快速执行SAR/TAR测试。
步骤1:创建 .cursor/commands 文件夹
在项目根目录中:
mkdir -p .cursor/commands步骤2:复制命令文件
复制 commands/run-sar-test.md 致你的 .cursor/commands 文件夹:
cp commands/run-sar-test.md .cursor/commands/步骤3:使用命令
在光标聊天中,键入 /run-sar-test 调用该命令。
指挥部执行的任务:
- TAR/SAR测试必须通过配置的MCP工具执行
- 无手动或模拟测试输出
- 测试结果必须包括:套件名称、状态、失败和指标
- 如果MCP执行失败,则进行显式故障报告
______________________________________________________________________
完成AI增强设置
为了获得最佳体验,请设置所有三个增强功能:
文件夹结构:
your-project/
├── .github/
│ └── sar_test.agent.md # GitHub Copilot agent
├── .cursor/
│ ├── rules/
│ │ └── sar-rules.md # Cursor project rules
│ └── commands/
│ └── run-sar-test.md # Cursor project commands
└── ...快速安装脚本(PowerShell):
# Create directories
New-Item -ItemType Directory -Force -Path ".github"
New-Item -ItemType Directory -Force -Path ".cursor/rules"
New-Item -ItemType Directory -Force -Path ".cursor/commands"
# Copy files (adjust source paths as needed)
Copy-Item "custome_agents_rules/sar_test.agent.md" ".github/"
Copy-Item "custome_agents_rules/sar-rules.md" ".cursor/rules/"
Copy-Item "commands/run-sar-test.md" ".cursor/commands/"快速设置脚本(Bash):
# Create directories
mkdir -p .github .cursor/rules .cursor/commands
# Copy files (adjust source paths as needed)
cp custome_agents_rules/sar_test.agent.md .github/
cp custome_agents_rules/sar-rules.md .cursor/rules/
cp commands/run-sar-test.md .cursor/commands/______________________________________________________________________
快速故障排除
未找到ScriptAR测试
错误: ScriptARest.exe not found at:
解决方案:
- 验证中的路径
SAR_SCRIPT_A_REST_PATH是正确的 - 使用绝对路径,而不是相对路径
- 在Windows上,使用双反斜杠(
\\)或正斜杠(/)
认证失败
错误: 401 Unauthorized 或 Connection failed: Invalid credentials
解决方案:
- 验证
SAR_USERNAME和SAR_PASSWORD是正确的 - 检查用户是否有权访问Cloud ERP服务器
- 验证服务器URL是否正确且可访问
未找到浏览器
错误: browserType.launch: Executable doesn't exist
解决方案:
- 安装Playwright浏览器:
npx playwright install chromium - 确保有足够的磁盘空间
- 在Linux上,安装所需的依赖项:
npx playwright install-deps
环境变量问题
错误: Test runner not configured 或无法识别的变量
解决方案:
- 设置环境变量后重新启动IDE
- 对于VS代码/游标:确保变量位于
mcp.json文件 - 验证配置文件中的JSON语法(检查是否缺少逗号、引号)
未找到会话
错误: Session not found:
解决方案:
- 确保您使用的会话ID正确
openUrl - 检查会话是否已关闭或超时
- 使用
listSessions查看活动会话
未找到规格
错误: Spec not found: . Use loadSpec first.
解决方案:
- 首先使用以下命令加载规范
loadSpec工具 - 验证从返回的specId
loadSpec - 规格存储在内存中,当服务器重新启动时会丢失
OpenAPI规范无效
错误: Failed to parse OpenAPI spec
解决方案:
- 验证文件是有效的JSON或YAML
- 确保它是有效的OpenAPI 3.0规范
- 检查文件路径或URL可访问性
______________________________________________________________________
包含什么
SAR测试MCP工具(共10个)
测试执行
| 工具 | 说明 |
|---|---|
configureRunner | 配置ScriptARest路径和凭据 |
runTest | 执行TAR测试文件并获取结果 |
analyzeResults | 分析原始ScriptARest输出 |
getRunnerStatus | 检查转轮配置状态 |
验证
| 工具 | 说明 |
|---|---|
validateFile | 完整验证.mkd文件 |
validateContent | 根据字符串输入验证TAR内容 |
validateSuite | 验证目录中的所有.mkd文件 |
checkAaaStructure | 检查安排行为断言结构 |
checkCommands | 验证TAR命令语法 |
getValidationRules | 获取当前验证规则 |
HTTP捕获MCP工具(共17个)
会话管理
| 工具 | 说明 |
|---|---|
openUrl | 打开URL并开始捕获HTTP流量 |
closeBrowser | 关闭浏览器会话并清除数据 |
listSessions | 列出所有活动的捕获会话 |
clearCapturedRequests | 清除捕获的会话请求 |
页面交互
| 工具 | 说明 |
|---|---|
click | 按选择器或文本单击元素 |
fill | 用文本填充输入字段 |
type | 使用键盘事件键入文本 |
selectOption | 在下拉菜单中选择选项 |
check / uncheck | 切换复选框/单选按钮 |
pressKey | 按键盘键 |
waitForSelector | 等待元素出现 |
waitForModal | 等待模态/对话框出现 |
表单处理
| 工具 | 说明 |
|---|---|
fillForm | 一次填写多个表单字段 |
getFormFields | 获取容器中的所有表单字段 |
submitForm | 提交表格 |
数据采集
| 工具 | 说明 |
|---|---|
getCapturedRequests | 获取所有捕获的HTTP请求 |
getPageInfo | 获取页面URL、标题和可见元素 |
screenshot | 截图 |
evaluate | 在页面上下文中执行JavaScript |
OpenAPI MCP工具(共7个)
规格管理
| 工具 | 说明 |
|---|---|
loadSpec | 从文件路径或URL加载OpenAPI规范 |
unloadSpec | 从内存中卸载以前加载的规范 |
端点发现
| 工具 | 说明 |
|---|---|
listEndpoints | 列出所有带有筛选选项的API端点 |
getOperationDetails | 通过ID或路径/方法获取完整的操作详细信息 |
searchOperations | 按查询、标记或实体名称进行搜索操作 |
模式提取
| 工具 | 说明 |
|---|---|
listSchemas | 列出规范中定义的所有模式/实体 |
getEntitySchema | 提取具有数据类型的详细实体模式 |
______________________________________________________________________
安全特性
- 凭证保护:密码永远不会在响应或日志中公开
- 域允许列表:可配置的HTTP捕获允许域
- 标题修改:自动删除敏感标头(授权、Cookie等)
- 身体发红:基于模式的密码和令牌编辑
- 会话隔离:每个会话的新浏览器上下文
- 审计日志:完成所有业务的审计跟踪
- 输入验证:文件路径和参数已验证
______________________________________________________________________
项目结构
SAR-MCP/
├── commands/ # Cursor IDE commands
│ └── run-sar-test.md # SAR test execution command
├── config/ # Configuration files
│ ├── mcp-servers.json # MCP server registration
│ ├── security.json # Security settings
│ └── tar-validation-rules.json # Validation rules
├── custome_agents_rules/ # AI assistant configurations
│ ├── sar_test.agent.md # GitHub Copilot custom agent
│ └── sar-rules.md # Cursor IDE project rules
├── docs/ # Documentation
│ └── PUBLISHING.md # npm publishing guide
├── packages/
│ ├── mcps/ # MCP servers
│ │ ├── http-capture-mcp/ # HTTP Capture MCP
│ │ ├── openapi-mcp/ # OpenAPI MCP
│ │ └── tar-validator-mcp/ # SAR Test MCP
│ └── shared/ # Shared libraries
│ ├── mcp-core/ # MCP base classes
│ ├── security/ # Security utilities
│ └── logging/ # Logging utilities
├── package.json
├── pnpm-workspace.yaml
└── tsconfig.json______________________________________________________________________
发展
建筑
# Build all packages
pnpm build
# Build specific package
pnpm --filter @dilina0914/sar-test-mcp build
pnpm --filter @dilina0914/http-capture-mcp build
pnpm --filter @dilina0914/openapi-mcp build测试
# Run all tests
pnpm test
# Run specific package tests
pnpm --filter @dilina0914/sar-test-mcp test掉毛
pnpm lint
pnpm format______________________________________________________________________
许可证
链接
- GitHub 仓库: https://github.com/dilinaweerasinghe/integration-testing-mcp
- SAR测试MCP npm: https://www.npmjs.com/package/@dilina0914/sar试验mcp
- HTTP捕获MCP npm: https://www.npmjs.com/package/@dilina0914/http捕获mcp
- OpenAPI MCP npm: https://www.npmjs.com/package/@dilina0914/openapi mcp
- 问题: https://github.com/dilinaweerasinghe/integration-testing-mcp/issues
