求知 文章 文库 Lib 视频 Code iProcess 课程 认证 咨询 工具 火云堂 讲座吧   成长之路  
会员   
要资料
 
追随技术信仰

随时听讲座
每天看新闻
 

JMeter教程
JMeter介绍
Jmeter基础之—jmeter基础概念
LR有的JMeter也有之一“参数化”
LR有的JMeter也有之二“检查点”
LR有的JMeter也有之三“集合点”
JMeter之关联
JMeter使用技巧
JMeter基础之—录制脚本
聚合报告之 90% Line 正确理解
JMeter目录介绍
Jmeter常见问题解答
JMeter内存溢出解决办法
JMeter安装-Windows
JMeter安装-Linux
non-gui模式运行
介绍JMeter的七种主要组件
Jmeter之Http Cookie Manager
JMeter处理Cookie与Session
Jmeter之HTTP Request Defaults
Jmeter之逻辑控制器(Logic Controller)
JMeter逻辑控制器
Jmeter属性和变量
JMeter的HTTP属性管理器
Jmeter组件执行顺序与作用域
Jmeter参数化
Jmeter关联
Jmeter分布式测试
Jmeter代理录制脚本
Jmeter调试工具—Debug Sampler
Jmeter调试工具—HTTP Mirror Server
JMeter函数学习
JMeter Java Sampler 1
JMeter Java Sampler 2
JMeter中返回Json数据的处理方法
使用jmeter来发送json/gzip格式数据
JMeter基础之一 一个简单的性能测试
使用Jmeter进行http接口测试
使用JMeter创建FTP测试计划
使用JMeter创建数据库(Mysql)测试
一种简单的数据库性能测试方法
Jmeter之JDBC Request使用方法(oracle)
JMeter测试MongoDB
WebService测试计划
Jmeter之Bean shell使用(一)
Jmeter之Bean shell使用(二)
ANT批量执行Jmeter脚本
搭建持续集成接口测试平台(Jenkins+Ant+Jmeter)
JMeter分布式部署
JMeter之badboy脚本开发技术
用BlazeMeter录制JMeter测试脚本
jmeter进行https协议的测试
Jmeter录制手机app脚本
JMeter学习发送HTTPS请求
Jmeter默认报告优化
Jmeter报告优化之New XSL stylesheet
 
 

JMeter中返回Json数据的处理方法
65 次浏览
3次
 捐助

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 语言的灵活性可以进行进一步的开发。


您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码: 验证码,看不清楚?请点击刷新验证码 必填



65 次浏览
3次
 捐助
 

每天2个文档/视频
扫描微信二维码订阅
订阅技术月刊
获得每月300个技术资源
 
 

关于我们 | 联系我们 | 京ICP备10020922号 京公海网安备110108001071号