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

Playwright JUnit报告附件无法同步至X-Ray,求助排查问题

Playwright生成JUnit报告上传X-Ray后附件未同步的解决思路

先排查JUnit报告中ATTACHMENT标签的格式合规性

X-Ray对JUnit报告里的ATTACHMENT字段有严格格式要求,不是随便塞个CDATA就能识别的。你需要确保CDATA里的内容遵循attachment; filename=文件名; content-type=媒体类型; path=文件绝对路径的格式,比如:

<system-out><![CDATA[attachment; filename=login-failure.png; content-type=image/png; path=/opt/tests/screenshots/login-failure.png]]></system-out>

如果你的路径是相对路径,X-Ray服务器大概率找不到文件——毕竟它和你的测试机器不在同一环境,没法读取本地相对路径的文件。

检查curl上传命令的正确性

上传JUnit报告到X-Ray的curl命令,必须用multipart/form-data格式提交,而不是普通的JSON或文本POST。正确的命令示例应该是:

curl -X POST -u "username:password" -F "info=@results.xml" "https://your-jira-instance/rest/raven/1.0/import/execution/junit"

如果之前用的是-d @results.xml这种方式,X-Ray可能无法解析其中的附件信息。

调整Playwright的JUnit报告配置

默认的Playwright JUnit报告生成的ATTACHMENT格式可能不符合X-Ray要求,你可以自定义报告模板来修正:
在playwright.config.ts里修改reporter配置,指定附件的输出格式:

import { defineConfig } from '@playwright/test';

export default defineConfig({
  reporter: [
    ['junit', {
      outputFile: 'results.xml',
      attachmentTemplate: ({ name, path, contentType }) => 
        `attachment; filename=${name}; content-type=${contentType}; path=${path}`
    }]
  ],
});

这样生成的XML里的附件信息就能匹配X-Ray的解析规则。

若本地文件无法被X-Ray访问,单独上传附件

如果X-Ray服务器无法直接访问你的测试机器上的截图/视频文件(比如云环境的X-Ray和本地测试机器),那XML里的路径就没用了,必须单独调用X-Ray的API上传附件并关联测试执行:

  1. 先上传JUnit报告获取测试执行ID
  2. 调用X-Ray的添加附件API,把截图/视频文件上传到对应的测试执行或测试用例:
curl -X POST -u "username:password" -F "file=@/path/to/screenshot.png" "https://your-jira-instance/rest/raven/1.0/api/testexec/{testExecId}/attachment"

替换{testExecId}为你上传JUnit报告后得到的测试执行ID。

验证X-Ray的附件显示位置

有时候附件不会直接显示在测试执行的首页,需要进入具体的测试用例详情页,查看“附件”或“测试结果”模块。如果还是找不到,去JIRA的系统日志里排查X-Ray导入过程中是否有文件读取失败、格式不支持的报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 16:42:33