• JMeter在里面Json数据处理方法


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

     Json作为一种数据交换格式在网络开发。特别是AjaxRestful架构中应用的越来越广泛。而ApacheJMeter也是较受欢迎的压力測试工具之中的一个,可是它本身没有提供对于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文件里的XPathJSONPath能够使用简单的表达式来操作Json对象。

    JSON Path Extractor是一个开源的添加了post处理器的插件,能够将该插件的Lib文件复制到JMeterlib文件夹下就可以。

    而上文中提及的须要定位的数据能够使用例如以下的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该语言的灵活性可以进一步发展。

  • 相关阅读:
    android ListView加载不同布局
    实例演示如何在spring4.2.2中集成hibernate5.0.2并创建sessionFactory
    【翻译】Ext JS最新技巧——2015-10-21
    Android Studio下使用NDK的流程
    Android Studio JNI javah遇到的问题
    题解报告:hdu 1062 Text Reverse
    题解报告:hdu 1039 Easier Done Than Said?
    ACM_逆序数(归并排序)
    hdu 1556 Color the ball(区间修改,单点查询)
    hdu 1754 I Hate It(线段树)
  • 原文地址:https://www.cnblogs.com/hrhguanli/p/4881442.html
Copyright © 2020-2023  润新知