json提取器
什么时候使用?
当确定响应信息为json格式的时候,优先选择用json提取器提取响应的信息(json提取器更快,更简单)
响应信息:通过responseBody去看
注意:get方法请求体是没有json格式的
JSON Path expression(json表达式) 写法
$.路径.二级路径 -----绝对路径
$..末梢节点的名称 -----相对路径(推荐)
一个json提取器,多个提取式的写法
注意:多个提取之间用分号分割,变量名,表达式和缺省值数量是一样的都需要写对应的数量。
Match No.(0 for Random) 这个入如果要写,也要和表达式一样的数量,比如写的$.msg;$.data.token则这里就要写-1;-1 代表取msg和token提取的全部结果
json提取器的用法
在取样器上右键 > 添加后置处理器 > 添加json提取器
(json提取器,添加到取样器下面,就是只对取样器的结果提取,作用域在取样器下;也可以手动托拽在取样器下面,也就是说像提取哪个接口的参数就放在哪个接口下面)
json提取器填写介绍
Names of created variables: 定义一个变量名称,后面使用 ${变量名} 调用 ---必填
JSON Path expression : 填写json表达式,用来提取接口返回所需要的值 ---必填
Match No.(0 for Random): 表示取值是第几个匹配结果,因为有可能表达式会匹配到多个值。0表示随机,-1表示全部,1代表第一个,2代表第二个,以此类推。(非必填项) -----json中的key:value键值对顺序是无序的,所以有可能不会每次都是一样的
Compute concatenation var(suffix_ALL) :勾选后,如果匹配到多个结果,JMeter会使用,将他们连接起来,存储在的变量中,会自动命名为<variable name>_ALL
Default Values: 缺省值,没有提取到参数的话就用这个
正则表达式提取器
什么时候用?
session不会再响应信息里面,所以使用正则表达式提取器
如果想要提取请求中的内容,想用的头部内容,或者格式非json的优先选择正则提取器
正则提取式写法
左边界(正则式)有边界 万能正则式: .*?
如:token":"(.*?)"
左边界token":" 右边界 " ---都找最小的左右边界 "token":"(.*?)" 正一样也可以
注意:除换行符之外,都可以匹配
一个正则提取器只能写一个正则提取式,如果要写多个就只能在重新添加一个正则表达式提取器
常用正则式
" . " 匹配除换行符以外的所有字符
" * " 匹配0次或多次 ----贪婪
" + " 匹配1次或多次 ----懒惰
" ? " 匹配0次或1次
"\d \d+" 匹配数字[0-9] 有+号的就是:至少匹配一个数字
" \w \w+ " 英文字母和数字【a-z A-Z 0-9】 有+号的就是:至少匹配一个数字
一个正则提取器只能写一个正则提取式
注意:一个正则提取器多个提取式时,后续接口需要调用该值时,需要用:变量名_g数字 来写入
关联
前面接口的动态数据信息,提取出来的值,作为后面接口的传入参数
当接口使用cookie来管理信息时,请使用cookie管理器,而且第一次使用时,不需要修改任何cookie管理器信息
只要使用到登录接口,以及登录之后才能使用的接口,就添加cookie管理器。不管你的项目是否使用cookie。 如果是token,加了cookie管理器没错,不加也没错