http://eclipsesource.com/blogs/2014/06/12/parsing-json-responses-with-jmeter/

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则会返回第三个数据。

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd3h5eXhjMTk5Mg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

当偶尔须要对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在里面Json数据处理方法的更多相关文章

  1. JSON数据处理框架Jackson精解第一篇-序列化与反序列化核心用法

    Jackson是Spring Boot默认的JSON数据处理框架,但是其并不依赖于任何的Spring 库.有的小伙伴以为Jackson只能在Spring框架内使用,其实不是的,没有这种限制.它提供了很 ...

  2. JMeter 中对于Json数据的处理方法

    JMeter中对于Json数据的处理方法 http://eclipsesource.com/blogs/2014/06/12/parsing-json-responses-with-jmeter/ J ...

  3. iOS开发——数据解析Swift篇&简单json数据处理

    简单json数据处理 //loadWeather var url = NSURL(string: "http://www.weather.com.cn/adat/sk/101240701.h ...

  4. Oracle解析复杂json的方法

    问题背景: 当前在Oracle数据库(11G之前的版本)解析json没有可以直接使用的系统方法,网上流传的PLSQL脚本大多也只可以解析结构较单一的json串,对于结构复杂的json串还无法解析.如此 ...

  5. python接口自动化(十九)--Json 数据处理---实战(详解)

    简介 上一篇说了关于json数据处理,是为了断言方便,这篇就带各位小伙伴实战一下.首先捋一下思路,然后根据思路一步一步的去实现和实战,不要一开始就盲目的动手和无头苍蝇一样到处乱撞,撞得头破血流后而放弃 ...

  6. Oracle解析复杂json的方法(转)

    转:Oracle解析复杂json的方法 问题背景: 当前在Oracle数据库(11G之前的版本)解析json没有可以直接使用的系统方法,网上流传的PLSQL脚本大多也只可以解析结构较单一的json串, ...

  7. JavaScript转换与解析JSON的方法

    在JavaScript中将JSON的字符串解析成JSON数据格式,一般有两种方式: 一种为使用eval()函数. 使用Function对象来进行返回解析. 使用eval函数来解析,jquery的eac ...

  8. C#中对象,字符串,dataTable、DataReader、DataSet,对象集合转换成Json字符串方法。

    C#中对象,字符串,dataTable.DataReader.DataSet,对象集合转换成Json字符串方法. public class ConvertJson { #region 私有方法 /// ...

  9. JavaScript操作JSON的方法总结,JSON字符串转换为JSON对象

    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,是理想的数据交换格式.同时,JSON是 JavaScript 原生格式,这意 ...

随机推荐

  1. Swift - 29 - 参数的默认值

    // 参数设置了默认值之后, 在调用的时候, 可以写这个参数 // 在参数前面添加"_", 表示取消外部参数名, 但还是建议使用苹果默认格式 func sayHello(nickN ...

  2. js单条新闻向上滚动

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xht ...

  3. window连接linux nfs服务器 —— 网络错误 53

    在度娘以"win7 nfs mount 网络错误 - 53"为关键字,翻了第一页,GG... 于是去找谷哥,第一页 [all variants] Get NFS working w ...

  4. 分享一个md5类

    这个md5干嘛用的,大家比我清楚就不说了,这里不是讲md5的原理.要讲md5的原理,网上一大堆,我也不是什么算法很厉害的人,我只是算法搬运工.咱是一般程序员,有时候能完成业务需要就可以,那些伟大算法的 ...

  5. IOS 真机调试以及发布应用 2

    参考网站:http://my.oschina.net/u/1245365/blog/196420 已经有开发证书的直接跳过第一步 第一步:申请“开发证书” 进入苹果开发者99美元账号: 选择:Cert ...

  6. Android之声音管理器《AudioManager》的使用以及音量控制

    以下为网上下载然后拼接-- Android声音管理AudioManager使用 手机都有声音模式,声音.静音还有震动,甚至震动加声音兼备,这些都是手机的基本功能.在Android手机中,我们同样可以通 ...

  7. ASP.NET MVC 缓存使用示例

    应该说,缓存的设计是一门较为复杂的学问,主要考虑的问题包括:要不要缓存?要缓存哪些数据?要缓存多少数据?要缓存多久?如何更新缓存(手动还是自 动)?将缓存放在哪里?本文将以较为通俗易懂的方式,来看一看 ...

  8. @Index用法——javax.persistence.Index

    package com.springup.utiku.model; import java.io.Serializable; import javax.persistence.Entity; impo ...

  9. Spring4.0学习笔记(11) —— Spring AspectJ 的五种通知

    Spring AspectJ 一.基于注解的方式配置通知 1.额外引入的jar包: a) com.springsource.org.aopalliance-1.0.0.jar b) com.sprin ...

  10. (转)QT常用快捷键

    F1        查看帮助F2        跳转到函数定义(和Ctrl+鼠标左键一样的效果)Shift+F2    声明和定义之间切换F4        头文件和源文件之间切换Ctrl+1     ...