JMeter实现响应数据中指定内容的Excel导出

发表于:2019-2-11 10:30  作者:莫依痕   来源:简书

字体: | 上一篇 | 下一篇 |我要投稿 | 推荐标签: 软件测试工具 Jmeter

  1、需求:通过Jmeter获取下图数据的名称值
  
例子数据.png
  2、实现:在Jmeter中创建线程、HTTP信息头管理器、具体请求和察看结果树
  输入获取首页API列表的请求(请求方式:get)
 
请求API列表接口.png
  运行一遍,去查看响应数据的结果,需要获取数据中字段为name的所有value值
 
查看结果树.png
  在“查看API列表”右键添加->后置处理器->BeanShell PostProcessor,输入以下内容
import java.util.regex.Matcher;
import java.util.regex.Pattern;
//JMeter的内置API:prev.getResponseData()获取请求的响应内容
byte[] responseData = prev.getResponseData();
//定义一个String类型的变量
String names = "";
//定义正则表达式需要匹配的模式
Pattern pattern = Pattern.compile("\"name\":\"(.+?)\"");
//Matcher java.util.regex.Pattern.matcher(CharSequence arg0)需要将字节类型转成String类型
//获取响应数据符合条件的结果
Matcher result = pattern.matcher(new String(responseData));
//boolean java.util.regex.Matcher.find()只要找到符合条件的就返回true
while(result.find()){
//  String java.util.regex.Matcher.group(int group),group的参数是int类型,0表示获取正则模式左边数起第一个"("开始的内容,1表示获取正则模式左边数起第一个"("开始的内容
//  将返回的结果用字符串全部连接起来,"\r\n"换行保存
names += result.group(1)+"\r\n";
}
//导出的excel存放位置
private String filePath = "E:/application20160314/apache-jmeter-3.2/exportResult/exportFile.xls";
BufferedOutputStream bos = null;
FileOutputStream fos = null;
File file = null;
try {
File file = new File(filePath);
fos = new FileOutputStream(file); //不添加参数true,以非追加的方式添加内容
bos = new BufferedOutputStream(fos);
bos.write(names.getBytes());
} catch (Exception e) {
e.printStackTrace();
} finally {
if (bos != null) {
try {
bos.close();
} catch (IOException e1) {
e1.printStackTrace();
}
}
if (fos != null) {
try {
fos.close();
} catch (IOException e1) {
e1.printStackTrace();
}
}
}
  
导出数据代码实现.png
  3、结果:去上述代码中设置好的具体路径查看结果,获取到所有需要的name值
  
Excel数据保存.png
上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理。

评 论

论坛新帖

顶部 底部


建议使用IE 6.0以上浏览器,800×600以上分辨率,法律顾问:上海瀛东律师事务所 张楠律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2019, 沪ICP备05003035号
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪公网安备 31010102002173号

51Testing官方微信

51Testing官方微博

扫一扫 测试知识全知道