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、文件名称和文件后缀需要根据实际需求自己定义

posted @ 2021-03-11 10:51  akihi2325  阅读(394)  评论(0编辑  收藏  举报