AutoTestID工作流MCP服务器
一个全面的模型上下文协议(MCP)服务器,实现了两阶段AutoTestID工作流,用于采用可访问性优先的方法进行自动化测试。
概述
AutoTestID工作流MCP服务器提供 autotestid_workflow 实现复杂的两阶段方法的工具:
- 第一阶段:战略选择 -从中选择
aria-first或test-attribute-first - 第二阶段:实施 -使用企业级定位器模式应用您选择的策略
特性
- 🎯 两阶段工作流程:战略选择后智能实施
- ♿ ARIA第一选择:优先考虑语义定位的可访问性(ARIA属性或数据testid,永远不要两者兼而有之)
- 🎛️ 测试属性优先选项:对所有交互元素进行全面的数据测试
- 🏢 企业级:遵循Angular/AngularJS的最佳实践和适当的命名约定
- 🚀 MCP兼容:与VS Code和GitHub Copilot无缝集成
项目结构
AutoTestId.McpServer/
├── AutoTestId.McpServer.csproj # Project configuration
├── Program.cs # Application entry point
├── McpServer.cs # MCP protocol implementation
├── TestIdTools.cs # Two-phase AutoTestID workflow
├── tech_prompts/
│ └── add_test_id_prompt.md # Comprehensive workflow template
└── README.md # This guide需求
- .NET 8.0 SDK或更高版本
- 带有MCP服务器扩展的VS代码
- GitHub Copilot(用于聊天集成)
快速设置
- 构建项目:
dotnet build
dotnet run- 配置VS代码MCP:
添加到您的VS代码MCP配置中:
{
"servers": {
"autotestid-workflow": {
"type": "stdio",
"command": "dotnet",
"args": ["run", "--project", "path/to/AutoTestId.McpServer.csproj"]
}
}
}- 使用工具:
- 在VS代码中打开GitHub Copilot聊天 - 选项A-直接HTML: #autotestid_workflow [your HTML] - 选项B-文件上下文:在VS Code中打开HTML文件或将其添加为聊天中的上下文,然后使用 #autotestid_workflow (建议用于较大的文件) - 遵循两阶段工作流程提示
用法
通过GitHub Copilot Chat使用该工具,工作流程分为两个阶段:
步骤1:触发工作流
方法A-直接HTML输入:
#autotestid_workflow Add locators to this HTML:
Save
方法B-使用HTML文件上下文(推荐):
- 在VS Code中打开HTML文件(例如。,
component.html,modal.html) - 使用副驾驶聊天:
#autotestid_workflow Apply AutoTestID workflow to the current HTML file此方法自动使用打开的文件作为上下文,使其非常适合:
- 大型HTML文件或组件
- Angular/React组件模板
- 复杂的形式和模态
- 整个页面布局
第二步:选择你的策略
选项A-ARIA优先(推荐):
aria-first- 添加ARIA属性以实现可访问性和语义定位
- 仅使用
data-testid当ARIA不足时 - 最适合以用户为中心的测试
选项B-首先测试属性:
test-attribute-first- 增加
data-testid所有互动元素 - 无论现有属性如何,覆盖范围都是一致的
- 最适合全面的自动化覆盖
所得
- 具有适当定位器属性的增强HTML
- 对哪些元素进行了修改的详细分析
- 测试方法建议
- 文件集成:使用文件上下文时,可以直接将更改应用于组件文件
工具说明
自动估计工作流
目的:Angular/AngularJS应用程序的全面AutoTestID工作流程
两种可用策略:
- ARIA第一战略
- 优先考虑可访问性 aria-label, role 属性 - 仅添加 data-testid 当ARIA不足以瞄准目标时 - 遵循规则:ARIA或data testid,永远不要在同一个元素上同时使用
- 测试属性优先策略
- 增加 data-testid 所有互动元素 - 使用烤肉串案例命名: submit-button, email-input - 确保全面的测试覆盖率
输入:
html_content(必填):使用定位器属性增强HTML内容
输出:
- 策略选择提示→ 通过所选方法增强HTML
- 分析总结及建议
输出示例
ARIA第一个战略成果:
Save
Save测试属性第一策略结果:
Save
Save许可证
该项目遵循标准的开源许可实践。
