jmeter设置关联

一、为什么要设置关联?

http协议本身是无状态的,客户端只需要简单向服务器请求下载某些文件,无论是客户端还是服务端都不去记录彼此过去的行为,每一次请求之间都是独立的。如果jmeter需要设置跨线程组脚本,就必须设置关联,否则无法进行对应的操作。

举个例子,jmeter设置了3个线程组(登录、进入##查询页面、点击查询),如果未设置关联,线程组进入##查询页面、点击查询将无法继承用户成功登录的状态,响应一般会返回"用户未登录系统"

总结一波,关联的作用就是!!

(我自己是这么觉得的~)

(1)不同线程组之间传递同个值

(2)某传递值不在请求中,在响应文本/响应信息头中,而请求之间需要调用该值才能正常运行

(3)记得添加一个HTTP Cookie管理器(添加后同个线程组就不需要设置关联)

二、如何设置关联?

1、查找关联参数

要设置关联,不得不提到Cookie、Session机制

Session机制需要借助于cookie机制在客户端保存标识,是一种服务器端机制,服务器使用一种类似于散列表的结构来保存信息

做关联的时候可以用sessionid进行关联,下图举个例子帮助理解下Cookie、Session机制的区别与联系(理解不了就算了,咱继续往下看,成功设置关联就完事!)

具体取哪个关联值,可以询问开发,也可使用抓包工具/chrome-F12等方法,查看系统,是在什么时候提供token。

一般查看【点击登录】操作的请求可找到,大部分都是以seesionid/cookie/token来设置,下面的例子取得是token值

2、添加正则表达式提取器

路径:请求点击鼠标右键-添加-后置处理器- 正则表达式提取器

取到的值就是一个局部变量,可以在同一个线程组内调用:${token},设置如下

页面参数说明:

-Apply to默认选中"main sample only"即可,仅作用于父节点取样器;

-要检查的响应字段:由于需要关联的信息在响应结果头部,则选中"信息头"。若需要关联的信息在响应文本中返回,则选中"主体";

--引用名称:关联参数的名称;

--正则表达式:设置关联函数的左右边界值;

--模板:默认为 1 1 1

--匹配数字:若取到多个值,设置的匹配数字则能选择相应的值,默认为1

--缺省值:默认为空

正则表达式 的写法:

格式:左边界(匹配内容)右边界

():封装了待返回的匹配字符串;

. :匹配任何单个字符串;

*:取0至无限长度

? :找到第一个匹配项后停止

(更高深的匹配找度娘,不懂咱就问!)

3、添加调试取样器

调试取样器用于调试脚本,可查看关联参数的取值情况

路径:右键点击线程组-添加-取样器-调试取样器(Debug Sample)

放置在需要查看的事务(比如登录)后面,点击运行,查看察看结果树下的返回结果。

可以看见,正则表达式成功取值(这里没图啦!察看结果树中对比查看登录请求的响应文本token值和调试取样器的token值一致即可)。

4、设置全局变量

由于jmeter中的线程组是相对独立的,线程组1设置的函数,无法在线程组2中使用,因此,如果需要调用线程组1中的函数,则需要将该函数设置为全局变量。

菜单-工具-函数助手对话框,打开函数助手窗口

Name of property 设置的函数名称

Value of property 函数取的值

Return original value of property(default false)? 缺省值,默认为空

选择__setProperty函数,输入属性名称及函数取值,点击生成

Ps:点击【生成】就是复制

添加(BeanShell后置处理器)

将上一步复制的函数字符串粘贴在此处

此时全局变量则设置完成。

(注意:全局变量函数中,"__"是双下划线)

${__setproperty}为设置全局变量的函数

${__property}为调用全局变量的函数

5、调用全局变量

找到需要调用关联参数的请求,在HTTP信息头管理器中填入变量

6、检查调用情况

运行脚本,查看察看结果树

(1)查看关联参数取值处请求的响应信息的token

(2)查看调用关联参数请求的请求信息的token

(3)以上两个token一致,调用成功

(4)可以直接看断言是否成功
温馨提示:调试脚本可以将请求先集中在一个线程组中,先排除脚本本身的问题,再设置关联进行跨线程调试。

wuu~~

又是学到知识的一天!

为自己点个赞!

相关推荐
测试老哥16 小时前
Jmeter如何进行多服务器远程测试?
自动化测试·软件测试·功能测试·测试工具·jmeter·测试用例·性能测试
齐鲁物联网测试中心王工1 天前
第三方测试机构进行科技成果鉴定测试有什么价值
功能测试·性能测试·cma·第三方检测·cnas·政策申报·科技成果评价
测试界清流2 天前
JMeter函数整理
jmeter
互联网杂货铺3 天前
功能测试、性能测试、安全测试详解
自动化测试·软件测试·python·功能测试·测试工具·性能测试·安全性测试
not coder3 天前
验证负载均衡与弹性伸缩
运维·jmeter·kubernetes·负载均衡
我自飞扬临天下5 天前
JMeter接口自动化脚本框架
运维·jmeter·自动化
奔波儿灞爱霸波尔奔5 天前
浅谈JMeter之常见问题Address already in use: connect
jmeter
茶本无香5 天前
HTTP协议接口三种测试方法之-JMeter(保姆教程)
网络协议·jmeter·http
TD11015 天前
jmeter:登录接口的token用于下一个接口
jmeter
.似水5 天前
JMeter 性能测试
jmeter