如何从GitHub Actions上传JUnit测试报告至Jira-Zephyr
自动化将JUnit测试报告上传至Zephyr的可行方案
方案1:利用Zephyr Scale官方REST API
Zephyr Scale(原Zephyr for Jira)提供了专门的API用于导入JUnit测试报告,这是最直接的自动化方式:
- 前置准备:
- 在Zephyr Scale中生成API token(路径:个人设置 > API Tokens)
- 在GitHub仓库的
Settings > Secrets and variables > Actions中添加两个secrets:ZEPHYR_SCALE_API_TOKEN(刚才生成的token)和ZEPHYR_SCALE_PROJECT_KEY(你的Zephyr项目标识)
- GitHub Actions步骤示例:
在你的工作流文件中添加如下步骤,用curl上传报告:
注意替换- name: Upload JUnit report to Zephyr Scale run: | curl -X POST \ -H "Authorization: Bearer ${{ secrets.ZEPHYR_SCALE_API_TOKEN }}" \ -F "file=@./path/to/your/junit-report.xml" \ -F "projectKey=${{ secrets.ZEPHYR_SCALE_PROJECT_KEY }}" \ -F "testCycleKey=YOUR_TEST_CYCLE_KEY" # 可选,指定要关联的测试循环 "https://your-zephyr-instance-url/public/rest/api/1.0/automations/executions/junit"./path/to/your/junit-report.xml为实际报告路径,以及your-zephyr-instance-url为你的Zephyr实例域名。
方案2:使用社区维护的GitHub Actions插件
社区有针对Zephyr的现成Action,可以简化配置:
- 搜索支持Zephyr JUnit导入的Action,在工作流中直接引用,配置必要参数即可:
这类Action会封装API调用细节,无需手动写curl命令。- name: Upload JUnit to Zephyr uses: some-community-action/zephyr-junit-upload@v1 with: zephyr-token: ${{ secrets.ZEPHYR_SCALE_API_TOKEN }} zephyr-project-key: ${{ secrets.ZEPHYR_SCALE_PROJECT_KEY }} junit-report-path: ./path/to/your/junit-report.xml zephyr-instance-url: https://your-zephyr-instance-url
方案3:自定义脚本适配特殊需求
如果你的JUnit报告格式需要预处理(比如调整测试用例命名规则以匹配Zephyr中的用例),可以写个简单的脚本:
- 用Python/Shell脚本读取JUnit报告,做必要的格式转换,然后调用Zephyr API上传:
示例Python脚本片段(核心逻辑):
在GitHub Actions中执行这个脚本即可完成自动化上传。import requests url = "https://your-zephyr-instance-url/public/rest/api/1.0/automations/executions/junit" headers = {"Authorization": f"Bearer {api_token}"} files = {"file": open("./junit-report.xml", "rb")} data = {"projectKey": project_key, "testCycleKey": cycle_key} response = requests.post(url, headers=headers, files=files, data=data) response.raise_for_status()
内容的提问来源于stack exchange,提问作者netshark1000
相关产品推荐
相关产品推荐

