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~~

又是学到知识的一天!

为自己点个赞!

相关推荐
测试老哥20 小时前
Jmeter测试脚本编写技巧
自动化测试·软件测试·功能测试·测试工具·jmeter·职场和发展·性能测试
易思涯1 天前
【已解决】黑马点评项目jmeter高并发测试中用户数据的生成
jmeter·解决方法·黑马点评
霍格沃兹测试开发学社测试人社区1 天前
软件测试丨性能测试工具-JMeter
软件测试·测试开发·测试工具·jmeter·性能测试
字节程序员1 天前
Jmeter分布式压力测试
分布式·jmeter·压力测试
美团测试工程师2 天前
九大高效的前端测试工具与框架
软件测试·测试工具·jmeter
love静思冥想2 天前
JMeter 使用详解
java·jmeter
互联网杂货铺3 天前
几个常见的Jmeter压测问题
自动化测试·软件测试·测试工具·jmeter·职场和发展·测试用例·压力测试
ggggyyyyy09283 天前
接口测试-Fidder及jmeter使用
测试工具·jmeter·fiddler·接口测试
明月与玄武3 天前
Jmeter 分布式压测部署--常见坑以及解决方案
分布式·jmeter
字节程序员3 天前
使用JUnit进行集成测试
jmeter·junit·单元测试·集成测试·压力测试