1.简介

      在LR中有自动关联跟手动关联,但在我看来手动关联更准确,在jmeter中,就只有手动关联;

      为什么要进行关联:对系统进行操作时,本次操作或下一次操作对服务器提交的请求,这参数里边有部分参数需要服务器返回动态变化的值,首先这个值是动态变化的其次是由服务器动态返回的再者会对请求结果产生影响

       在jmeter中,关联有几种方法,①正则表达式②边界提取器③Json Extractor提取器,下面依次介绍。

      下面以查看blog的文章为例,此blog为作者采用Django框架编写:

    

jmeter中使用groovy连接mongodb查询出来的数据如何响应 jmeter关联_正则表达式

 

前置条件 :

  • 脚本已经通过badboy录制并导出;
  • Jmeter导入脚本; 

2.正则表达式

     <div class="item" >
    <a href ="/lizf22/29.html">

        ....
    <div class="item" >
    <a href ="/lizf22/28.html">

所以需要对文章的链接进行一个关联

   2.1 正则提取一个变量

  •    在你要关联的请求下右键点击添加-后置处理器-正则表达式提取器

   

jmeter中使用groovy连接mongodb查询出来的数据如何响应 jmeter关联_右键_02

 说明:

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

  (2)正则表达式:

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

    .:匹配任何字符串。

    +:一次或多次。

    ?:不要太贪婪,在找到第一个匹配项后停止。

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

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

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

  •    引用提取的变量

     2.2 正则提取多个变量

 

jmeter中使用groovy连接mongodb查询出来的数据如何响应 jmeter关联_正则表达式_03

  

jmeter中使用groovy连接mongodb查询出来的数据如何响应 jmeter关联_html_04

 事实上,aid_g0,aidf_g1,aid_g2 是正则表达式的结果组,而aid才是被模板控制提取出来结果,这里为了更清晰的观察正则表达式的结果组才在验证请求中添加这么多参数,实际使用是用一个myref和模板配合就可以了。

aid_g1=lizf22

aid_g2=31.html

3.边界提取器

  • 在你要关联的请求下右键点击添加-后置处理器-边界提取器,

      

jmeter中使用groovy连接mongodb查询出来的数据如何响应 jmeter关联_正则表达式_05

  •  引用提取的变量

4.Json Extractor提取器

  • 在你要关联请求右键点击添加—后置处理器—JSON Extractor

     

jmeter中使用groovy连接mongodb查询出来的数据如何响应 jmeter关联_右键_06

  •     引用提取的变量

 

建议:调试是打开调试采样器(添加—取样器—调试采样器),可以查看到变量值

     

jmeter中使用groovy连接mongodb查询出来的数据如何响应 jmeter关联_html_07