You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从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,在工作流中直接引用,配置必要参数即可:
    - 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
    
    这类Action会封装API调用细节,无需手动写curl命令。

方案3:自定义脚本适配特殊需求

如果你的JUnit报告格式需要预处理(比如调整测试用例命名规则以匹配Zephyr中的用例),可以写个简单的脚本:

  • 用Python/Shell脚本读取JUnit报告,做必要的格式转换,然后调用Zephyr API上传:
    示例Python脚本片段(核心逻辑):
    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()
    
    在GitHub Actions中执行这个脚本即可完成自动化上传。

内容的提问来源于stack exchange,提问作者netshark1000

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 22:30:57