1.说明
在脚本编写的过程中,我们常常会遇到用户登录之后的相关操作,但是又不想去通过脚本先模拟用户登录,再使用cookie值保持登录,做后续的操作的情况下,我们就会用到HTTP Cookie管理。
HTTP Cookie管理,主要是通过其他途径获取有效的用户登录后生成的cookie,放入HTTP Cookie管理中,在后续接口的操作中,请求会自动带上有效的cookie信息,让服务器认为,接口现在的操作是已登录有效用户,从而保证我们接口的正常运行及返回。
首先,带大家看一下没有cookie值的脚本返回(此时未添加HTTP Cookie管理)
ps:我这个接口,是想模拟用户登录之后获取一个页面中部分信息,但是用户登录,每次需要输入验证码,验证码又不确定,我就觉得很麻烦,暂时不想做登录处理,想跳过登录,直接做用户登录之后的操作,但是呢,脚本写好之后,悲惨的发现,用户没登录,啥都不能做,嗯~~~就像淘宝,你想下单必须先登录,我这里也是一样的,就是给我返回,登录页面,唉~~~所以,我们看接下来的操作步骤吧!
2.步骤
第一步:在浏览器中获取已登录用户的cookie值
在浏览器中打开你要操作的网站---->登录一个有效用户---->F12(打开开发者工具)
在Application中获取自己操作的网站的cookies相关信息
第二步:添加HTTP Cookie管理器
线程组 (鼠标右键)---->配置元件---->HTTP Cookie管理器
(1)每次反复清除Cookies?:选择后,则每次线程组运行时,都会清除 cookie。(若是手动添加的cookie,则不会被清除)
(2)Implementation:履行的协议。
(3)Cookie Policy:Cookie的管理策略
- compatibility:推荐选择此种策略。这种兼容性设计要求是适应尽可能多的不同的服务器,尽管不是完全按照标准来实现的。如果你遇到了解析 Cookies 的问题,你就可能要用到这一个规范。有太多的web站点是用CGI脚本去实现的,而导致只有将所有的 Cookies 都放入 Request header 才可以正常的工作。这种情况下最好设置 http.protocol.single-cookie-header 参数为 true。
- rfc2109:是HttpClient使用的默认Cookies协议。
- rfc2965:定义了版本2并且尝试去弥补在版本1中 Cookie 的 RFC2109 标准的缺点。规定 RFC2965 最终取代 RFC2109 发送 RFC2965 标准 Cookies 的服务端,将会使用 Set-Cookie2 header 添加到 Set-Cookie Header 信心中,RFC2965 Cookies 是区分端口的。
- ignorecookies:此规格忽略所有 Cookie。被用来防止 HttpClient 接受和发送的 Cookie。
- netscape:是最原始的 Cookies 规范,同时也是 RFC2109 的基础。尽管如此,还是在很多重要的方面与 RFC2109 不同,可能需要特定服务器才可以兼容。
- default:默认。
第三步:运行接口
HTTP Cookie管理器添加配置成功之后,再运行我们的接口,就发现不再是返回登录页面,而是有正确的返回信息啦~~