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正则表达式内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • jmeter设置全局变量与正则表达式提取器过程图解

    接口测试中,很多接口都要带上登录后的token才能正常发送请求,这里记录一下登录获取token设置为全局变量供其他接口使用 登录后返回信息信息中会有一个token值,添加后置处理器中的正则表达式提取token,然后用后置处理器中的BeanShell PostProcessor设置token为全局变量 1.获取token值: 1.1.用fiddler抓包 1.2.F12查看接口信息 1.3.用jmeter登录查看 2.正则表达式提取token: 3.BeanShell PostProcessor设

  • jmeter-正则表达式实例讲解

    目录 实例1:从JDBC查询数据,并提取查询结果 实例3(简单):提取单个字符串 实例4(简单):提取多个字符串 实例5(简单):找到所有小数的数字,比如10.2 实例6(简单):找到所有小数点后的数字 实例7(简单):找到第一个有小数的数字 实例8(简单):找到所有小数的数字 正则表达式语法 过年前产假归来,jmeter很多知识生疏了,这两天打开jmeter摸索了几下,老了记不住,还是准备弄个jmeter系列随笔吧. 言归正传,使用jmeter时经常有这样的情况:一个完整的操作流程,需先完成某

  • Jmeter正则表达式提取器实现过程图解

    说到Jmeter正则表达式提取器的应用,就不得不说到关联.所谓关联,就是把应用中动态变化返回的数据获取到,把它保存为一个参数,提供给后面需要用到的地方进行使用. 如下面图中中userId.token在是关联参数, 方法一:正则表达式提取器 debug sampler 可以看到userId.token已被提取:引用写法为:${token},${userId} 方法二:JSON Extractor debug sampler 可以看到userId.token已被提取:引用写法为:${token},$

  • jmeter正则表达式的使用

    运用Jmeter正则提取器,可以从请求的响应结果中取到需要的内容,从而实现关联. 关联是请求与请求之间存在数据依赖关系,需要从上一个请求获取下一个请求需要回传回去的数据 在查看结果树中找到相应数据,我们需要取得actionId,buttonName 需要选中请求右键,添加-后置处理器-正则表达式提取器(需要在哪个请求的响应数据中拿到,就在哪个请求上添加.后置处理器的意思是请求会先执行,再从响应数据中取值) 如上图,正则表达式的属性就是这样,先简单介绍下字段什么意思,再举例说明 名称: 自己写一个

  • jmeter正则表达式实例详解

    过年前产假归来,jmeter很多知识生疏了,这两天打开jmeter摸索了几下,老了记不住,还是准备弄个jmeter系列随笔吧. 言归正传,使用jmeter时经常有这样的情况:一个完整的操作流程,需先完成某个操作,获得某个值或数据信息,然后才能进行下一步的操作(也就是常说的关联/将上一个请求的响应结果作为下一个请求的参数): 在jmeter中,利用正则表达式提取器来轻松帮助我们完成这一动作.正则表达式就是用于描述这些规则的工具.换句话说,正则表达式就是记录文本规则的代码.学习正则表达式最好就是从实

  • jmeter正则表达式提取器的用法与正则详解

    我们再使用jmeter请求接口时,碰到一些业务流程性的接口改怎么办,比如,我一个发布内容的接口需要用到登录接口返回的token加到请求上去才能发布内容,那在jmeter上该是如何实现的咧? 这里介绍的是jmeter的正则表达式提取器 1,把正则表达式添加到需要提取返回内容的http请求里,添加步骤是,,右键http请求--添加--后置处理器--正则表达式处理器 2,在正则表达式提取器配置设置页里, 1)要检查的响应字段:相当于是要提取哪个位置的内容数据 2)引用名称:我们把内容提取出来后要赋值给

  • Jmeter中正则表达式提取器使用详解

    目录 在使用Jmeter过程中,会经常使用到正则表达式提取器提取器,虽然并不直接涉及到请求的测试,但是对于数据的传递起着很大的作用,本篇博文就是主要讲解关于正则表达式及其在Jmeter的Sampler中的调用. 一.首先来介绍一下Jmeter中正则表达式提取器的元素组成,下图所示: 下面是各参数值的含义: 参数 释义 引用名称 在HTTP等请求中,引用此数据,需要用到的名称 正则表达式 用于将需要的数据提取出来 模板 表示使用提取到的第几个值: $1$:表示取第1个 $2$:表示取第二个 以此类

  • jmeter实现接口关联的两种方式(正则表达式提取器和json提取器)

    目录 一.前言 二.使用正则表达式提取器实现接口关联 三.使用json提取器实现接口关联 json提取器的使用步骤 四.扩展:返回复杂json数据的提取 一.前言 在开展接口测试或者是接口面试的过程中,我们会发现很多接口需要依赖前面的接口,需要我们动态从前面的接口返回中提取数据,也就是我们通常说的关联. 关联通俗来讲就是把上一次请求的返回内容中的部分截取出来保存为参数,用来传递给下一个请求使用. 二.使用正则表达式提取器实现接口关联 正则表达式提取器,见名知意就是使用正则表达式的方法把我们需要提

  • Jmeter线程组传参原理解析

    这篇文章主要介绍了jmeter线程组传参原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 背景介绍: 使用jmeter做登录和搜索接口的测试: 登录接口请求头为:Content-Type: application/x-www-form-urlencoded; charset=UTF-8 搜索接口请求头为:Content-Type: application/json; charset=UTF-8 同时,搜索的请求头中需要用到登录接口返回值中

  • 基于jmeter实现跨线程组传递token过程图解

    遇到一些综合场景的设置,每个不同的请求并发数设置不同的时候,可以用多个线程组的组合来实现,但是这个时候,会遇到一个问题,那就是jmeter各个线程组之间是相互独立的,各个线程互不影响,所以线程组A中输出的参数,无法直接在线程组B中调用. 拿token来说,虽然每一个线程组中我们也可以在放一个登录请求,然后输出一个token供此线程组使用,但这样就比较繁琐且冗余.此时我们就可以使用跨线程组传递参数来解决这样的问题. 接下来,我们看下这个例子: 要发送短信,必须要先登录,才能发送. 实现思路: 在登

随机推荐