JSON

在JMeter中对Json数据的三种处理方法

字号+ 作者:H5之家 来源:H5之家 2017-03-26 17:03 我要评论( )

课课家:作为一名软件研发者,我们都知道Jmeter是一款强大的图形界面压力测试工具,但是你知道在JMeter中对Json数据的三种处理方法吗?如果不知道,那就由小编一

  作为一名软件研发者,我们都知道Jmeter是一款强大的图形界面压力测试工具,但是你知道在JMeter中对Json数据的三种处理方法吗?如果不知道,那就由小编一一为你讲述吧。

  Json作为一种在网络开发的数据交换格式,它的应用的越来越广泛,特别是Ajax与Restful的两种架构中。而Apache的JMeter也是比较受欢迎的压力测试工具之一,但它本身是没有提供对于Json数据的响应处理的。小编在本文中假设需要从HTTP的响应头中返回的Json格式的数据流中抽取某些特定的数据。

  它的数据格式如下:

  {

  "name":"Simpsonsfamily",

  "members":

  [{"firstName":"Homer","lastName":"Simpson"},

  {"firstName":"Marge","lastName":"Simpson"},

  {"firstName":"Bart","lastName":"Simpson"},

  {"firstName":"Lisa","lastName":"Simpson"},

  {"firstName":"Maggie","lastName":"Simpson"}]

  }

  下面小编会使用不同的方法来进行数据的抽取工作。

  1.正则表达式提取

  JMeter在安装了正则表达式插件之后,可以按照固定的格式从字符串中提取数据,而本例中的正则表达式如下所示:

  "firstName":"(.+?)"

  使用了该表达式之后会返回所有服从表达式的字符串,但是只有一个表达式是我们所要关注的。可以使用$1$来作为模板,而3则会返回第三个数据。如图所示:

正则表达式提取

  当偶尔需要对Json数据进行处理时,正则表达式是一个合适的选择,它的一个优势在于JMeter本身就内置了Json处理模块。但是,阅读处理正则表达式却是比较复杂的,特别是对于某些复杂的Json数据。

  2.JMeterJSON插件

  JMeterJSON插件是另一种处理Json数据的方法是使用JMeter的插件,该插件可以使用JSONPath来获取JSON数据中特定位置的数据。它类似于XML文件中的XPath,JSONPath可以使用简单的表达式来操作Json对象。JSONPathExtractor是一个开源,增加了post处理器的插件,可以将该插件的Lib文件拷贝到JMeter的lib目录下即可。

  而上文中所提及的需要定位的数据可以使用如下的JSONPath进行描述:

  $.members[2].firstName

  在JMeter中,只需要从PostProcessor菜单中打开JSONPathExtractor然后输入变量名与默认值即可,如图所示:

JMeterJSON插件

  JSONPath表达式较短并且易于阅读,能够有效提高测试脚本的易维护性,该插件并不随着标准的JMeter一起安装。

  3.BeanShellPostProcessor

  最后一种方法是BeanShellPostProcessor,它即是借用了JMeter的对于BeanShell支持的特性,BeanShell是一个轻量级的面向Java的脚本语言。BeanShellPostProcessor允许使用标准的Java语法来处理Json数据,使用方法如图所示:

BeanShellPostProcessor

  总结

  小编在本文中列举出了三种可用的从Json格式的返回值中提取数据的方法,正则表达式的处理方法对于简单的Json格式的数据的快速标准化非常占优势。而JsonPath插件可用于创建能够被维护修改的脚本,但就需要额外的插件用来安装工作。而最后的带JSON库的BeanShell确实非常详细并且可以依赖于Java语言的灵活性从而进行进一步的开发。

  小编结语:

  相信你看到这里,也已经知道了JMeter中对Json数据的三种处理方法了吧,希望能帮到你。当然,这只是小编的一些个人看法,仅供参考。

  课课家会一直更新软件研发的文章,请继续关注我们的网站:课课家教育。谢谢!

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • 学习使用JMeter进行RESTful API测试的有效技术和最佳实践(2)

    学习使用JMeter进行RESTful API测试的有效技术和最佳实践(2)

    2016-11-12 14:00

网友点评
i