zoukankan      html  css  js  c++  java
  • 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、文件名称和文件后缀需要根据实际需求自己定义

  • 相关阅读:
    eclipse中编译调试skynet
    饭否Android端更新流程分析
    ThinkPHP Logic层
    Skynet框架(1)
    ThinkPHP Mongo驱动update方法支持upsert参数
    [转载]yum与apt命令比较
    chkconfig在ubuntu里用什么命令替代
    通过aptget下载下来到/var/cache/apt/archives里的东西能删除吗?
    mysql远程访问的bindaddress设置
    对MySQL性能影响关系紧密的五大配置参数
  • 原文地址:https://www.cnblogs.com/duwei2325/p/14516473.html
Copyright © 2011-2022 走看看