json提取器

什么时候使用?

当确定响应信息为json格式的时候,优先选择用json提取器提取响应的信息(json提取器更快,更简单)

响应信息:通过responseBody去看

注意:get方法请求体是没有json格式的

JSON Path expression(json表达式) 写法
$.路径.二级路径 -----绝对路径


java 正则表达式提取 json 正则提取json字段_java 正则表达式提取 json


$..末梢节点的名称 -----相对路径(推荐)


java 正则表达式提取 json 正则提取json字段_json_02


一个json提取器,多个提取式的写法

注意:多个提取之间用分号分割,变量名,表达式和缺省值数量是一样的都需要写对应的数量。

Match No.(0 for Random) 这个入如果要写,也要和表达式一样的数量,比如写的$.msg;$.data.token则这里就要写-1;-1 代表取msg和token提取的全部结果


java 正则表达式提取 json 正则提取json字段_jmeter_03


json提取器的用法

在取样器上右键 > 添加后置处理器 > 添加json提取器

(json提取器,添加到取样器下面,就是只对取样器的结果提取,作用域在取样器下;也可以手动托拽在取样器下面,也就是说像提取哪个接口的参数就放在哪个接口下面)

json提取器填写介绍

Names of created variables:

JSON Path expression :

Match No.(0 for Random): 表示取值是第几个匹配结果,因为有可能表达式会匹配到多个值。0表示随机,-1表示全部,1代表第一个,2代表第二个,以此类推。(非必填项) -----json中的key:value键值对顺序是无序的,所以有可能不会每次都是一样的

Compute concatenation var(suffix_ALL) :勾选后,如果匹配到多个结果,JMeter会使用,将他们连接起来,存储在的变量中,会自动命名为<variable name>_ALL

Default Values:


java 正则表达式提取 json 正则提取json字段_java 正则表达式提取 json_04


java 正则表达式提取 json 正则提取json字段_json_05


正则表达式提取器

什么时候用?

session不会再响应信息里面,所以使用正则表达式提取器

如果想要提取请求中的内容,想用的头部内容,或者格式非json的优先选择正则提取器

正则提取式写法

左边界(正则式)有边界 万能正则式: .*?

如:token":"(.*?)"

左边界token":" 右边界 " ---都找最小的左右边界 "token":"(.*?)" 正一样也可以

注意:除换行符之外,都可以匹配

一个正则提取器只能写一个正则提取式,如果要写多个就只能在重新添加一个正则表达式提取器


java 正则表达式提取 json 正则提取json字段_json_06


java 正则表达式提取 json 正则提取json字段_java 正则表达式提取 json_07


常用正则式

" . " 匹配除换行符以外的所有字符

" * " 匹配0次或多次 ----贪婪

" + " 匹配1次或多次 ----懒惰

" ? " 匹配0次或1次

"\d \d+" 匹配数字[0-9] 有+号的就是:至少匹配一个数字

" \w \w+ " 英文字母和数字【a-z A-Z 0-9】 有+号的就是:至少匹配一个数字

一个正则提取器只能写一个正则提取式

注意:一个正则提取器多个提取式时,后续接口需要调用该值时,需要用:变量名_g数字 来写入


java 正则表达式提取 json 正则提取json字段_Powered by 金山文档_08


关联
  • 前面接口的动态数据信息,提取出来的值,作为后面接口的传入参数
  • 当接口使用cookie来管理信息时,请使用cookie管理器,而且第一次使用时,不需要修改任何cookie管理器信息
  • 只要使用到登录接口,以及登录之后才能使用的接口,就添加cookie管理器。不管你的项目是否使用cookie。 如果是token,加了cookie管理器没错,不加也没错