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

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

1. 测试前准备

① 添加登录请求
右键点击“Thread Group”–>“添加”–>“取样器”–>“HTTP请求”,并配置HTTP请求。
在这里插入图片描述
② 添加查询请求并配置
在这里插入图片描述
③ 运行并察看结果树
可以看到登录成功,查询未成功。
在这里插入图片描述在这里插入图片描述
④ 获取JSESSIONID行
在"察看结果树"中查看登录的响应数据:
在这里插入图片描述

2. 关联

接口响应结果,通常为HTML、JSON格式的数据。对于HTML的响应结果的提取,可以通过正则表达式、边界提取器来提取。对于JSON格式的数据,可以通过正则表达式、JSON Extractor、BeanShell 来提取。

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

① 添加正则表达式提取器
右键点击“HTTP Request”–>“添加”–>“后置处理器”–>“正则表达式提取器”
在这里插入图片描述
② 配置正则表达式:
在这里插入图片描述
正则表达式提取器参数详解:
引用名称:变量名,获取到的值存储到这个变量中。
正则表达式:通过在"察看结果树"中找到的JSESSIONID行,将JSESSIONID的值替换为正则表达式,即可匹配到JSESSIONID的值并存入变量中。
常用的正则表达式操作符:

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

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

方法二:边界提取器

① 添加边界提取器
右键点击“HTTP Request”–>“添加”–>“后置处理器”–>“边界提取器”
在这里插入图片描述
② 配置边界提取器
在这里插入图片描述
边界提取器参数详解:
引用名称:变量名,获取到的值存储到这个变量中。
左边界、右边界:通过在"察看结果树"中找到的JSESSIONID行确定左右边界,JSESSIONID值左边部分为左边界,JSESSIONID值右边部分为右边界。
例,登录后返回数据为:”Set-Cookie: JSESSIONID=7B27D1C4A7223C3A67A49468A7CFA505; Path=/git; HttpOnly"。
这里左边界为:Set-Cookie: JSESSIONID=,右边界为:; Path=/git; HttpOnly
匹配数字(0表示随机):0代表随机,1代表第一个,-1代表全部。
缺省值:没匹配到就用缺省值。

方法三:Json 提取器

由于测试的登录接口需要关联的JSESSIONID是在响应头中返回,不是json格式,这里以新增-删除为例。新增后会自动生成一个id,删除时需要根据新增接口返回的id(JSON格式)来删除,这时候就可以通过json提取器来关联,将id保存成变量供删除请求调用。
① 在察看结果树响应数据中找到需要关联的值。
在这里插入图片描述
② 添加Json提取器
右键点击“HTTP Request”–>“添加”–>“后置处理器”–>“Json提取器”
在这里插入图片描述
③ 配置json提取器
在这里插入图片描述
Json提取器参数详解:
Names of created variables:数据存储的变量名称,使用$ {variable name}引用它。
JSON Path Expressions:JSON路径表达式。根据第①步中可以看到路径为$ .data.List.projectid($.是固定写法)
Match No. (0 for Random):匹配数字(0表示随机),1代表第一个,-1代表全部。
Compute concatenation var(suffix_ALL):将匹配到的所有值保存,名为“变量名_ALL”。
Default Values:默认值,如果JSON 路径表达式未能匹配到值,将使用该默认值。
④ 在删除的请求里关联提取的参数
在这里插入图片描述
⑤运行并察看结果树
可以看到请求报文中使用了提取到的参数值。
在这里插入图片描述

3. 添加cookie管理器

① 给查询接口添加HTTP Cookies管理器
右键点击“HTTP Request”–>“添加”–>“配置原件”–>“HTTP Cookies管理器”
在这里插入图片描述
② 配置cookie管理器
在这里插入图片描述
(也可在线程组下添加HTTP cookie管理器,什么都不用填,可以单个线程共享)
③ 运行并察看结果树
可以看到查询接口返回数据,关联成功。
在这里插入图片描述

  • 4
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值