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

posted on 2022-07-28 16:05  随风迎  阅读(2493)  评论(0编辑  收藏  举报

导航