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数据的处理方法的更多相关文章

  1. JMeter中返回Json数据的处理方法

    Json 作为一种数据交换格式在网络开发,特别是 Ajax 与 Restful 架构中应用的越来越广泛.而 Apache 的 JMeter 也是较受欢迎的压力测试工具之一,但是它本身没有提供对于 Js ...

  2. 【jmeter】JMeter中返回Json数据的处理方法

    Json 作为一种数据交换格式在网络开发,特别是 Ajax 与 Restful 架构中应用的越来越广泛.而 Apache 的 JMeter 也是较受欢迎的压力测试工具之一,但是它本身没有提供对于 Js ...

  3. JMeter中返回Json数据的处理方法(转)

    Json 作为一种数据交换格式在网络开发,特别是 Ajax 与 Restful 架构中应用的越来越广泛.而 Apache 的 JMeter 也是较受欢迎的压力测试工具之一,但是它本身没有提供对于 Js ...

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

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

  5. ASP.NET Core中返回 json 数据首字母大小写问题

    ASP.NET Core中返回 json 数据首字母大小写问题 在asp.net core中使用ajax请求动态绑定数据时遇到该问题 后台返回数据字段首字母为定义的大写,返回的数据没有问题 但是在前台 ...

  6. 【转】JMeter中对于Json数据的处理方法

    Json 作为一种数据交换格式在网络开发,特别是 Ajax 与 Restful 架构中应用的越来越广泛.而 Apache 的 JMeter 也是较受欢迎的压力测试工具之一,但是它本身没有提供对于 Js ...

  7. spingmvc 返回json数据日期格式化方法

    第一种: json 用的是这个依赖 <!-- JSON lib 开发包 以及它的依赖包 --> <dependency> <groupId>com.fasterxm ...

  8. Spring MVC中返回JSON数据的几种方式

    我们都知道Spring MVC 的Controller方法中默认可以返回ModeAndView 和String 类型,返回的这两种类型数据是被DispatcherServlet拿来给到视图解析器进行继 ...

  9. Spring Boot教程(二十五)返回JSON格式

    在上述例子中,通过@ControllerAdvice统一定义不同Exception映射到不同错误处理页面.而当我们要实现RESTful API时,返回的错误是JSON格式的数据,而不是HTML页面,这 ...

随机推荐

  1. HDOJ--1869--六度分离(用三种算法写的,希望能比較出来他们之间的差别)

    六度分离 Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submi ...

  2. UI类继承关系图

  3. 从小姐姐博客那里看到的流光文字(CSS3 animate)

    对于流光文字,大家并不陌生,毕竟我们都经历过非主流的时代.你们卟懂绯紸流!色彩缤纷的QQ空间...... 还记得那些炫酷的签名档,或者那些炫酷的动态头像.不过大家对于流光文字的印象还是图片.那么在网页 ...

  4. parquet文件格式——本质上是将多个rows作为一个chunk,同一个chunk里每一个单独的column使用列存储格式,这样获取某一row数据时候不需要跨机器获取

    Parquet是Twitter贡献给开源社区的一个列数据存储格式,采用和Dremel相同的文件存储算法,支持树形结构存储和基于列的访问.Cloudera Impala也将使用Parquet作为底层的存 ...

  5. 推箱子 Sokoban(华中农业比赛)

    点这里 打开题目链接   点击打开链接 题目就是我们玩过的推箱子: 一顿暴力广搜:加状态标记.状态压缩需要用到一个类似于康拓的思想来压缩:所以容易TLE,搜索就是用一个int型的数字来表示一个状态, ...

  6. maven实战(6)-- pom.xml的编写

    pom.xml中可以编写的东西确实挺多的,经常看到别人写的pom文件中出现了一些没见过plugin或properties等等,不知有何作用,其实很简单,只要参看maven的官方文档即可:http:// ...

  7. 屏幕适配-使用autoLayout

    当遇见xib中无法删除的控件时. 将这个错误的控件拖离本xib(第一个元素.xib文件是有许多元素组成的集合),确保这个xib是正确的.重新创建一个xib文件,将这个正确的xib元素整个复制过去. 在 ...

  8. LibSVM学习详细说明

    代码文件主要针对Matlab进行说明,但个人仍觉得讲解的支持向量机内容非常棒,可以做为理解这一统计方法的辅助资料; LibSVM是台湾林智仁(Chih-Jen Lin)教授2001年开发的一套支持向量 ...

  9. JAVA interrupte中断线程的真正用途

    Java线程之中,一个线程的生命周期分为:初始.就绪.运行.阻塞以及结束.当然,其中也可以有四种状态,初始.就绪.运行以及结束. 一般而言,可能有三种原因引起阻塞:等待阻塞.同步阻塞以及其他阻塞(睡眠 ...

  10. PostgreSQL新手教程

    自从MySQL被Oracle收购以后,PostgreSQL逐渐成为开源关系型数据库的首选. 本文介绍PostgreSQL的安装和基本用法,供初次使用者上手.以下内容基于Debian操作系统,其他操作系 ...