如何通过REST API查询Zephyr-JIRA项目版本测试周期?遇404错误求助
Zephyr for Jira Cloud 测试周期API问题解决
1. 列出指定版本下测试周期的API端点及使用方法
Zephyr for Jira Cloud 提供了REST API用于搜索测试周期,对应的核心端点为:GET /connect/public/rest/api/1.0/cycles/search
必填查询参数:
projectId: JIRA项目的ID(字符串格式,注意区分项目key)versionId: 项目版本的ID(字符串格式,注意区分版本名称)
通过传递上述两个参数,即可返回该版本下的所有测试周期数据。
2. 404错误的排查与修正
你的代码出现404错误,主要集中在头部配置、参数验证或权限问题上,以下是具体修正方案:
问题1:请求头部格式错误
Content-Type不应设置为text/plain,API要求的正确头部为application/json,即使是GET请求也需要匹配该格式。
问题2:权限与凭证验证
确保Authorization中的JWT token格式正确(JWT <你的token>,注意空格),同时zapiAccessKey是有效的,且对应账号拥有该项目的Zephyr测试周期查看权限。
问题3:参数正确性验证
确认projectId和versionId是JIRA后台实际的数字ID,而非项目key或版本名称。可在JIRA项目设置、版本管理页面获取对应ID。
修正后的代码
import requests headers = { 'Content-Type': 'application/json', 'Authorization': 'JWT <your-jwt-token>', 'zapiAccessKey': '<your-zapi-access-key>' } project_id = "1234" version_id = "12345" url = f"https://prod-api.zephyr4jiracloud.com/connect/public/rest/api/1.0/cycles/search?projectId={project_id}&versionId={version_id}" response = requests.get(url, headers=headers) if response.status_code == 200: print(response.json()) else: print(f"Error {response.status_code}: {response.text}")
额外排查步骤
如果修正后仍返回404:
- 直接用Postman或浏览器调用该API,验证URL和参数的正确性
- 确认Zephyr API版本(你使用的1.0版本)与当前服务兼容
- 再次核对Zephyr界面中该版本下是否存在测试周期
内容的提问来源于stack exchange,提问作者pranit patil
相关产品推荐
相关产品推荐

