jmeter获取cookie认证登录

随着网络安全(例如:登录安全等)要求的不断提升,越来越多的登录应用在登录时添加了验证码登录,而验证码生成算法也在不断的进化,因而对含登录态的自动化测试脚本运行造成了一定程度的困扰,目前解决此种问题的方法主要有如下三种:

第一、OCR识别。获取验证码图片,识别图片中的验证码,此方法适用于单纯的验证码,而非逻辑验证码,且此种识别需要耗费大量的资源,不建议采用;

第二、万能验证码。针对特定的用户,或特定IP地址段的用户,设置一个验证码(例如:asdf123),不建议采用此种方式,因为源码上线有一定的风险,建议测试、开发环境下使用;

第三、Cookie登录。通过 Cookie 信息实现登录,推荐此种方式。此种方式需要考虑登录 Cookie 的时效性,在失效后重新修改一下 Cookie 即可,建议将 Cookie 参数化,方便维护。

那么我们该如何获取 Cookie 呢?当前很多的浏览器都提供了开发调试工具,当然其中也包涵了 Cookie 信息的查看途径。

Firefox 浏览器:


Chrome 浏览器:


Fiddler:

将上图中的 Cookie 信息保存至配置文件,在自动化脚本中读取相应的 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请求,如下图所示:


脚本执行结果如下所示:











  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值