对于 web 应用来说,大部分的系统在用户登录时都要求用户输入验证码,验证码的类型的很多,有字
母数字的,有汉字的,甚至还要用户输入一条算术题的答案的,对于系统来说使用验证码可以有效果的防
止采用机器猜测方法对口令的刺探,在一定程度上增加了安全性。但对于测试人员来说,不管是进行性能
测试还是自动化测试都是一个棘手的问题。

图 3.20
下面笔者根据自己的经验来谈一下处理验证码的几种方法。
去掉验证码
这是最简单的方法,对于开发人员来说,只是把验证码的相关代码注释掉即可,如果是在测试环境,
这样做可省去了测试人员不少麻烦,如果自动化脚本是要在正式环境跑,这样就给系统带来了一定的风险。
设置万能码
去掉验证码的主要是安全问题,为了应对在线系统的安全性威胁,可以在修改程序时不取消验证码,
而是程序中留一个“后门”---设置一个“万能验证码” ,只要用户输入这个“万能验证码” ,程序就认为验
证通过,否则按照原先的验证方式进行验证。
验证码识别技术
例如可以通过 Python-tesseract 来识别图片验证码,Python-tesseract 是光学字符识别 Tesseract OCR 引
擎的 Python 封装类。能够读取任何常规的图片文件(JPG, GIF ,PNG , TIFF 等)。不过,目前市面上的验证码
形式繁多,目前任何一种验证码识别技术,识别率都不是 100% 。
记录 cookie
通过向浏览器中添加 cookie 可以绕过登录的验证码,这是比较有意思的一种解决方案。我们可以在
用户登录之前,通过 add_cookie()方法将用户名密码写入浏览器 cookie ,再次访问系统登录链接将自
动登录。例如下面的方式:
....
#访问 xxxx 网站
driver.get("http://www.xxxx.cn/")
#将用户名密码写入浏览器 cookie
driver.add_cookie({'name':'Login_UserNumber', 'value':'username'})
driver.add_cookie({'name':'Login_Passwd', 'value':'password'})
#再次访问 xxxx 网站,将会自动登录
driver.get("http://www.xxxx.cn/")
time.sleep(3)
....
driver.quit()
使用 cookie 进行登录最大的难点是如何获得用户名密码的 name ,如果找到不到 name 的名字,就没
办法向 value 中输用户名、密码信息。
笔者的建议是可以通过 get_cookies()方法来获取登录的所有的 cookie 信息,从而进行找到用户名、
密码的 name 对象的名字;当然,最简单的方法还是询问前端开发人员。

最新文章

  1. UI Automation Test
  2. iTunes.exe 在win7系统中运行出错解决办法
  3. sql2008 表名为全数字时查询报错
  4. IIS问题解决:URL中制表符引起的Bad Request - Invalid URL
  5. Direct2D开发:绘制网格
  6. 为什么每个浏览器都有Mozilla字样?
  7. iOS上的jQuery.on()冒泡事件绑定 以及 iOS绝对定位元素中的输入框
  8. find big file
  9. Android 开发60条技术经验总结(转)
  10. centos 6.4 更新源地址
  11. HDOJ 4252 A Famous City 单调栈
  12. PHP把数字ID转字母ID
  13. 设n是奇数,证明:16|(n4+4n2+11)(整除原理1.1.1)
  14. Python3学习之路~7.3 反射
  15. 机器学习三剑客之Matplotlib基本操作
  16. [P1373]小a和uim之大逃离 (DP)
  17. InfluxDB服务器启动流程
  18. Mavlink - 无人机通讯协议
  19. ubuntu server 16.04(amd 64) 配置网桥,多网卡使用激活
  20. TFS (Team Foundation Server) 2013集成Maven构建

热门文章

  1. Matplotlib for Python Developers
  2. String作为方法参数传递 与 引用传递
  3. docker kubernetes--
  4. mvc EF 数据保存时,报错:”对一个或多个实体的验证失败……“之解决
  5. 【python】numpy array特殊数据统一处理
  6. js保留n位小数
  7. python中反射(__import__和getattr使用)
  8. Android 使用shape来画线
  9. strtok&strsep
  10. boost 1.57.0安装