自动化测试ID工作流服务器

AutoTestID Workflow MCP Server 是一个实现两阶段自动化测试ID工作流的MCP服务器,专注于可访问性优先的测试策略。

  • by SashaZK
  • C#
  • 本地部署
  • 更新于
在 GitHub 查看 sashazk/autotestid-mcp-server

使用说明

AutoTestID工作流MCP服务器

一个全面的模型上下文协议(MCP)服务器,实现了两阶段AutoTestID工作流,用于采用可访问性优先的方法进行自动化测试。

概述

AutoTestID工作流MCP服务器提供 autotestid_workflow 实现复杂的两阶段方法的工具:

  1. 第一阶段:战略选择 -从中选择 aria-first 或 test-attribute-first
  2. 第二阶段:实施 -使用企业级定位器模式应用您选择的策略

特性

  • 🎯 两阶段工作流程:战略选择后智能实施
  • ♿ 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(用于聊天集成)

快速设置

  1. 构建项目:

    dotnet build
    dotnet run
    
  2. 配置VS代码MCP: 添加到您的VS代码MCP配置中:

    {
      "servers": {
        "autotestid-workflow": {
          "type": "stdio",
          "command": "dotnet",
          "args": ["run", "--project", "path/to/AutoTestId.McpServer.csproj"]
        }
      }
    }
    
  3. 使用工具:

    • 在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:
<div><button>Save</button><input type="email"></div>

方法B-使用HTML文件上下文(推荐):

  1. 在VS Code中打开HTML文件(例如。, component.html, modal.html)
  2. 使用副驾驶聊天:
#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工作流程

两种可用策略:

  1. ARIA第一战略

    • 优先考虑可访问性 aria-label, role 属性
    • 仅添加 data-testid 当ARIA不足以瞄准目标时
    • 遵循规则:ARIA或data testid,永远不要在同一个元素上同时使用
  2. 测试属性优先策略

    • 增加 data-testid 所有互动元素
    • 使用烤肉串案例命名: submit-button, email-input
    • 确保全面的测试覆盖率

输入:

  • html_content (必填):使用定位器属性增强HTML内容

输出:

  • 策略选择提示→ 通过所选方法增强HTML
  • 分析总结及建议

输出示例

ARIA第一个战略成果:

<!-- Input -->
<button>Save</button>

<!-- Output -->
<button aria-label="Save form data" role="button">Save</button>

测试属性第一策略结果:

<!-- Input -->  
<button>Save</button>

<!-- Output -->
<button data-testid="save-button">Save</button>

许可证

该项目遵循标准的开源许可实践。