Jira测试用例生成器

一个基于AI的Jira测试用例生成和工单管理服务器,支持通过自然语言与Jira交互,自动化测试用例生成、工单管理及工作流自动化。

  • by deepraj-vicenzo
  • Java
  • 本地部署
  • 更新于
在 GitHub 查看 deepraj-vicenzo/jira-mcp-server

使用说明

Jira测试用例生成器MCP服务器

一个强大的模型上下文协议(MCP)服务器,为测试用例生成、票证管理和工作流自动化提供AI驱动的Jira集成。该服务器使Claude Desktop和其他MCP客户端能够使用自然语言与Jira交互,自动化常见任务并生成智能测试用例。

📋 概述

此MCP服务器弥合了AI助手和Jira之间的差距,使您能够:

  • 生成全面的测试用例 从现有的Jira门票
  • 创建和管理门票 任何类型(史诗、故事、任务、Bug等)
  • 更新现有票证 随着新信息、优先级或状态的变化
  • 创建子任务 并将其链接到家长门票
  • 链接相关门票 有各种关系类型
  • 自动化重复的工作流程 通过自然语言命令

它使用Java 23和Maven构建,使用Jira的REST API v3,并遵循MCP协议规范与AI工具无缝集成。

✨ 特性

核心能力

  • 🎯 AI驱动的测试用例生成:根据票证类型、描述和验收标准自动生成全面的测试用例
  • 🎫 全票管理:使用自定义字段和优先级创建任何Jira问题类型
  • ✏️ 门票更新:更新现有票证,包括摘要、描述、优先级和状态
  • 📎 子任务创建:创建子任务并将其链接到父工单
  • 🔗 门票链接:将相关票证与关系类型(关系、块、重复项、克隆)链接
  • 🔍 智能分析:智能分析工单内容以生成相关测试场景
  • 🔐 安全配置:基于环境的凭证管理 .env 文件支持
  • 🚀 MCP兼容:完全符合Claude Desktop集成的模型上下文协议
  • 📝 丰富的格式:使用Atlassian文档格式(ADF)进行富文本描述

先决条件

  • Java 23或更高版本
  • Maven 3.6或更高版本
  • 带有API令牌的Jira帐户
  • Jira云或服务器实例

安装

1.克隆或下载项目

cd jira-testcase-mcp-server

2.配置环境变量

创建一个 .env 项目根目录中的文件:

cp .env.example .env

编辑 .env 文件并添加您的Jira凭据:

JIRA_URL=https://your-domain.atlassian.net
JIRA_EMAIL=your-email@example.com
JIRA_API_TOKEN=your_api_token_here

如何获得Jira API代币:

  1. 首选https://id.atlassian.com/manage-profile/security/api-tokens
  2. 点击“创建API令牌”
  3. 为其命名(例如,“MCP服务器”)
  4. 复制生成的令牌并将其粘贴到您的 .env 文件

3.建设项目

mvn clean package

这将在 target 目录: jira-testcase-mcp-server-1.0.0.jar

用法

独立运行服务器

java -jar target/jira-testcase-mcp-server-1.0.0.jar

服务器将启动并监听stdin/stdout上的MCP请求。

重要提示: 确保:

  1. 使用JAR文件的完整绝对路径
  2. 放置 .env 与JAR文件位于同一目录中的文件
  3. 更新配置后重新启动Claude Desktop

与克劳德一起使用

配置后,您可以要求Claude使用自然语言与Jira交互:

生成测试用例:

Can you generate test cases for Jira ticket PROJ-123?

创建新票证:

Create a Story in PROJ with summary "Add user authentication" and description "Implement login functionality"

创建子任务:

Create a subtask under PROJ-123 with summary "Write unit tests" and description "Add test coverage"

将门票链接在一起:

Link PROJ-123 to PROJ-456 with a Relates relationship

更新现有票证:

Update ticket PROJ-123 to set priority to High and status to In Progress

Claude将自动使用适当的工具来满足您的请求。

可用工具

此MCP服务器提供五个强大的工具:

1.生成测试用例

根据特定Jira票证的类型、描述和验收标准为其生成全面的测试用例。

参数:

  • ticketKey (必填):Jira票证密钥(例如“PROJ-123”、“DEV-456”)

示例用法:

Generate test cases for ticket PROJ-123

输出:

  • 门票详细信息(摘要、描述、类型、优先级、状态)
  • AI生成的测试用例包括:
    • 测试用例ID
    • 标题
    • 优先级
    • 详细的测试步骤
    • 预期结果
    • 测试类型(阳性、阴性、回归等)

2.创建_票

创建任何类型的新Jira票证(Epic、Story、Task、Bug、Feature等)。

参数:

  • projectKey (必填):Jira项目密钥(例如“PROJ”、“DEV”)
  • issueType (必填):问题类型(例如,“故事”、“任务”、“Bug”、“史诗”)
  • summary (必填):门票的简要标题/摘要
  • description (必填):门票详细说明
  • priority (可选):优先级(例如,“高”、“中”、“低”)

示例用法:

Create a Bug in PROJ with summary "Login button not working" and description "Users cannot log in on mobile devices" with High priority

输出:

  • 已创建票证密钥(例如“PROJ-789”)
  • 门票URL便于访问

3.创建子任务

创建子任务并将其链接到父工单。

参数:

  • parentKey (必填):父票密钥(例如“PROJ-123”)
  • summary (必填):子任务的简要标题/摘要
  • description (必填):子任务的详细描述

示例用法:

Create a subtask under PROJ-123 with summary "Update API documentation" and description "Document the new endpoints"

输出:

  • 已创建子任务密钥(例如“PROJ-790”)
  • 子任务URL
  • 家长票参考

4.链接_门票

使用指定的关系类型链接两个Jira票证。

参数:

  • inwardIssue (必填):第一张票密钥(例如“PROJ-123”)
  • outwardIssue (必填):第二张票密钥(例如“PROJ-456”)
  • linkType (必填):关系类型-以下之一:
    • "Relates" -一般关系
    • "Blocks" -第一张票挡第二张票
    • "Duplicate" -门票是重复的
    • "Cloners" -克隆关系

示例用法:

Link PROJ-123 to PROJ-456 with a Blocks relationship

输出:

  • 成功确认
  • 链接类型和方向
  • 两张票的参考号

5.更新门票

更新现有的Jira票证。您可以更新摘要、描述、优先级和/或状态。除以下字段外的所有字段 ticketKey 是可选的。

参数:

  • ticketKey (必填):要更新的票密钥(例如“PROJ-123”)
  • summary (可选):门票的新摘要/标题
  • description (可选):票的新描述
  • priority (可选):新的优先级(例如,“高”、“中”、“低”)
  • status (可选):新状态(例如,“进行中”、“完成”、“待办事项”)

示例用法:

Update ticket PROJ-123 to set priority to High and description to "Updated requirements based on client feedback"

输出:

  • 成功确认
  • 已更新的字段列表
  • 门票URL便于访问

测试用例类型

生成器根据Jira问题类型创建不同类型的测试用例:

对于Bug

  • 重现bug测试用例
  • 验证修复测试用例
  • 回归测试用例

用户故事

  • 阳性测试用例(快乐之路)
  • 负面测试用例(错误处理)
  • UI/UX测试用例(如适用)
  • 集成测试用例

对于任务

  • 功能验证
  • 性能测试(如适用)

对于Epics

  • 端到端测试
  • 系统集成测试

通用测试用例

  • 功能测试
  • 验证测试

项目结构

testcasegenerator/
├── pom.xml                           # Maven configuration
├── .env.example                      # Environment variables template
├── .env                              # Your actual environment variables (not in git)
├── README.md                         # This file
└── src/
    └── main/
        └── java/
            └── com/
                └── mcp/
                    ├── Main.java                          # Application entry point
                    ├── server/
                    │   └── JiraTestCaseMCPServer.java    # MCP server implementation
                    └── service/
                        ├── JiraService.java               # Jira API integration
                        └── TestCaseGenerator.java         # Test case generation logic

代码概述

主类

  • 应用程序的入口点
  • 从加载配置 .env 文件
  • 初始化并启动MCP服务器
  • 验证所需的环境变量

JiraTestCaseMCPServer.java

  • 实施MCP协议
  • 处理MCP请求(初始化、工具/列表、工具/调用)
  • Jira服务和测试用例生成器之间的协调
  • 以MCP格式格式化响应

JiraService.java

  • 连接到Jira REST API
  • 使用基本身份验证(电子邮件+API令牌)进行身份验证
  • 获取并更新门票详细信息
  • 处理状态转换
  • 解析Jira的JSON响应(包括ADF格式)

TestCaseGenerator.java

  • 分析Jira票证内容
  • 根据问题类型生成测试用例
  • 创建不同的测试场景(阳性、阴性、回归等)
  • 用详细的步骤和预期结果格式化测试用例

故障排除

“JIRA_URL是必需的”错误

  • 确保你有一个 .env 文件与JAR文件位于同一目录中
  • 确认 .env 文件包含所有必需的变量

“获取Jira票证失败:401”错误

  • 检查您的JIRA_EMAIL是否正确
  • 验证您的JIRA_API_TOKEN是否有效且尚未过期
  • 确保您有权限访问该票证

“获取Jira票证失败:404”错误

  • 验证票证密钥是否正确(例如“PROJ-123”)
  • 确保该票证存在,并且您有权查看它

服务器在Claude中没有响应

  • 配置更改后重新启动Claude Desktop
  • 检查Claude日志中是否有任何错误消息
  • 验证配置中的JAR文件路径是否正确和绝对

发展

从源头构建

# Clean and build
mvn clean package

# Run tests (if any)
mvn test

# Run without packaging
mvn compile exec:java

添加自定义测试用例逻辑

要自定义测试用例生成,请编辑 TestCaseGenerator.java 文件并修改生成方法:

  • generateBugTestCases()
  • generateStoryTestCases()
  • generateTaskTestCases()
  • generateEpicTestCases()

安全说明

  • 永远不要承诺你的 .env 文件到版本控制
  • 保持Jira API代币的安全
  • 定期轮换您的API令牌
  • 如果可能,请使用只读API令牌

许可证

本项目按原样提供,用于教育和商业用途。

支持

对于问题或疑问:

  1. 检查上面的故障排除部分
  2. 验证您的Jira凭据和权限
  3. 检查服务器日志以获取详细的错误消息

更新日志

版本1.0.0(2025年11月)

  • ✅ 符合MCP协议的初始版本
  • ✅ 针对多种问题类型的AI驱动测试用例生成
  • ✅ 全票管理(创建任何问题类型)
  • ✅ 票证更新功能(摘要、描述、优先级、状态)
  • ✅ 子任务创建和链接
  • ✅ 与关系类型(关联、块、重复、克隆)关联的票证
  • ✅ Jira REST API v3与基本身份验证的集成
  • ✅ 基于环境的安全配置
  • ✅ 支持Atlassian文档格式(ADF)以获得丰富的描述
  • ✅ 对国际字符的UTF-8编码支持
  • ✅ 全面的错误处理和记录

用例

此服务器非常适合:

  • QA团队:根据用户故事和错误自动生成测试用例
  • 开发团队:无需离开人工智能助手即可创建、更新和管理门票
  • 项目经理:链接相关工单,创建子任务,快速更新工单状态
  • 自动化:将Jira工作流集成到AI驱动的自动化管道中
  • 文档:从现有工单生成测试文档

技术细节

  • 语言:Java 23
  • 生成工具:Maven 3.x
  • 协议:通过JSON-RPC 2.0的模型上下文协议(MCP)
  • 沟通:stdin/stdout
  • Jira API:REST API v3
  • 认证:基本身份验证(电子邮件+API令牌)
  • 依赖项:
    • Apache HttpClient 5.3(HTTP通信)
    • Gson 2.10.1(JSON解析)
    • Dotenv Java 3.0.0(环境配置)