jmeter正则表达式的使用

 更新时间:2021年11月29日 10:09:32   作者:汪汪888888  
在jmeter中,可以利用正则表达式提取器来帮助我们完成这一动作,本文就详细的介绍一下应该如何使用,感兴趣的可以了解一下

运用Jmeter正则提取器,可以从请求的响应结果中取到需要的内容,从而实现关联。

关联是请求与请求之间存在数据依赖关系,需要从上一个请求获取下一个请求需要回传回去的数据

在查看结果树中找到相应数据,我们需要取得actionId,buttonName

需要选中请求右键,添加-后置处理器-正则表达式提取器(需要在哪个请求的响应数据中拿到,就在哪个请求上添加。后置处理器的意思是请求会先执行,再从响应数据中取值)

如上图,正则表达式的属性就是这样,先简单介绍下字段什么意思,再举例说明

名称: 自己写一个就好

Apple to:和要检查的相应字段,一般都默认,主要是针对响应数据中的值去处理,如有其它需要,可以参考jmeter说明

  • 引用名称:自己定义的变量名称,后续请求将要引用到的变量名,如填写的是:actionId,后面的引用方式是${actionId}
  • 正则表达式:提取内容的正则表达式,相当于lr中的关联函数
  • 【"()"    括起来的部分就是需要提取的,对于你要提的内容需要用小括号括起来】
  • 【".":匹配除了换行符以外的任何字符】
  • 【"*"(贪婪)   重复零次或更多 例如"aaaaaaaa" 匹配字符串中所有的a  正则: "a*"   会出到所有的字符"a"】
  • 【"+"(懒惰)   重复一次或更多次 例如"aaaaaaaa" 匹配字符串中所有的a  正则: "a+"  会取到字符中所有的a字符,  "a+"与"a*"不同在于"+"至少是一次而"*" 可以是0次】
  • 【"?"(占有)   重复零次或一次  例如"aaaaaaaa" 匹配字符串中的a 正则 : "a?" 只会匹配一次,也就是结果只是单个字符a】
  • 【"*?"   重复任意次,但尽可能少重复  例如 "acbacb"  正则  "a.*?b" 只会取到第一个"acb" 原本可以全部取到但加了限定符后,只会匹配尽可能少的字符 ,而"acbacb"最少字符的结果就是"acb" 】
  • 【"+?"  重复1次或更多次,但尽可能少重复,与"*?" 一样,只是至少要重复1次】还有分组的情况,常用的就这两种,其它的可以再自行百度
  • 【"(?=exp)"  匹配exp前面的位置】
  • 【"(?<=exp)"  匹配exp后面的位置】
  • 模板:用$$引用起来,如果在正则表达式中有多个正则表达式(多个括号括起来的),则可以是$2$,$3$等等,表示解析到的第几个值给actionId。例如:$1$表示匹配到的第一个值
  • 匹配数字:0代表随机取值,-1代表所有值,此时提取结果是一个数组,其余正整数代表第几个匹配的内容提取出来。如果匹配数字选择的是-1,还可以通过${actionId}的方式来取第1个匹配的内容,${actionId}来取第2个匹配的内容。 
  • 缺省值:正则匹配失败时,取的值

想要知道正则表达式是否正确,可以在请求后加入调试取样器

右键-添加-取样器-调试取样器

响应数据:[{"actionId":"save_G_1_zdhflow.1","buttonName":"保存"},{"actionId":"G_1_zdhflow.1","buttonName":"商务技术审核"}]

没有特殊的情况用(.*?)就可以解决所有问题,给大家举例

我们要取得actionId的值

1、正则表达式中复制,"actionId":"save_G_1_zdhflow.1","buttonName"

2、把save_G_1_zdhflow.1替换成(.*?)就可以了

匹配数字写成1,就是第一次匹配,因此得到的值 save_G_1_zdhflow.1

如果有修改匹配数字为2 ,就是G_1_zdhflow.1

我要匹配actionId,还要匹配buttonName怎么办?

1、正则表达式复制 "actionId":"save_G_1_zdhflow.1","buttonName":"保存"}

2、save_G_1_zdhflow.1和保存替换成(.*?)

3、模板要改成$1$$2$,因为有两个(.*?)而且这两个值都要拿到

就可以将actionId_g1和actionId_g2将变量传递下去

注意喽,如果我要把两个都取出来怎么办嘞,把匹配数字写成-1 即可 

结果如下图

特例:

如果有响应数据只有数字,譬如返回的是个100, 就不能用.*?,因为?会取最小值,所以去掉就好,改为 (.*)

到此这篇关于jmeter正则表达式的使用的文章就介绍到这了,更多相关jmeter正则表达式内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java爬取豆瓣电影数据的方法详解

    Java爬取豆瓣电影数据的方法详解

    这篇文章主要介绍了Java爬取豆瓣电影数据的方法,结合实例形式详细分析了Java爬取豆瓣电影数据相关原理、操作步骤、实现技巧与注意事项,需要的朋友可以参考下
    2020-04-04
  • Java中的synchronized 优化方法之锁膨胀机制

    Java中的synchronized 优化方法之锁膨胀机制

    这篇文章主要介绍了Java中的synchronized 优化方法之锁膨胀机制,锁膨胀机制是提升 synchronized 性能最有利的方法之一,下面我们就来看看什么事锁膨胀及锁膨胀的各种细节
    2022-05-05
  • 在Java开发中无法绕开的SpringBoot框架详解

    在Java开发中无法绕开的SpringBoot框架详解

    SpringBoot是一个基于Spring框架的快速开发框架,它的出现极大地简化了Spring应用的开发流程,SpringBoot是一个快速开发的框架,它提供了一种快速构建应用程序的方式,本文给大家介绍在Java开发中无法绕开的框架:SpringBoot,感兴趣的朋友一起看看吧
    2023-09-09
  • 详谈Java中Object类中的方法以及finalize函数作用

    详谈Java中Object类中的方法以及finalize函数作用

    下面小编就为大家带来一篇详谈Java中Object类中的方法以及finalize函数作用。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-04-04
  • springboot Minio功能实现代码

    springboot Minio功能实现代码

    这篇文章主要介绍了springboot Minio功能实现,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-07-07
  • SpringBoot整合Redis的实现示例

    SpringBoot整合Redis的实现示例

    本文主要介绍了SpringBoot整合Redis的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-01-01
  • 详解 Java静态代理

    详解 Java静态代理

    这篇文章主要介绍了 Java静态代理的相关资料,帮助大家更好的理解和学习Java代理的知识,感兴趣的朋友可以了解下
    2020-08-08
  • m1 Mac设置多jdk版本并动态切换的实现

    m1 Mac设置多jdk版本并动态切换的实现

    本文主要介绍 Mac 下如何安装 JDK 并且多版本如何切换,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-08-08
  • 配置Ant执行Jmeter脚本过程详解

    配置Ant执行Jmeter脚本过程详解

    这篇文章主要介绍了配置Ant执行Jmeter脚本过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-09-09
  • SpringBoot集成百度AI实现人脸识别的项目实践

    SpringBoot集成百度AI实现人脸识别的项目实践

    本文主要介绍了SpringBoot集成百度AI实现人脸识别的项目实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-05-05

最新评论