正则提取器的一般使用场景是, 在我第二个请求参数中需要加入第一个请求的返回值, 此时通过正则提取器可以提取第一个请求返回值中指定的字段信息并赋值, 在第二个请求参数中直接引用该变量即可

jmeter的正则提取器截图如下:

这里写图片描述
简单介绍下其中几个比较重要的字段的信息, 如下表

接下来看下实际的使用,

如图所示, 取登录后返回的ticket值, 此时因为方便说明, 使用"(.*?)"来获取返回值中双引号之间的内容:
这里写图片描述
添加debug元件, 展示debug信息如下,
这里写图片描述
此时, ${ticket}表示取的是第一列的值, 第一列是由模板上的$1$确定的,
此时Match No设置为-1 ,表示会返回所有匹配值数组的元素, 可以看到返回有三个元素分别为${ticket_1},${ticket_2},${ticket_3} 此时, 若有多行数据, 且模板处设置的为$1$, 如果选择第一个数组元素, 则:
• ${ticket_1_g0}取的都是第一个匹配值的第一列全部的数据
• ${ticket_1_g1}取的是第一个匹配值的第一列第一行的数据,
• ${ticket_1_g2}取的是第一个匹配值的第一列第二行的数据,
* ${ticket_2_g1}取的是第二个匹配值的第一列第一行的数据,

再来看一个比较简单的正则, 如下, 只取匹配值中的第一个元素:
这里写图片描述
这里写图片描述
Match No设置为1 , 表示只会选择返回的匹配值数组当中的第一个元素, 直接使用${ticket}表示即可, 此时, 若有多行数据, 且模板处设置的为$1$, 则:
• ${ticket_g0}取的都是第一列全部的数据
• ${ticket_g1}取的是第一列第一行的数据,
• ${ticket_g2}取的是第一列第二行的数据,
---------------------
Jmeter中关联可以在需要获取数据的请求上 右键-->后置处理器 选择需要的关联方式,如下图有很多种方法可以提取动态变化数据:  

  

二、正则表达式提取器:

  1、比如需要提取如下响应文本中的 “<title>百度一下,你就知道</title>” 里面的 “百度一下,你就知道”:

  

  2、设置正则表达式提取器:

  

  说明:

  (1)引用名称:下一个请求要引用的参数名称,如填写title,则可用${title}引用它。

  (2)正则表达式:

    ():括起来的部分就是要提取的。

    .:匹配任何字符串。
    +:一次或多次。
    ?:不要太贪婪,在找到第一个匹配项后停止。

  (3)模板:用$$引用起来,如果在正则表达式中有多个正则表达式,则可以是$2$$3$等等,表示解析到的第几个值给title。如:$1$表示解析到的第1个值

  (4)匹配数字:0代表随机取值,1代表全部取值,通常情况下填0

  (5)缺省值:如果参数没有取得到值,那默认给一个值让它取。

  3、使用2中获取到的值:

  

三、关于正则表达式的举例说明:

  1、提取单个字符串:
    假如想匹配Web页面的如下部分:name = "file" value = "readme.txt">并提取readme.txt。一个合适的正则表达式:name = "file" value = "(.+?)">。
      ():封装了待返回的匹配字符串。
      .:匹配任何单个字符串。
      +:一次或多次。
      ?:不要太贪婪,在找到第一个匹配项后停止。

  2、提取多个字符串:
    假如想匹配Web页面的如下部分:name = "file.name" value = "readme.txt">并提取file.name和readme.txt。一个合适的正则表达式:name = "(.+?)" value = "(.+?)"。这样就会创建2个组,分别用于$1$和$2$

  比如:

    引用名称:MYREF
    模板:$1$$2$

   如下变量的值将会被设定:
    MYREF:     file.namereadme.txt
    MYREF_g0:   name = "file.name"value = "readme.txt"
    MYREF_g1:  file.name
    MYREF_g2:  readme.txt

  在需要引用地方可以通过:${MYREF}, ${MYREF_g1进行使用。

Java正则表达式方法

这里就不对Java正则表达式的使用做基础学习了,下面列出了我们在进行“关联”操作时,需要掌握的基本元字符: 
( ) :将 () 之间括起来的表达式定义为“组”(group),并且将匹配这个表达式的字符保存到一个临时区域,我们主要就是利用这个元字符配合所指定的字符串匹配规则来进行匹配信息的提取; 
.+: 一个以上的任意字符,通过Greediness(贪婪型)匹配策略进行表达式模板的匹配(最大匹配); 
.+?:通过?元字符表示一个非贪婪模式匹配,即通过 Reluctant(勉强型)匹配策略进行表达式模板的匹配(最小匹配); 
另外,还包括.*,.*?,\d,\D,\w,\W等。

参考:https://www.cnblogs.com/LiangHu/p/6230372.html

Jmeter--正则表达式提取器的更多相关文章

  1. Jmeter正则表达式提取器的使用方法(转)

    下面简单介绍一下Jmeter正则表达式提取器的使用方法. 1.添加Jmeter正则表达式提取器:在具体的Request下添加Jmeter正则表达式提取器(Jmeter正则表达式在“后置处理器”下面)  ...

  2. JMeter 关于JMeter 正则表达式提取器的一点研究

    关于JMeter 正则表达式提取器的一点研究   by:授客 QQ:1033553122 1.   实验环境: JMeter 2.13 2.   添加正则表达式提取器 右键线程组->添加-> ...

  3. jmeter正则表达式提取器--关联

    http://desert3.iteye.com/blog/1394934 1.http://www.cnblogs.com/quange/archive/2010/06/11/1756260.htm ...

  4. Jmeter 正则表达式提取器详解(Regular Expression Exactor)

    Jmeter 正则表达式提取器详解(Regular Expression Exactor) Name(名称):随意设置,最好有业务意义. Comments(注释):随意设置,可以为空 Apply to ...

  5. 02、Jmeter正则表达式提取器

    转载自:http://blog.csdn.net/quiet_girl/article/details/50724313 在使用Jmeter过程中,会经常使用到正则表达式提取器提取器,虽然并不直接涉及 ...

  6. Jmeter正则表达式提取器

    https://www.cnblogs.com/tudou-22/p/9566894.html Jmeter中关联是通过“添加—后置处理器—正则表达式提取器”来获取数据 一.获取单个数据

  7. jmeter正则表达式提取器提取特定字符串后的全部内容

    jmeter进行JDBC请求时,请求后的响应结果在传递给下一个请求使用时,需要用到关联,也在jmeter中,关联通过正则表达式提取器实现. 但是,在JDBC请求后的响应结果中,往往需要关联的内容是只有 ...

  8. Jmeter正则表达式提取器(转载)

    转载自 http://blog.csdn.net/qq_35885203 使用jmeter来测试时,经常会碰到需要上下文传输数据的情况,如登录后生成的token,在其他页面的操作,都需传入这个toke ...

  9. JMeter 正则表达式提取器结合ForEach控制器遍历提取变量值

    正则表达式提取器结合ForEach控制器遍历提取变量值   by:授客 QQ:1033553122 1. 需要解决的问题 使用正则提取器提取了一组变量值,需要在其它sampler中,循环引用组中的某几 ...

  10. jmeter正则表达式提取器多模块相互调用

    提取return的结果 (1)例: 创建账户和转账功能 注:以下为soap协议 添加账户1 创建正则表达式提取器(提取创建的结果) 点击导入接口文档URL地址和方框内方法 同上方法添加账户2 点击正则 ...

随机推荐

  1. C#调用C++ DLL的方式

    动态链接库(DLL)是一个包含可由多个程序同时使用的代码和数据的库,DLL不是可执行文件.可以说在windows操作系统中随处可见,打开主分区盘下的system32.在一些项目中,如果有大量运算或者涉 ...

  2. HOJ 2133&POJ 2964 Tourist(动态规划)

    Tourist Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 1503 Accepted: 617 Description A ...

  3. codeforces#518 Div2 ABCDE

    A---Birthday http://codeforces.com/contest/1068/problem/A 题意: 有n种硬币,m个人.m个人要给Ivan送硬币,每个人送的硬币都要互不相同但数 ...

  4. Java基础类编程集锦

    1.计算1+2+3+4+5+6+7+8+9的值 package com.neusoft.chapter1; /** * @author zhao-chj *题:计算1+2+3+4+5+6+7+8+9的 ...

  5. 计蒜客 31451 - Ka Chang - [DFS序+树状数组][2018ICPC沈阳网络预赛J题]

    题目链接:https://nanti.jisuanke.com/t/31451 Given a rooted tree ( the root is node $1$ ) of $N$ nodes. I ...

  6. compile time - run-time

    php.net Class member variables are called "properties". You may also see them referred to ...

  7. lamp docker apache2 supervisor monitor

    sudo docker run -d -p 80:80 -p 3306:3306 -v /data/lampp/supervisormonitor:/app --name mylamp01 tutum ...

  8. 【Python】用Python打开csv和xml文件

    一.csv文件的读取1 #coding=utf-8 import csv with open("F:\\script\\py_scripts\\test2.csv","r ...

  9. python-面向对象-08_多态

    多态 目标 多态 面向对象三大特性 封装 根据 职责 将 属性 和 方法 封装 到一个抽象的 类 中 定义类的准则 继承 实现代码的重用,相同的代码不需要重复的编写 设计类的技巧 子类针对自己特有的需 ...

  10. python中计算程序用时的方法

    import time start = time.clock() ...... end = time.clock() print(end - start)