JMETER之JSON提取器

女生的网名这么多〃 提交于 2021-01-23 23:34:02

  本次分享大纲


     

  1. JSON提取器使用场景

  2. JSON提取器使用说明

  3. JSON提取器语法详解

  4. 实例分享

  5. JSON提取器总结

  6. 思考



  使用场景


     

上一个接口的返回值作为下一个接口的传参?怎么实现:

  • JMETER之正则表达式

  • JMETER之JSON提取器



  使用说明


     

在某个HTTP请求右键添加后置处理器,选择JSON提取器,如下图所示:


  • Applyto(应用范围)

Main sampleand sub-samples:应用于主sample及子sample

Main sample only:默认的是这个,应用于主sample

Sub-samples only:应用于子sample


JMeterVariableName to use:应用于变量命名的内容


  • Names of created variables:你后续要引用的参数名称

  • JSONPathExpressionjson表达式

  • MatchNo.(0or Random):

匹配的值是哪一个,默认不填写是获取符合条件的第一个,这个与正则表达式的类似(0为随机、N为获取第N个、-1获取所有)

  • Computecomcatemationvar(suffix_ALL)

    如果发现许多结果,插件将使用“,”分隔符将它们连接起来,

并将其存储在名为<variable name>_ALLvar中。

  • DefaultValues:当没有获取到参数值时的默认值


提取返回值中的username参数值示例:


  语法


     

$.你要提取的参数



  实例分享


     

{
"code":200,
"totals": 1,
"list": [
{
"insertTime":"2019-01-14 23:34:28.0",
"password":null,
"insertUid":null,
"mobile":"16868899222",
"updateTime":null,
"del":false,
"id":1558,
"job":"false",
"roleNames":"超级管理员",
"email":"nishuangyi@sina.com",
"username":"14502039931"
}
]
}

1.我想提取code参数值:

JSON Path Extractor:$.code


2.提取username参数值:

JSON Path Extractor:$.list[0].username


 语法总结



     

1、如果提取的参数不存在父级?

$.你要提取的参数名


2、提取的参数存在父级

$.你要提取的参数名的父亲.你要提取的参数名


3、如果提取参数的父级存在父级

$.你要提取的参数名的父亲的父亲(爷爷).你要提取的参数名的父亲.你要提取的参数名


4、参数如果是数组?

$.你要提取的参数参数[N]

以下标的形式取值,0代表取的数组中第一个值,1代表取的是数组中第二个值,N代表取的数组中第N+1个值


5、如何判断父子关系?

{
"code":200,
"totals": 1,
"list": [
{
"insertTime":"2019-01-14 23:34:28.0",
"password":null,
"insertUid":null,
"mobile":"16868899222",
"updateTime":null,
"del":false,
"id":1558,
"job":"false",
"roleNames":"超级管理员",
"email":"nishuangyi@sina.com",
"username":"14502039931"
}
]
}

注:

1.缩进既是儿子

例如listusername父级

usernameemail同辈关系


2.父级永远在子级前面

先有爸爸,才有儿子


3.对于初学者而言,JSON提取器比正则表达式更容易理解。


  验证



     

通过Debug Sampler打印出json提取器所提取的参数值



  思考



     

留个作业题:如何提取多个返回值的参数


如果有不懂的,欢迎在知识星球提问,或者加入我们的Jmeter学习群





本文分享自微信公众号 - FelixNi测试总结分享(ShareTest2018)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!