jmeter cookie policy说明

在使用cookie管理器时,没有选择对应的策略 会导致cookie传递不了

下面来讲一讲这些用法

作用:用于管理Test plan运行时的所有的cookie。可以手动存储,也可以自动存储;

每次反复清除cookie?:勾选后将每次请求结束后都会将本次请求产生的cookie进行清除,下次请求时重新获取。

Cookie Policy:cookie的管理策略。建议选择Standard或Standard strict。这种兼容性设计要求是适应尽可能多的不同的服务器,也就是兼容性更好。

前边说到既可以自动存储也可以手动添加cookie,两者的区别如下:

自动存储:自动记录每一个请求所产生的cookie,在后边的同源站点进行请求时都可以使用对应的cookie并发送,它都有自己的存储区域。每一个cookie是完全独立的,即当遇到非同源站点时请求所带的cookie将不一样,其行为与浏览器行为是一致的。

注:这种自动收集cookie不会在cookie manager中进行展示,但是运行后通过查看结果树可以查看到cookie信息,接受到的cookie会被自动存储在线程变量中,在2.3.2版本之后不再存储,如果你想要manager自动存储收集到 的cookie,你需要修改JMeter.property:CookieManager.save.cookies=true;

手动存储:手动添加的cookie具有全局性,会在发送请求时自动附加到所有的请求中,即被所有的请求所共享。

手动添加可以采用两种方式,一、一个一个的慢慢添加;二、直接利用浏览器的插件(如火狐的firebug)导出。然后通过load按钮将cookie进行导入。

cookie的分类:分为持久cookie和会话cookie;

持久cookie:持久cookie保存在客户端本地的硬盘中,浏览器关闭后依然存在;

会话cookie:会话cookie保存的浏览器的进程会话中,浏览器关闭后就随之被清除

以下是网上搜索的关于httpclient支持的cookies说明:
以下Cookies标准,HttpClient3.1可以支持。

1,standard 默认使用, 选择Standard或Standard strict。这种兼容性设计要求是适应尽可能多的不同的服务器,也就是兼容性更好。

2,RFC2109
RFC2109是W3C组织第一次推出的官方Cookies标准。理论上,所有使用版本1Cookies的服务端都应该使用此标准。HttpClient已经将此标准设定为默认。
遗憾的是,许多服务端不正确的实现了标准或者仍然使用Netscape标准。所有有时感到此标准太多于严格。
RFC2109是HttpClient使用的默认Cookies协议。

3,RFC2965
RFC2965定义了版本2并且尝试去弥补在版本1中Cookie的RFC2109标准的缺点。RFC2965是,并规定RFC2965最终取代RFC2109.
发送RFC2965标准Cookies的服务端,将会使用Set-Cookie2 header添加到Set-Cookie Header信心中,RFC2965 Cookies是区分端口的。

4,Netscape标准
Netscape是最原始的Cookies规范,同时也是RFC2109的基础。尽管如此,还是在很多重要的方面与RFC2109不同,可能需要特定服务器才可以兼容。

5,Browser Compatibility
这种兼容性设计要求是适应尽可能多的不同的服务器,尽管不是完全按照标准来实现的。如果你遇到了解析Cookies的问题,你就可能要用到这一个规范。
有太多的web站点是用CGI脚本去实现的,而导致只有将所有的Cookies都放入Request header才可以正常的工作。这种情况下最好设置http.protocol.single-cookie-header参数为true。

6,Ignore Cookies
此规格忽略所有Cookie 。被用来防止HttpClient接受和发送的Cookie。

注:

  • Cookie Policy:cookie策略,从jmeter3.0开始默认是standard,具体是跟服务器端的实现方式有关的,各公司可能不一样,我试用了其它的几个选项都获取不到cookie,只有netscape才能获取到。所以当你获取cookie有问题时,也可以检查一下这个选项。

  • 存储在cookie管理器中的cookie:在这里可以添加用户自定义的cookie,并且会被作用域内的所有线程共享。

部分内容转自:https://blog.csdn.net/lijing742180/article/details/81158252

爱生活,更爱给我带来生活的人
原文地址:https://www.cnblogs.com/chenyq/p/14291885.html