3 Jmeter关联

1、概述

关联,是Jmeter脚本中非常重要的一个设置,因为在测试过程中有些数据是经常发生变化的,要获取并使用这些数据,就一定要使用关联。在脚本中,将每次都动态变化的值进行关联,一个能正确执行的脚本,都需要进行关联(LoadRunner、Jmeter)。

 

 

2、方法说明

         在脚本回放过程中,客户端发送请求,通过Jmeter中正则表达式提取器所定义的左右边界值,也就是关联规则,在服务器返回的响应内容中查找符合规则的值,以变量的形式替换录制过程中的静态值,从而向服务器发送正确的请求。

 

3、具体步骤

关联分两种:

提取单个字符串和提取多个字符串

 

第一步:添加后置取样器

 

接着上一个文档中的脚本,添加正则表达式提取器,如图所示:

 

提取单个字符串:

 

第二步:修改正则表达式提取器

在fiddler中查看请求响应内容,假如想要提取以上内容中的value值,那么正则表达式就是:

name=”userSession” value=”(.+?)”/>

在正则表达式提取器中如图所示:

 

第三步:修改脚本对应值

将脚本中的对应值改为如下:

 

第四步:添加debug sampler

可以在此线程中添加debug sampler,在脚本回放时,在查看结果树中可以看到debug sampler中的各种参数值,其中就有关联值。

 

运行脚本,查看debug sampler

 

提取多个字符串:

 

假如想要匹配如下部分并且想要提取userSession和value值

name="userSession" value="131620.683353584zHHAcDipQtAzcVptDDt"/>

 

将正则表达式内容修改为

 

在脚本对应值改为:

${userSession_g1}: 对应上图中模板的$1$

${userSession_g2}: 对应上图中模板的$2$

 

运行脚本,查看调试取样器:

会发现,取出来的值name=username,而value=””  size=”14”  maxlength=”14”/>

 

这个值显然是不对的,我们返回fiddler中查看一下响应内容。

 

 

 

 

Fiddler响应内容如下图所示:

这样结果就很明显了,我们的正则表达式匹配错了,应该匹配①部分,但是由于这两个内容格式相似,就匹配到②的内容了

怎样修改呢?

我们需要去修改匹配规则,也就是修改左右边界值。

 

这是修改后的:(显然,我修改了左边界值)

 

再次运行,查看调试取样器:

 

这次就成功了,这就是提取多个字符串的方法。

 

4、正则表达式提取器详解:

先来看正则表达式提取器界面:

 

名称:最好有业务上的意义,方便区分

注释:没什么用。。。

Apply to:应用范围

Main sample and sub-samples:匹配范围包括当前父取样器并覆盖子取样器

Main sample only:匹配范围是当前父取样器(默认)

Sub-samples only:仅匹配子取样器

Jmeter variable name to use:支持对Jmeter变脸进行匹配

 

要检查的响应字段:

主体:响应数据的主体部分,不包括header部分,主体部分就是body(默认选择这个)

Body(unexcaped):针对替换了转义码的body部分

Body ad a document:返回内容作为一个文档进行匹配

信息头:只匹配信息头部分的内容

URL:只匹配URL链接

响应代码:匹配响应代码,例如状态码200

响应信息:匹配响应信息:例如“成功”、“OK”

引用名称:即下一个请求中要引用的参数名称,如果填写userSession,可用${userSession}来引用他。

正则表达式:

         ():括号括起来部分就是要提取的内容,在括号中写正则表达式

          .  :匹配任意字符

         +       :一次或多次匹配

         ?  :0次或1次匹配,不要太贪婪,在找到第一个匹配项后就停止

模板:用$$引用起来,如果在正则表达式中有多个正则表达式,就可以是$1$$2$类似这样的,表示匹配到的第几个值给userSession

匹配数字:用正则表达式匹配时,可能出现多个值的情况,为正数用来确定取一组值中的第几个,为0表示随机取匹配值,负数取所有值。

缺省值:如果没有匹配到可以制定一个默认值。

 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐