前文我们讲过了若何获取登录后的 Cookie 信息,不知如何获取登录 Cookie 的朋友,敬请参阅我之前写的博文:Fiddler-005-获取 Cookie 信息。参阅上篇文章,获取到 Cookie 后,将 Cookie 保存到文本文件中,例如 userCookie.txt。

下面以购物App常用的收藏功能为例,讲述如何在 JMeter 中使用 cookie 进行登录态操作。具体的操作步骤如下所示:

第一步、录制查看收藏列表的 HTTP请求:

录制查看收藏列表的HTTP请求,只需启动 Fiddler、配置代理、执行查看收藏操作即可,在此不再赘述,谢谢!录制好查看收藏列表的HTTP请求后,脚本页面视图如下所示:
因此时我们没有登录,在脚本中也无对应的 Cookie 存在,假如我们此时运行脚本,那么请求响应将会提示我们未登录,如下所示:
第二步、读取 Cookie 配置文件

配置路径:【添加 / 配置元件 / CSV Data Set Config】,读取第一步获取的 Cookie 参数文件中的数据。若不知如何配置,敬请参阅博文:JMeter学习-010-JMeter 配置元件实例之 - CSV Data Set Config 参数化配置,配置完成的读取配置如下所示:
第三步、添加 HTTP Cookie管理器:

操作路径:【添加 / 配置元件 / HTTP Cookie管理器】,打开 HTTP Cookie管理器的配置页面,如下图所示:

  1. 名称:对该 Cookie管理器的自定义概述

  2. 注释:对该 Cookie管理器的详细描述

  3. 每次反复清除Cookies?:选择后,则每次线程组运行时,都会清除 cookie。PS:若是手动添加的cookie,则不会被清除。

  4. Implementation:履行的协议。

  5. 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管理器:

利用第二步配置读取的数据,引用其名称,对上步中的 HTTP Cookie管理器,实行参数化,配置完成的 HTTP Cookie管理器如下所示:
第五步、添加 Cookie 至 HTTP请求:

将上述配置的 HTTP Cookie管理器,放到相应的 HTTP请求下即可,如下图所示:
第六步、执行脚本,查看结果:

我们通过 HTTP 请求的信息可以看出 HTTP Cookie 是否正确添加至 HTTP请求,如下图所示:
脚本执行结果如下所示:
附录(一):

JMeter学习-012-JMeter 配置元件之-HTTP Cookie管理器-实现 Cookie 登录源码

至此, JMeter学习-012-JMeter 配置元件之-HTTP Cookie管理器-实现 Cookie 登录 顺利完结,希望此文能够给初学 JMeter 的您一份参考。

最后,非常感谢亲的驻足,希望此文能对亲有所帮助。热烈欢迎亲一起探讨,共同进步。非常感谢! ^_^

我本渺小,但山峰,我一次次绝顶!
PS:若有错误,敬请告知,不胜感激!
Copyright @ 范丰平版权所有,如需转载请标明本文原始链接出处,严禁商业用途!

 

(作者:范丰平 来源:http://www.cnblogs.com/fengpingfan/p/4759148.html