zoukankan      html  css  js  c++  java
  • jmeter中JSON Extractor用法

    一、基础信息

    所用jmeter版本:jmeter4.0

    所记录功能名称:JSON Extractor

    二、使用需求

    在对返回结果较复杂且为json结构的HTTP请求进行提取某一个值,以用作其他接口使用或者用来断言的等。

    三、使用方法

    1、添加步骤:选择线程组中的HTTP请求——右键“添加”——后置处理器——JSON Extractor

    图示如下:

    2、实例说明

    这一过程主要说明如何去写JSON Extractor匹配表达式以及如何去验证自己写的JSON Extractor是否正确

    {为了方便看,查看json的目录层级用抓包的结果展示,jmeter返回的不能收缩,不方便查看}

    √、我们使用JSON Extractor匹配第一层级内容message的值(为了方便查看把不需要的层级给收起来了 )。 抓包查看返回的结构如下:

    使用jmeter的查看结构树中的 json path expression可以测试自己所写的JSON Extractor是否正常。测试结果如下:

     √、我们使用JSON Extractor匹配第二层级内容total的值(为了方便查看把不需要的层级给收起来了 )。 抓包查看返回的结构如下:

     

    使用jmeter的查看结构树中的 json path expression可以测试自己所写的JSON Extractor是否正常。测试结果如下:

    √、我们使用JSON Extractor匹配第三层级内容id的值(为了方便查看把不需要的层级给收起来了 )。 抓包查看返回的结构如下:

    使用jmeter的查看结构树中的 json path expression可以测试自己所写的JSON Extractor是否正常。测试结果如下:

    注:关于用到的一个[0]会在后边说明。

    √、关于匹配一个数组的内容的用法。

    差不多了,不同层级的匹配实例说明的都已经说的可以了,照葫芦画瓢应该可以学会一些 。但是这个过程中还有一些需要说明的东西后边一起说明~~~。

    四、要学会用

    前一个过程说明了如何去写JSON Extractor匹配表达式以及如何去验证自己写的JSON Extractor是否正确,接下来这一个过程主要记如何去使用写的JSON Extractor匹配表达式。

    添加了两个HTTP请求,目录如下:

    实例:获取待出库单列表接口和查看待出库单详情接口,需要实现的过程是:先获取待出库单列表,然后使用JSON Extractor获取列表中其中一个stockOutId的值然后在第二个接口中去使用,并返回内容。

    再来看JSON Extractor中的内容,其实就是直接把在json path expression测试验证正确的表达式复制到这里来就行了。

    这咋突然感觉没啥可说得了呢,如何写已经描述了,如何用也图示了。

    把几个参数标注一下吧

    names of created Variable :保存的变量名,后面使用${变量名}引用,如:${stockOutId}

    JSON Path  expressions:上一步中调试通过的json path表达式,如果:$.data.list[0].stockOutId

    Match No.(0 for Random):匹配数字(0代表随机,1代表第一个,-1代表所有)

    Default Values:找不到时默认值,一般设置为NOT FOUND

    Compute concatenation var(suffix_ALL):是否统计所有,即将匹配到的所有值保存,名为“变量名_ALL”,使用场景需要获取的值有多个,后面需要对这一组数据进行操作。

    五、特别关注

    1、json串 []表示对象组成的数组,{}表示对象

    2、如果需要同时匹配多个值,可以如图设置

    3、在第二步中list[0]的用法说明:[0] 表示匹配第一个值,[1] 表示匹配第二个值,[*] 表示匹配所有的值,如图:

    4、JSON Extractor主要用于匹配返回数据结构为json的参数提取

     关于需要了解函数助手的用法的可以到这里:https://www.cnblogs.com/Zhan-W/p/10197677.html

    完事,先看吧!有啥疑问或者建议欢迎留言,我在补充,谢谢喽!

  • 相关阅读:
    黑马程序员——JAVA基础之主函数main和静态static,静态代码块
    黑马程序员——JAVA基础之final this.和super.的区别
    黑马程序员——JAVA基础之构造函数,构造代码块
    黑马程序员——JAVA基础之简述 类的封装
    黑马程序员——JAVA基础之简述面向对象,类,变量,匿名对象
    NBU Rman异机恢复Oracle
    Oracle的Rman差异增量备份
    rman备份出现ORA-19625
    查询rman备份信息常用指令
    RMAN-06172: no AUTOBACKUP found or specified handle is not a valid copy or piece
  • 原文地址:https://www.cnblogs.com/Zhan-W/p/10985816.html
Copyright © 2011-2022 走看看