jmeter同线程、跨线程 cookie的处理

发布时间 2023-04-03 16:50:09作者: wenwenliang

一、同一个线程内,推荐使用cookie管理器自动获取

在登录之后添加HTTP Cookie管理器,会自动记录cookie并且在之后的请求中,自动将保存的cookie信息加上
cookie管理器里,什么都不用修改

image
image

登录superman之后,进行创建普通用户,会发现cookie的数据已经自动填充

但是我这个还是报错了,是为啥?
image

看下请求,请求数据是确认对的,那么看下请求头
image
我的请求头里还有一个参数,但是没有值
image

这个值,可以自己在superman登录后在响应头里提取,但是更方便的是,cookie管理器会帮我们自动保存cookie里的参数到:COOKIE_xxx变量中,xxx代表cookie中本来的变量名称

这个自动保存到变量的功能,需要修改apache-jmeter-5.5\bin\jmeter.properties的CookieManager.save.cookies为true,然后重启jmeter

再重新运行一遍,请求头中已经有数据了

image

然后再看下调试取样器,cookie管理器自动保存的变量显示出来了

image

二、不同的线程内,可以使用cookie管理器自动获取+手动调用的形式

上面的场景分为两个线程时,即使每个线程都加了cookie管理器,但是添加普通用户的时候,cookie的值依然是空的
image

所以这种场景下,可以在superman登录后添加cookie管理器,并将管理器获取到的每个cookie值都设置为全局变量

image

然后在其他线程组调用全局变量增加到cookie管理器中即可

image