Jmeter学习笔记——如何做关联及几种常用方法

在测试过程中,每次请求时有些数据是经常发生变化的,将动态变化的值存放在变量中,当需要使用该变量时,自动从服务器响应的信息中获取该值,并在后面使用的过程中进行替换,这个就叫做关联。比如:第二个请求提交的参数要从第一个请求的返回数据中获取、cookie和session。
本文以登录、查询功能为例介绍关联的几种常用方法。登录之后会随着登录的响应结果产生一个JSESSIONID,且JSESSIONID是动态变化的,查询请求必须带着JSESSIONID一起发给服务器,才会请求成功。这个时候就需要做关联,将登录时的响应数据JSESSIONID存放在变量中,供查询时自动获取。

1. 测试前准备

①添加登录请求
右键点击“Thread Group”–>“添加”–>“取样器”–>“HTTP请求”,并配置HTTP请求。
Jmeter学习笔记——如何做关联及几种常用方法
②添加查询请求并配置
Jmeter学习笔记——如何做关联及几种常用方法
③运行并察看结果树
可以看到登录成功,查询未成功。
Jmeter学习笔记——如何做关联及几种常用方法Jmeter学习笔记——如何做关联及几种常用方法
④获取JSESSIONID的左右边界
在"察看结果树"中查看登录的响应数据:
Jmeter学习笔记——如何做关联及几种常用方法

2. 关联方法

方法一:正则表达式提取器

1.右键点击“HTTP Request”–>“添加”–>“后置处理器”–>“正则表达式提取器”
Jmeter学习笔记——如何做关联及几种常用方法
配置正则表达式:
Jmeter学习笔记——如何做关联及几种常用方法
正则表达式提取器参数详解:
引用名称:变量名,获取到的值存储到这个变量中。
正则表达式:通过在"察看结果树"中找到的JSESSIONID行,确定左右边界,将JSESSIONID的值替换为正则表达式,即可匹配到JSESSIONID的值并存入变量中。
常用的正则表达式操作符:

操作符 说明
* 匹配前面的子表达式零次或多次
+ 匹配前面的子表达式一次或多次
. 匹配除换行符 \n 之外的任何单字符
? 匹配前面的子表达式零次或一次,或指明一个非贪婪限定符
\ 将下一个字符标记为或特殊字符、或原义字符、或向后引用、或八进制转义符

具体可以查看:[https://www.runoob.com/regexp/regexp-syntax.html]
模板:从正则表达式中获取的值为多个,模板表示从正则表达式结果引用的样式。00代表正则表达式结果的全部,11表示第一个正则表达式,如果有2个正则表达式,写为1122
匹配数字:0代表正则表达式结果组中随机,1代表第一个,-1代表全部。
缺省值:没匹配到就用缺省值。

3. 添加cookie管理器

给查询接口添加HTTP Cookies管理器,右键点击“HTTP Request”–>“添加”–>“配置原件”–>“HTTP Cookies管理器”
Jmeter学习笔记——如何做关联及几种常用方法
配置cookie管理器:
Jmeter学习笔记——如何做关联及几种常用方法
(也可在线程组下添加HTTP cookie管理器,什么都不用填,可以单个线程共享)
运行并察看结果树,可以看到查询接口返回数据,关联成功。
Jmeter学习笔记——如何做关联及几种常用方法