如何通过Rally REST API为测试用例结果附加ZIP文件?
用Rally REST API给测试用例结果附加ZIP文件
嘿,恭喜你已经搞定图片附件的部分啦!其实给测试用例结果加ZIP文件的思路和图片基本一致,只是需要针对压缩包的类型做几个小调整,我来给你梳理下具体步骤:
核心逻辑回顾
Rally的附件系统是通过两个实体协作完成的:AttachmentContent(存储文件的二进制内容和类型)和Attachment(关联到具体的测试用例结果,记录文件名等信息)。这和你处理图片时的流程是一样的,只是MIME类型和文件名后缀要对应ZIP格式。
具体实现步骤(以Java为例)
读取ZIP文件为字节数组
先把本地的ZIP文件转换成Base64编码的字符串,这一步和处理图片完全相同:byte[] zipFileBytes = Files.readAllBytes(Paths.get("/path/to/your/archive.zip")); String base64Content = Base64.getEncoder().encodeToString(zipFileBytes);创建AttachmentContent实体
这里关键是把ContentType设置为application/zip,告诉Rally这是一个压缩包:AttachmentContent content = new AttachmentContent(); content.setContent(base64Content); content.setContentType("application/zip"); CreateRequest contentReq = new CreateRequest("AttachmentContent", content.getJsonObject()); CreateResponse contentRes = restApi.create(contentReq); String contentRef = contentRes.getObject().get("_ref").toString();创建Attachment关联到测试用例结果
最后把附件关联到你的测试用例结果上,注意文件名要带.zip后缀:Attachment attachment = new Attachment(); attachment.setName("测试报告归档.zip"); // 自定义你的ZIP文件名 attachment.setContent(contentRef); // 关联刚才创建的AttachmentContent attachment.setArtifact("testcaseresult/12345"); // 替换成你的测试用例结果的_ref CreateRequest attachReq = new CreateRequest("Attachment", attachment.getJsonObject()); restApi.create(attachReq);
几个要注意的细节
- 权限检查:确保你的API账号拥有测试用例结果的编辑权限,以及创建附件的权限,不然会返回权限错误。
- 文件大小限制:Rally默认对单个附件有大小限制(一般是50MB),如果你的ZIP包太大,可以考虑拆分压缩包,或者联系Rally管理员调整系统配置。
- MIME类型:一定要用
application/zip,如果用错类型,Rally可能无法正确识别和预览这个附件。
内容的提问来源于stack exchange,提问作者Vishu
相关产品推荐
相关产品推荐

