jmeter中json提取器和正则表达式提取器的用法(包含一个提取器多个提取式的用法)

  1. json提取器

  • 什么时候使用?

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

响应信息:通过responseBody去看

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

  • JSON Path expression(json表达式) 写法
$.路径.二级路径 -----绝对路径
jmeter中json提取器和正则表达式提取器的用法(包含一个提取器多个提取式的用法)_第1张图片
$..末梢节点的名称 -----相对路径(推荐)
jmeter中json提取器和正则表达式提取器的用法(包含一个提取器多个提取式的用法)_第2张图片
一个json提取器,多个提取式的写法

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

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

jmeter中json提取器和正则表达式提取器的用法(包含一个提取器多个提取式的用法)_第3张图片

  • 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会使用,将他们连接起来,存储在的变量中,会自动命名为_ALL

Default Values: 缺省值,没有提取到参数的话就用这个

jmeter中json提取器和正则表达式提取器的用法(包含一个提取器多个提取式的用法)_第4张图片
jmeter中json提取器和正则表达式提取器的用法(包含一个提取器多个提取式的用法)_第5张图片

  1. 正则表达式提取器

  • 什么时候用?

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

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

  • 正则提取式写法

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

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

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

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

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

jmeter中json提取器和正则表达式提取器的用法(包含一个提取器多个提取式的用法)_第6张图片
jmeter中json提取器和正则表达式提取器的用法(包含一个提取器多个提取式的用法)_第7张图片

  • 常用正则式

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

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

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

" ? " 匹配0次或1次

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

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

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

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

jmeter中json提取器和正则表达式提取器的用法(包含一个提取器多个提取式的用法)_第8张图片

  • 关联
  • 前面接口的动态数据信息,提取出来的值,作为后面接口的传入参数

  • 当接口使用cookie来管理信息时,请使用cookie管理器,而且第一次使用时,不需要修改任何cookie管理器信息

  • 只要使用到登录接口,以及登录之后才能使用的接口,就添加cookie管理器。不管你的项目是否使用cookie。 如果是token,加了cookie管理器没错,不加也没错

你可能感兴趣的:(jmeter,正则表达式,jmeter,json)