【jmeter】JMeter中返回Json数据的处理方法
Json 作为一种数据交换格式在网络开发,特别是 Ajax 与 Restful 架构中应用的越来越广泛。而 Apache 的 JMeter 也是较受欢迎的压力测试工具之一,但是它本身没有提供对于 Json 数据的响应处理。本文中假设需要从 HTTP 的响应头中返回的 Json 格式的数据流中抽取某些特定的数据,数据格式如下:
{
"name":"Simpsons family",
"members":[
{"firstName":"Homer", "lastName":"Simpson"},
{"firstName":"Marge", "lastName":"Simpson"},
{"firstName":"Bart", "lastName":"Simpson"},
{"firstName":"Lisa", "lastName":"Simpson"},
{"firstName":"Maggie", "lastName":"Simpson"}
]
}
下面我们使用不同的方法来进行数据的抽取工作:
正则表达式提取
JMeter 安装了正则表达式插件之后,可以按照固定的格式从字符串中提取数据,而本例中正则表达式如下所示:
"firstName":"(.+?)"
使用了该表达式之后会返回所有服从表达式的字符串,但是只有一个表达式是我们所关注的。可以使用$1$ 来作为模板,而 3 则会返回第三个数据。

当偶尔需要对Json数据进行处理时,正则表达式是一个合适的选择,它的一个优势在于JMeter本身就内置了Json处理模块。但是,阅读处理正则表达式却是比较复杂的,特别是对于某些复杂的Json数据。
JMeter JSON 插件
另一种处理 Json 数据的方法是使用 JMeter 的插件,该插件可以使用 JSONPath 来获取 JSON 数据中特定位置的数据。类似于 XML 文件中的 XPath , JSONPath 可以使用简单的表达式来操作 Json 对象。 JSON Path Extractor 是一个开源的增加了 post处理器的插件,可以将该插件的 Lib 文件拷贝到 JMeter 的 lib 目录下即可。
而上文中提及的需要定位的数据可以使用如下的JSONPath 进行描述:
$.members[2].firstName
在 JMeter 中,只需要从 PostProcessor 菜单中打开 JSON Path Extractor 然后输入变量名与默认值即可,如下所示:

JSONPath 表达式较短并且易于阅读,能够有效提高测试脚本的易维护性,该插件并不随着标准的 JMeter 一起安装。
BeanShell Post Processor
最后一种方法即是借用了 JMeter 的对于 BeanShell 支持的特性, BeanShell 是一个轻量级的面向 Java 的脚本语言。 BeanShell Post Processor 允许使用标准的 Java 语法来处理 Json 数据,使用方法如下图所示:

总结
本文列举出了三种可用的从 Json 格式的返回值中提取数据的方法,正则表达式对于简单的 Json 格式的数据的快速标准化非常占优势。而 JsonPath 插件可以用于创建能够被维护修改的脚本,但是需要额外的插件安装工作。而最后的带 JSON 库的BeanShell 确实非常详细并且依赖于 Java 语言的灵活性可以进行进一步的开发。
【jmeter】JMeter中返回Json数据的处理方法的更多相关文章
- JMeter中返回Json数据的处理方法
Json 作为一种数据交换格式在网络开发,特别是 Ajax 与 Restful 架构中应用的越来越广泛.而 Apache 的 JMeter 也是较受欢迎的压力测试工具之一,但是它本身没有提供对于 Js ...
- JMeter中返回Json数据的处理方法(转)
Json 作为一种数据交换格式在网络开发,特别是 Ajax 与 Restful 架构中应用的越来越广泛.而 Apache 的 JMeter 也是较受欢迎的压力测试工具之一,但是它本身没有提供对于 Js ...
- jmeter(二十)JMeter中返回Json数据的处理方法
Json 作为一种数据交换格式在网络开发,特别是 Ajax 与 Restful 架构中应用的越来越广泛.而 Apache 的 JMeter 也是较受欢迎的压力测试工具之一,但是它本身没有提供对于 Js ...
- JMeter 中对于Json数据的处理方法
JMeter中对于Json数据的处理方法 http://eclipsesource.com/blogs/2014/06/12/parsing-json-responses-with-jmeter/ J ...
- ASP.NET Core中返回 json 数据首字母大小写问题
ASP.NET Core中返回 json 数据首字母大小写问题 在asp.net core中使用ajax请求动态绑定数据时遇到该问题 后台返回数据字段首字母为定义的大写,返回的数据没有问题 但是在前台 ...
- 【转】JMeter中对于Json数据的处理方法
Json 作为一种数据交换格式在网络开发,特别是 Ajax 与 Restful 架构中应用的越来越广泛.而 Apache 的 JMeter 也是较受欢迎的压力测试工具之一,但是它本身没有提供对于 Js ...
- spingmvc 返回json数据日期格式化方法
第一种: json 用的是这个依赖 <!-- JSON lib 开发包 以及它的依赖包 --> <dependency> <groupId>com.fasterxm ...
- Spring MVC中返回JSON数据的几种方式
我们都知道Spring MVC 的Controller方法中默认可以返回ModeAndView 和String 类型,返回的这两种类型数据是被DispatcherServlet拿来给到视图解析器进行继 ...
- MVC中返回json数据的两种方式
MVC里面如果直接将数据返回到前端页面,我们常用的方式就是用return view(): 那么我不想直接用razor语法,毕竟razor这玩意儿实在是太难记了,还不如写ajax对接来得舒服不是 那么我 ...
随机推荐
- I.MX6 console 跳过 login
/*************************************************************************** * I.MX6 console 跳过 logi ...
- [转载]python 爬虫总结
1.基本抓取网页 get方法 import urllib2 url = "http://www.baidu.com" response = urllib2.urlopen(url) ...
- 一个js对象的代码结构
初步理解的js里一个对象的写法: GameLayer GameLayer.js var GameLayer = cc.Layer.extend({ //私有属性(带下划线"_&q ...
- eclipse中文乱码
问题描述: 在导入log4j.properties文件时里面出现中文乱码,如下: ### 设置### log4j.rootLogger = debug,stdout,D,E ### è¾å ...
- (理论篇)53个要点提高PHP编程效率
用单引号代替双引号来包含字符串,这样做会更快一些.因为php会在双引号包围的字符串中搜寻变量,单引号则不会,注意:只有echo能这么做,它是一种可以把多个字符串当作参数的"函数"( ...
- hdu 2665 Kth number
划分树 /* HDU 2665 Kth number 划分树 */ #include<stdio.h> #include<iostream> #include<strin ...
- struct和typedef struct的区别
当typedef与结构结合使用时,会有一些比较复杂的情况,而且在C语言和C++里面有略有差别,因此从网上摘录了一些资料. 1 首先: 在C中定义一个结构体类型要用typedef: ...
- P168 实战练习(权限修饰符)
创建Game类,运行代码如下: package org.hanqi.pn0120; public class Game { private String name; private String ca ...
- C++仿函数和typename的用法
1.仿函数的定义是很简单的,就是一个重载了括号()运算符的类,也被称为函数对象. 主要是用于个性化扩展算法对象.stl中实现了好多算法,每个算法都可以完成日常的大部分工作,设计者还允许你在这些强大的算 ...
- Linux-同步异步非阻塞阻塞的解析
一.理解同步.异步.阻塞.非阻塞 出场人物:老张,水壶两把(普通水壶,简称水壶:会响的水壶,简称响水壶). 1 老张把水壶放到火上,立等水开.(同步阻塞) 老张觉得自己有点傻. 2 老张把水壶放到火上 ...