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

目录

  • 一、后置处理器

    • 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]+\w\w+ 英文字母或数字的字符串

二、举例说明

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

f3e63c80d3c0d2f08b80aa25f6acd61a.png
url地址里面提取所需的请求的参数值:
74ccf283ff98cc60d3465e5eb17b3866.png
http请求
086a182a157f198966ce50c567f40ca3.png
配置正则表达式提取器

type=(.*?)&

c628584c0dd6badc34df5197bfe58d01.png
成功提取请求的参数值

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

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

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

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

模板:$1$$3$

9574c4297b4716bd9dc0db1e38436c7a.png
匹配数字是0,意思是随机取了1个
108fb53b142d07f1259b6245cf7c1c38.png
运行结果
2)使用提取出来的值
9d7d665b80bce69151ada9977cc5a0f7.png f891b7804bb61fbe8db5eaba3eaac335.png b321b360e181728bbd5949dfe323ee7f.png
运行结果

$1$代表g1,$3$代表g3。

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

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

2aa9418654df7bccf04b6f39b2157ec1.png
检查响应字段
6ca8f03c1d70fc0e92bd67974d1ba464.png
例1:正则表达式中引用响应数据中的变量名称;匹配数字是-1,意思是取所有的值

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

d054afa135cb80b42cac48e604d641bb.png
例1:运行结果
2116eabe4fa9f0245b38e42475303274.png
例2
f0f01c2b2db4f94443ed0f9a6e98be83.png
例2:运行结果

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

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

1.用于文本的查找:

cb1bc2ff15411b9e977b200889a4eb66.png
要选择正则表达式哦

2.文本的替换:

9bedf7702719bdab28bacfde9e3fea9d.png

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

脚本链接:

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


文章中除标明“图片来自网络”的图片,皆为小编本人所画所截图,计算机知识都一样,如有雷同,纯属巧合。

欢迎关注 “清菡软件测试”,进群加v:qhtester,备注:学校(公司名)+姓名(昵称),否则不予通过,感谢点赞与分享!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

清菡软件测试

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值