UI测试计划生成器

一个基于AI的MCP服务器,通过本地Ollama AI模型从GitLab合并请求生成全面的UI测试计划,确保代码不离开用户机器。

  • by Atm06
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 Atm06/gitlab-testplan-generator

使用说明

GitLab UI测试计划生成器

一个由AI驱动的MCP服务器,使用本地Ollama AI模型从GitLab合并请求中生成全面的UI测试计划。你的代码永远不会离开你的机器。

🏗️ 项目结构

gitlab-testplan-generator/
├── mcp-server/
│   ├── src/gitlab_mcp/           # Main package
│   │   ├── server.py            # MCP server with ui_test_plan_from_mr tool
│   │   ├── analyzer.py          # GitLab MR analysis with AI
│   │   ├── test_planner.py      # AI-powered test plan generation
│   │   ├── ai_service.py        # Local Ollama AI integration
│   │   └── models.py            # Pydantic data models
│   ├── examples/                # Usage examples
│   │   ├── demo_analysis.py     # Demo script
│   │   ├── example_usage.py     # Example usage patterns
│   │   └── test_ollama.py       # AI agent verification test
│   ├── docs/                    # Documentation
│   ├── main.py                  # Entry point
│   ├── requirements.txt         # Dependencies
│   └── .env                     # Environment configuration
└── venv/                        # Virtual environment

🔧 特性

🤖 AI驱动的分析

  • 使用本地Ollama AI模型进行智能代码分析
  • 分析GitLab合并请求以识别受影响的UI区域
  • 基于代码更改生成上下文感知测试场景
  • 隐私第一:所有分析都在您的机器上本地进行

📋 综合测试计划

  • 通过特定步骤生成以UI为中心的测试场景
  • 每个测试场景的风险评估(高/中/低)
  • 预期结果和验收标准
  • 处理正面和边缘案例测试场景

🔗 无缝集成

  • 通过MCP协议与Cursor IDE直接集成
  • 简单 @ui_test_plan_from_mr 命令用法
  • 适用于GitLab.com和自托管GitLab实例
  • 没有外部API调用-一切都在本地运行

🚀 快速开始

1.先决条件

  • Python 3.8+
  • 没有 已安装并正在运行
  • GitLab个人访问令牌
  • 光标IDE

2.安装

# Navigate to the project
cd gitlab-testplan-generator

# Create and activate virtual environment
python3 -m venv .venv
source .venv/bin/activate  # On Windows: .venv\Scripts\activate

# Install dependencies
cd mcp-server
pip install -r requirements.txt

3.配置

在中设置您的GitLab凭据 mcp-server/.env:

GITLAB_URL=https://gitlab.cee.redhat.com  # Your GitLab instance
GITLAB_TOKEN=your-personal-access-token   # GitLab PAT with api, read_repository scopes
GITLAB_SSL_VERIFY=false                   # For internal GitLab instances

4.在游标中安装

添加到您的 ~/.cursor/mcp.json:

{
  "mcpServers": {
    "gitlab-ui-test-plan-generator": {
      "command": "/path/to/gitlab-testplan-generator/venv/bin/python",
      "args": ["/path/to/gitlab-testplan-generator/mcp-server/main.py"],
      "env": {
        "GITLAB_URL": "https://gitlab.cee.redhat.com"
      }
    }
  }
}

### 5. Start Ollama

```bash
# Install and start Ollama
ollama serve

# Pull the AI model (in another terminal)
ollama pull qwen2.5-coder:1.5b

6.验证AI代理(可选但推荐)

# Navigate to examples directory
cd mcp-server/examples

# Run AI agent verification test
python test_ollama.py

该测试验证:

  • ✅ Ollama服务器状态和版本
  • ✅ 所需AI模型可用性
  • ✅ 人工智能生成能力

预期产量:

=== Ollama AI Agent Status Check ===
✅ Ollama server is running (version: 0.9.6)
✅ Required model 'qwen2.5-coder:1.5b' is available
✅ AI generation successful!
🎉 All tests passed! Your AI agent is running correctly on Ollama.

演示和示例

# Verify AI agent is working correctly
python examples/test_ollama.py

# Run demo analysis (works offline without GitLab credentials)
python examples/demo_analysis.py

# Run with real GitLab connection
# (requires configured .env file)
python examples/demo_analysis.py

📋 可用的MCP工具

ui_test_plan_from_mr

从GitLab合并请求生成UI测试计划的主要工具。

游标中的用法:

@ui_test_plan_from_mr https://gitlab.cee.redhat.com/project/-/merge_requests/123

它的作用:

  1. 🔍 分析合并请求并提取代码更改
  2. 🤖 使用本地AI了解变化的影响
  3. 🎯 识别受影响的UI区域和组件
  4. 📋 生成具有特定步骤的全面测试场景
  5. ⚠️ 为每种情况提供风险评估

💡 使用示例

在光标中:

@ui_test_plan_from_mr https://gitlab.cee.redhat.com/<project_name>/merge_requests/12345

@ui_test_plan_from_mr https://gitlab.cee.redhat.com/project/-/merge_requests/123/diffs

输出示例:

该工具生成:

  • MR职务:[JIRA-ID]:MR标题描述
  • 受影响的页面:受影响的页面和组件
  • 测试场景:2-5个AI生成的场景
  • 风险等级:每个场景的高/中/低
  • 详细步骤:具体行动和预期成果
  • AI洞察:变更和用户影响摘要

🔧 建筑

核心组件

  • CodeAnalyzer:分析GitLab合并请求并计算复杂性/风险分数
  • UITestPlanGenerator:根据变更分析创建全面的测试计划
  • MCP Server:通过模型上下文协议公开功能
  • Models:用于类型安全和验证的Pydantic数据模型

成分分析

系统会根据文件模式自动识别组件:

  • 认证: /auth/, /login/, /user/ 文件
  • 数据库: .sql、迁移文件, /models/, /db/ 文件
  • API: /api/, /endpoints/, /routes/ 文件
  • 前端: .js, .ts, .vue, .html, .css 文件
  • 后端: .py, .java, .cpp, .go 文件
  • 配置: /config/, .env, .yaml, .json 文件
  • 安全: /security/, /ssl/ 文件

风险评估

服务器自动评估风险等级:

  • 高风险:安全文件、数据库迁移、配置文件、复杂更改(>100行)
  • 中等风险:API文件、服务文件、中等复杂度(50-100行)
  • 低风险:文档,简单更改(<50行)

📖 文档

🤝 贡献

  1. 分叉存储库
  2. 创建要素分支: git checkout -b feature-name
  3. 手动进行更改和测试
  4. 验证AI代理功能: python examples/test_ollama.py
  5. 使用真实的GitLab合并请求进行测试
  6. 提交拉取请求

开发设置

# Install dependencies
pip install -r requirements.txt

# Verify setup
python examples/demo_analysis.py

📝 许可证

MIT许可证-有关详细信息,请参阅许可证文件。

🆘 故障排除

常见问题

  1. 导入错误:确保您已安装了以下软件包 pip install -e .
  2. GitLab连接:验证您的令牌是否具有正确的权限并且尚未过期
  3. MCP安装:确保Cursor启用了MCP支持

调试模式

# Run with debug logging
export PYTHONPATH=src
python -m gitlab_mcp.server --log-level debug

准备好开始了吗? 看看 安装指南 详细说明!