jmeter自带后置处理器:正则表达式提取器,可以用来提取接口响应里的信息,给予后续接口传参用。

例如要提取响应结果里的token字段及sex字段(响应内容为:

"token":"83EEAA887F1D2F1AA1CDA9E197810992","sex":0,"userName":"12548650"),提取器如下设置,

正则表达式提取器说明:

Apply to:应用范围(一般就选择默认的Main sample only),就算有重定向,一般也是提取最终那个请求的接口。

要检查的响应字段:样本数据源。

主体: 接口响应主体内容,一般要提取普通http响应结果的数据,都勾选这个。

信息头:响应头的所有内容。

Request Headers:请求头的所有内容。

  url:是对sample的url进行匹配,也就是查看结果树里请求内容的第一行url,不包含data里的请求参数(即只能匹配protocol(协议)+host+path+querystring,如:https://www.baidu.com/index.php?tn=monline_3_dg)。

  响应代码:http响应代码,如101,200,302,404,501等。

  响应信息:http响应代码对应的响应信息,例如:OK, Found(HTTP/1.1 200 Ok;HTTP/1.1 302 Found)。

引用名称:其他地方引用时的变量名称,名称只能是一个,引用方法:${token}。如图

正则表达式:数据提取器,一般简单的通用语法就是:左边界(.*?)右边界,左右边界就是为了能准确定位到想匹配的内容,如最上面图的"token":"(.*?)","sex":(.*?),"userName", 其中"token":"以及","sex": 和,"userName"这3个就是左右边界,(.*?) 是替换了想要提取的内容,里面的'?'为非贪婪匹配,(非贪婪模式就是说在遇到第一个右边界后就停止匹配,这样就可以精确拿到想要的内容)。建议均使用非贪婪匹配,除非特殊情况。

模板:对应正则表达式提取器类型,样式为:$n$。若模板为:$0$,则为整个表达式匹配到的内容,就是包括小括号内跟小括号外的内容,即("token":"83EEAA887F1D2F1AA1CDA9E197810992","sex":0,"userName")。若模板为:$1$,则对应正则表达式中的第一个(.*?)所匹配的内容,即(83EEAA887F1D2F1AA1CDA9E197810992) ,若模板为:$2$,则对应正则表达式中的第二个(.*?)所匹配的内容,即(0),若模板为$1$$2$,则把2个(.*?)所匹配的内容拼接起来,即(83EEAA887F1D2F1AA1CDA9E1978109920)。模板是可以自由组合的,后续案例中再介绍。

匹配数字:正则表达式匹配数据的最终结果可以看做一个数组,匹配数字即可看做是数组的第几个元素。当为 0 时,随机返回匹配的数据。当为 1 时,表示返回匹配结果数组的第一个元素。当为负数(-1,-2,-100都可以)时,表示返回全部元素,并且同时会返回一个元素总数的变量token_matchNr,在引用时:通过${token_1}的方式来取第1个匹配的内容,${token_2}来取第2个匹配的内容。

缺省值:匹配失败时的默认值。通常用于后续的逻辑判断,建议使用一些特殊含义的,比如0,NULL,ERROR等。

正则测试:

可以直接在察看结果树里选择Regexp正则测试模式来测试正则是否写的正确。

正则结果查看

如何查看提取到了想要的内容呢,这里就需要提到另外一个后置处理器:Debug PostProcessor

该元件就为调试所用,一般用于查看变量值,添加方法同正则表达式提取器。

附正则表达式说明:

通俗点来讲正则表达式就是用来匹配字符串的公式。比如正则表达式中\d+ 是来匹配1个或更多连续的数字。更多可自行百度了解

万能表达式:key="value"获取value可用万能表达式:key="([^"]+)" //value里面有任何符号都可以取出

<a href="ForEachTest2.jmx">ForEachTest2.jmx</a>同样可以使用万能表达式<a href="([^"]+)"来取出来“ForEachTest2.jmx”

举例说明:

例子贴一下

先贴一下模板的例子,这里会匹配到一个字符串,区别就在于这里是2个正则,匹配的结果大概是

(1)$1$$2$,因为写了2个,这里直接调用${name}的结果是李华一 1,   ${name_g1}是李华一   ${name_g2}是1

name=李华一1
name_g=2
name_g0=name":"李华一","sex":1,
name_g1=李华一
name_g2=1

(2)选择$1$的写法,这时候${name}=李华一  ${name_g1}=李华一 ${name_g2}=1

name=李华一
name_g=2
name_g0=name":"李华一","sex":1,
name_g1=李华一
name_g2=1

(3)接着看下$2$会怎样,猜测是${name}=1 ${name_g1}=李华一 ${name_g2}=1,果然正确

name=1
name_g=2
name_g0=name":"李华一","sex":1,
name_g1=李华一
name_g2=1

通过以上的栗子和截图彻底明白了$1$$2$是啥意思了

下面是匹配数字选项的例子

(1)-1代表全部取值

(2)1代表取第一个值

(2)2代表取第二个值

(3)0代表取随机值,填写0的时候取值是随机的,就不贴图了

4怎样测试正则表达式?即怎样验证你写的正则表达式提取器内容是否正确

添加以后运行就可以debug

摘自:https://www.cnblogs.com/xueli/p/7405258.html?utm_source=itdadao&ut

jmeter 正则表达式学习--使用详解相关推荐

  1. 深度学习优化函数详解(5)-- Nesterov accelerated gradient (NAG) 优化算法

    深度学习优化函数详解系列目录 深度学习优化函数详解(0)– 线性回归问题 深度学习优化函数详解(1)– Gradient Descent 梯度下降法 深度学习优化函数详解(2)– SGD 随机梯度下降 ...

  2. dreamweaver 正则表达式为属性值加上双引号_PHP正则表达式核心技术完全详解 第2节...

    PHP 正则表达式核心技术完全详解 第2节 接上一节内容 1 普通字符作为原子 /5/ 用于匹配字符串中是否有5这个字符出现 /php/ 用于匹配字符串中是否有PHP字符串出现 /  / 匹配空字符串 ...

  3. 站长在线Python精讲:Python中正则表达式的语法详解

    欢迎你来到站长在线的站长学堂学习Python知识,本文学习的是<Python中正则表达式的语法详解>.本知识点主要内容有9点:行定位符.元字符.限定符.字符集.排除字符.选择字符.转义字符 ...

  4. Jmeter压测工具详解

    Jmeter压测工具详解 1. Jmeter概述 1.1 Jmeter简介 1.2 Jmeter适用场景 2. Jmeter安装配置 2.1 下载安装 2.2 环境配置(可不配) 2.3 Jmeter ...

  5. 【深度学习】详解Resampling和softmax模型集成

    [深度学习]详解Resampling和softmax模型集成 文章目录 1 图像重采样1.1 次级采样(sub-sampling)1.2 高斯金字塔(Gaussian pyramids)1.3 上采样 ...

  6. Java JUC学习 - ConcurrentLinkedDeque 详解

    Java JUC学习 - ConcurrentLinkedDeque 详解 0x00 前言 如何实现并发程序,对于Java以及其他高级语言来说都是一件并不容易的事情.在大一上学期的时候,我们学习了链表 ...

  7. php add action,WordPress学习——add_action()详解

    add_action() 是 WordPress 核心代码执行期间或特定事件发生时启动的钩子函数. 插件可以指定使用 Action API 在这些特定点上执行其一个或多个PHP函数.简单来说就是通过 ...

  8. EditPlus正则表达式替换字符串详解

    EditPlus正则表达式替换字符串详解 发布时间:April 8, 2007 分类:Regular <PHP 实现多服务器共享 SESSION 数据> <利用javascript在 ...

  9. 深度学习优化函数详解(5)-- Nesterov accelerated gradient (NAG)

    深度学习优化函数详解系列目录 本系列课程代码,欢迎star: https://github.com/tsycnh/mlbasic 深度学习优化函数详解(0)-- 线性回归问题 深度学习优化函数详解(1 ...

最新文章

  1. vue小项目总结与笔记【五】——一个轮播图插件vue-awesome-swiper
  2. imageview不显示图片
  3. java字符函数_java字符串函数用法汇总
  4. Vue第二部分(4): 嵌套路由和路由传参
  5. 阿里云服务器ECS Ubuntu18.04 首次使用配置教程(图形界面安装)
  6. 计算机360u盘删除,怎么关闭360U盘小助手
  7. JS同步执行延时函数的实现
  8. python 12306抢票脚本_Python 12306抢火车票脚本
  9. 计算机睡眠功能命令,使用WINDOWS命令行进入睡眠模式
  10. 案例|工业物联网解决方案•工业互联网云平台
  11. zotero文献管理器及其使用姿势(不定时更新)
  12. python中char是什么意思_MySQL中char和varchar的区别是什么
  13. python学习(二)配置开发IDE(windows)
  14. echars显示地图
  15. [转载] 毕业半年,我在富士康的日日夜夜
  16. 定积分应用——求旋转体体积
  17. 机原自检——第4章 平面机构的力分析
  18. 点云孔洞定位_孔洞修补研究总结
  19. 外贸知识通俗教程(上)
  20. Java API操作ES

热门文章

  1. 2022“高考记忆” 已打包完成,请查收!
  2. 读万卷书,写万行代码
  3. 电脑重装系统后安全中心有个黄色感叹号如何处理
  4. Kotlin let with run apply also filter if常规用法笔记
  5. 防范勒索蠕虫病毒入侵,3分钟教你快速关闭高危端口445!
  6. (27)STM32——光敏传感器实验笔记
  7. 干细胞技术是不是骗局
  8. 珠海:IT应用向政府投资行业集中
  9. 一站解决:如何用cd-hit去低于30%的冗余(资源见百度云链接)
  10. XX is not defined import impor了还是not defined ant design组件import还是not defined