Jmeter之HTTP cookie管理器不生效
问题描述:
今天再整理压测脚本的时候,发现接口请求数据一直获取不到正确的值,通过察看结果树发现接口缺少cookie值;于是在接口上增加了http cookie管理器,再次运行发现接口仍然没有获取到cookie值,如下图:;自己通过postman直接请求接口发现接口是没有问题的可以正常返回,于是肯定问题出现在了cookie管理器上。
通过百度查找发现了如下的解决办法:
解决方式一:
进入到jmeter的安装目录,把jmeter.properties文件(在jmeter的bin目录下)的CookieManager.save.cookies=true,并且把#去掉,保存后重启jmeter;(这样修改的理由 是:从Jmeter2.3.2版本后,默认不再存储,如果想要manager自动存储收集到的cookie,需要修改JMeter.property:CookieManager.save.cookies=true;)
结论:未通过,还是未获取到cookie值
解决方式二:
修改cookie管理器cookie policy的值,如下图:
默认值是:standard,结果不行;然后依次尝试里面每一个值;发现当值为netscape的时候,接口可以正常获取cookie的值。
Cookie Policy:cookie策略,从jmeter3.0开始默认是standard,具体是跟服务器端的实现方式有关的,各公司可能不一样,我试用了其它的几个选项都获取不到cookie, 只有netscape才能获取到。所以当你获取cookie有问题时,也可以检查一下这个选项。
补充:http cookie管理器的说明
作用:用于管理Test plan运行时的所有的cookie。可以手动存储,也可以自动存储;
每次反复清除cookie:勾选后将每次请求结束后都会将本次请求产生的cookie进行清除,下次请求时重新获取;
use Thread Group configuration to control cookie clearing:使用线程组配置来控制cookie清除;
cookie policy的值:standard:符合RFC定义的规范。工具默认选中!
standard-strict:符合RFC定义的行为规范。推荐!
ignoreCookies:所有cookie被忽略。与删除或禁用Cookie Manager相同。
netscape:与Netscape Communications发布的原始规范草案相对应。
default:基于随HTTP响应发送的cookie属性,选择RFC,RFC 2109或Netscape草案兼容实施。
rfc2109:符合RFC 2019定义的规范。
rfc2965:符合RFC 2965定义的规范。
compatibility:兼容性,模拟Mozilla FireFox和Internet Explorer等旧版浏览器的行为
参考链接:
https://blog.csdn.net/m0_67695717/article/details/124850524
http://t.zoukankan.com/chenyq-p-14291885.html
https://blog.csdn.net/weixin_45294964/article/details/118969044
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
2017-07-28 Windows下Python版本的切换