如何在SOAPUI中用Groovy解码REST API返回JSON的Base64并生成PDF
用SOAPUI+Groovy实现Base64解码并保存PDF的方案
当然可以实现!SOAPUI搭配Groovy脚本完全能轻松搞定这个需求,我给你整理了具体的操作步骤和代码示例:
操作步骤
- 打开你的SOAPUI测试项目,找到对应的REST请求测试用例。
- 在该测试用例中添加一个Groovy Script测试步骤,确保它放在REST请求步骤的后面(这样才能正确获取到请求的响应内容)。
Groovy脚本代码
把以下代码复制到Groovy Script步骤中,记得根据你的实际情况调整文件保存路径:
// 获取REST请求返回的响应文本 def responseText = context.expand('${REST Request#Response}') // 解析JSON格式的响应 def jsonParser = new groovy.json.JsonSlurper() def responseData = jsonParser.parseText(responseText) // 提取parentnode1下的base64内容 def base64Content = responseData.parentnode1.base64content // 对Base64字符串进行解码,得到字节数组 def decodedPdfBytes = base64Content.decodeBase64() // 设置PDF文件的保存路径(请替换为你本地的目标目录) def targetFilePath = "C:/temp/saved_file.pdf" def pdfFile = new File(targetFilePath) // 将解码后的字节写入文件 pdfFile.withOutputStream { outputStream -> outputStream.write(decodedPdfBytes) } // 日志输出,确认操作完成 log.info "PDF文件已成功保存到: ${targetFilePath}" log.info "响应消息提示: ${responseData.messages}"
注意事项
- 请把代码中的
${REST Request#Response}里的REST Request替换成你实际的REST请求步骤的名称,否则无法正确获取响应内容。 - 修改
targetFilePath为你想要保存PDF的本地路径,Windows系统注意用斜杠/或者双反斜杠\\,Linux/macOS直接用常规路径格式即可。 - 确保SOAPUI有写入目标目录的权限,不然会出现保存失败的情况。
内容的提问来源于stack exchange,提问作者Priyanka Ray
相关产品推荐
相关产品推荐

