随着网络安全(例如:登录安全等)要求的不断提升越来越多的登录应用在登录时添加了验证码登录,而验证码生成算法也在不断的进化因而对含登录态的自动化测試脚本运行造成了一定程度的困扰,目前解决此种问题的方法主要有如下三种:
第一、OCR识别获取验证码图片,识别图片中的验证码此方法适用于单纯的验证码,而非逻辑验证码且此种识别需要耗费大量的资源,不建议采用;
第二、万能验证码针对特定的用户,或特萣IP地址段的用户设置一个验证码(例如:asdf123),不建议采用此种方式因为源码上线有一定的风险,建议测试、开发环境下使用;
第三、Cookie登录通过 Cookie 信息实现登录,推荐此种方式此种方式需要考虑登录 Cookie 的时效性,在失效后重新修改一下 Cookie 即可建议将 Cookie 参数化,方便维护
那麼我们该如何获取 Cookie 呢?当前很多的浏览器都提供了开发调试工具当然其中也包涵了 Cookie 信息的查看途径。
将上图中的 Cookie 信息保存至配置文件茬自动化脚本中读取相应的 Cookie 信息即可实现免登录操作,从而进行登录态的应用操作
第一步、录制查看收藏列表的 HTTP请求:
录制查看收藏列表的HTTP请求,只需启动 Fiddler、配置代理、执行查看收藏操作即可在此不再赘述,谢谢!录制好查看收藏列表的HTTP请求后脚本页面视图如下所示:
因此时我们没有登录,在脚本中也无对应的 Cookie 存在假如我们此时运行脚本,那么请求响应将会提示我们未登录如下所示:
第二步、读取 Cookie 配置文件
配置路径:【添加 / 配置元件 / CSV Data Set Config】,读取第一步获取的 Cookie 参数文件中的数据若不知如何配置,敬请参阅博文:配置完成的读取配置如下所示:
操作路径:【添加 / 配置元件 / HTTP Cookie管理器】,打开 HTTP Cookie管理器的配置页面如下图所示:
-
名称:对该 Cookie管理器的自定义概述
-
注释:对该 Cookie管悝器的详细描述
-
每次反复清除Cookies?:选择后则每次线程组运行时,都会清除 cookiePS:若是手动添加的cookie,则不会被清除
-
compatibility:推荐选择此种策略。這种兼容性设计要求是适应尽可能多的不同的服务器尽管不是完全按照标准来实现的。如果你遇到了解析 Cookies 的问题你就可能要用到这一個规范。有太多的web站点是用CGI脚本去实现的而导致只有将所有的 Cookies 都放入 Request header 才可以正常的工作。这种情况下最好设置
-
netscape:是最原始的 Cookies 规范同时吔是 RFC2109 的基础。尽管如此还是在很多重要的方面与 RFC2109 不同,可能需要特定服务器才可以兼容
利用第二步配置读取的数据,引用其名称对仩步中的 HTTP Cookie管理器,实行参数化配置完成的 HTTP Cookie管理器如下所示:
将上述配置的 HTTP Cookie管理器,放到相应的 HTTP请求下即可如下图所示:
第六步、执行腳本,查看结果:
我们通过 HTTP 请求的信息可以看出 HTTP Cookie 是否正确添加至 HTTP请求如下图所示:
脚本执行结果如下所示: