jmeter导出文件类型接口响应信息乱码处理
导出文件接口
这种接口实际返回的是excel文档,直接去查看响应信息看是否出现乱码问题。
导出文件乱码还会导致Jenkins构建测试失败
针对此问题,我们可以把返回内容重新生成一个文件,保存到服务器上,然后判断文件是否生成成功(后续还可以以针对实际业务判断文件大小及文件内容是否符合预期,此处举例只判断文件是否存在)
(1 )首先在需要导出接口里添加一个BeanShell PostProcessor
(2)参考以下代码对返回信息重新处理
String resPonseCode = prev.getResponseCode(); if(resPonseCode.equals("200")){ ResponseData = prev.getResponseData(); String ResponseDataType = ResponseData.getClass().getName(); if(ResponseDataType.equals("[B")){ byte[] result = ResponseData; //这个是获取到请求返回的数据,prev是获取上个请求的返回 log.warn(result.getClass()+""); String file_name = "excel_${__time(,)}.xlsx"; //代表存放文件的位置和文件名 File file = new File(file_name); FileOutputStream out = new FileOutputStream(file); out.write(result); out.close(); if(file.exists()){ //根据实际情况各业务自己判断是否需要补充对导出文件的内容验证,此处暂时只判断文件是否存在 prev.setResponseData("导出成功","UTF-8"); log.warn("导出成功"); } else{ prev.setResponseData("导出失败","UTF-8"); log.warn("导出失败"); } } }
(3)重新执行后,查看返回信息已经变为自定义的文本"导出成功",并有文件保存成功
注意:
1、如果在服务器上执行,还需要考虑文件保存路径是否存在
2、文件名称和文件后缀需要根据实际需求自己定义