Jmeter之后置处理器BeanShell PostProcessor与二进制响应

读取二进制文件

下载必要的jar包

http://tika.apache.org/download.html
笔者的百度云盘
链接:http://pan.baidu.com/s/1bpctAr1 密码:o0wm
放到lib目录下后须重启jmeter

准备xls文件

这里写图片描述

构建脚本

这里写图片描述

查看http的file响应

注意text切换到Document模式
这里写图片描述

正则提取及结果

正则:
这里写图片描述
查看debugSampler
这里写图片描述
因而需要对结果进行转码-beanshell后置处理器

BeanShell

代码1
import org.apache.jmeter.util.Document;//导入官方jar包

String converted = Document.getTextFromDocument(data);//静态方法不用生成对象,参见API:jmeter.apache.org/api/index.html
//data是该响应在BeanShell中的本地变量,是个字符数组,本质就是那个读取的那个file,会用就行不用懂

vars.put("response0820",converted);

这里写图片描述

这里写图片描述

查看结果树

这里写图片描述

这里写图片描述

代码2

适合有一定基础的童鞋

import org.apache.jmeter.threads.JMeterVariables;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;


InputStream in = new ByteArrayInputStream(data);//打开流文件

Workbook wb = new XSSFWorkbook(in);//多态,生成对象wb存储这个二进制响应结果

in.close();//关闭流文件

Sheet sheet1 = wb.getSheet("Sheet1");//对象wb调用getSheet方法,获取对应的Sheet,这里是1

Row row = sheet1.getRow(0);//取第0行放入row
Cell a1 = row.getCell(0);//取row的第0列
Cell b1 = row.getCell(1);//取作row的第1列

vars.put("A1",a1.getStringCellValue());
vars.put("B1",b1.getStringCellValue());
//log.info("+++++++++++++");

这里写图片描述

这里写图片描述

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值