高级性能测试系列《15.一个正则提取器,写多个正则提取式》

2022-06-21 15:39:03 浏览数 (1)

目录

  • 一、后置处理器
    • 1.json提取器
    • 2.正则提取器
    • 3.一个正则提取器,写多个正则提取式
  • 二、举例说明
    • 1.使用正则表达式提取请求的参数的时候,上面的类型选的是哪个?
    • 2.一个正则提取器,写多个正则提取式,并使用提取出来的值
    • 3.正则表达式是匹配多个结果吗?
  • 三、记事本里使用正则表达式进行匹配

一、后置处理器:

  • 1.json提取器
    • 如果你的响应体json格式,那么优先选用json提取器。
    • 如果想要提取请求中的内容(请求url、请求里面的某个参数、请求的头部内容)、响应的头部内容、或者响应体格式非json格式,这个时候优先选择用正则提取器
    • json提取式:.节点名称.二级节点名称 ----- 绝对路径。..末梢节点名称 -------相对路径(推荐)。
    • 一个json提取器写多个json提取式。 多个之间,用英文分号;作为分割符。 此时,一定要写默认值(default value),否则就会报错。
  • 2.正则提取器:
    • 要检查的请求的响应字段。
    • 正则表达式中引用响应数据中的变量名称。
    • 正则表达式:左边界(正则式)右边界。
    • 模板:数字对应正则式。例如:1
    • 引用名称:随便取一个变量名称。
    • 万能正则式:.*? ====除换行符不能匹配,其它的都能匹配。
    • . 匹配除换行符以外的所有字符(包括中文、韩文、日文等)。
    • 匹配1次或多次(至少要匹配一次)。
    • d 相当于[0-9],来匹配数字的。加上 ,是至少要匹配一个的意思。
    • w 相当于[a-zA-Z0-9_],来匹配英文字母和数字的字符串。
    • 正则表达式中[] {}有特殊的用途。
    • 正则表达式可以用于日常日志、文本中查找信息。
  • 3.一个正则提取器,写多个正则提取式:
    • 分隔符用(.*?)

绝大多数的正则表达式都是基于perl语言的,所以大多数语言里面的正则表达式都是通用的。

但是也存在一定的差异,比如javapython语言里面的正则表达式就有一些差异。

现在讲的是基于perl语言的正则表达式,所以这个和java中的正则表达式是一样的。

这个基于perl语言的正则表达式和python语言里面的正则表达式有些小区别。

参考文章:高级性能测试系列《14.响应的提取--json提取器:一个json提取器写多个提取式、正则提取器:万能正则式怎么用?》更正该文章结尾的最后2行常用正则式为:d d [0-9] ww 英文字母或数字的字符串

二、举例说明

1.使用正则表达式提取请求的参数的时候,上面的类型选的是哪个?

url地址里面提取所需的请求的参数值:

http请求

配置正则表达式提取器

type=(.*?)&

成功提取请求的参数值

2.一个正则提取器,写多个正则提取式,并使用提取出来的值

注意: 写正则表达式的时候,英文双引号可别标反了。" "

1)在一个正则提取器中,写多个正则提取式

正则表达式:gqid":"(.*?)"(.*?)token":"(.*?)"

模板:13

匹配数字是0,意思是随机取了1个

运行结果

2)使用提取出来的值

运行结果

1代表g1,3代表g3。

3.正则表达式是匹配多个结果吗?

写多个的时候,模版中间的$不能少。

检查响应字段

例1:正则表达式中引用响应数据中的变量名称;匹配数字是-1,意思是取所有的值

正则表达式:id":(d ),(.*?)typeDesc":"(.*?)"

例1:运行结果

例2

例2:运行结果

三、记事本里使用正则表达式进行匹配

用notepad 打开代码文件,使用正则表达式进行匹配。

1.用于文本的查找:

要选择正则表达式哦

2.文本的替换:

所以,正则表达式不局限于jmeter中使用。

脚本链接:

链接:https://pan.baidu.com/s/1G7HRDSfrk8Y25ltzO2CiEg?pwd=1234 提取码:1234

0 人点赞