使用说明
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代币:
- 首选https://id.atlassian.com/manage-profile/security/api-tokens
- 点击“创建API令牌”
- 为其命名(例如,“MCP服务器”)
- 复制生成的令牌并将其粘贴到您的
.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请求。
重要提示: 确保:
- 使用JAR文件的完整绝对路径
- 放置
.env与JAR文件位于同一目录中的文件 - 更新配置后重新启动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令牌
许可证
本项目按原样提供,用于教育和商业用途。
支持
对于问题或疑问:
- 检查上面的故障排除部分
- 验证您的Jira凭据和权限
- 检查服务器日志以获取详细的错误消息
更新日志
版本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(环境配置)
