读取二进制文件
下载必要的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("+++++++++++++");