2.2.7 Web自动化验证码处理

本文探讨了Web应用中验证码处理的挑战,包括验证码的作用、实现原理以及自动化测试中处理验证码的几种方法,如去掉验证码、设置万能码、保留资源和使用OCR识别。特别提到了Python的Tesseract库进行图像识别,介绍了降噪、二值化等预处理步骤,并提及了打码平台和利用Cookie绕过验证码的解决方案。
摘要由CSDN通过智能技术生成

前言

      对于测试人员来说,不管是进行性能测试还是自动化测试其验证码处理都是一个比较棘手的问题;但是对于web 应用来说,大部分的系统在用户登录时都要求用户输入验证码,且验证码的种类众多,例如:纯数字、纯字母、汉字组合、数学运算题、滑动坐标、图片、短信、邮箱、语音等等。

验证码的作用

       验证码是目前大多网站所支持并使用于注册登录的。就在于其作用能有效防止恶意登录注册,验证码每次都不同,这就可以排除,用其他病毒或者软件自动申请用户及自动登陆,且还可基于网址性能减少用户的并发。

实现原理

    验证码于服务器端生成,发送给客户端,并以图像格式显示(当然会对图像进行加以处理:添加干扰项、添加干扰像素、添加噪点等)。客户端提交所显示的验证码,客户端接收并进行比较,若比对失败则不能实现登录或注册,反之成功后跳转相应界面。

 

自动化中解决验证码一般拥有以下几种解决方案:

去掉验证码

      这是最简单的方法,对于开发人员来说,只是把验证码的相关代码注释掉即可,如果是在测试环境,这样做可省去了测试人员不少麻烦,如果自动化脚本是要在正式环境跑,这样就给系统带来了一定的风险。

设置万能码

       去掉验证码的主要是安全问题,为了应对在线系统的安全性威胁,可以在修改程序时不取消验证码,而是程序中留一个“后门”---设置一个“万能验证码”,只要用户输入这个“万能验证码”,程序就认为验证通过,否则按照原先的验证方式进行验证。

保留一个资源

        如果是图片资源的话,实际就是在指定的文件夹资源库中进行随机一张,只需要将服务器上的所有图片全部删除只留一张,相当于也是固定验证码。

光学字符识别

       例如可以通过 Python-tesseract 来识别图片验证码,Python-tesseract 是光学字符识别 Tesseract OCR 引擎的 Python 封装类。能够读取任何常规的图片文件(JPG, GIF ,PNG , TIFF 等)。不过,目前市面上的验证码形式繁多,目前任何一种验证码识别技术,识别率都不是100% 。

实现步骤:

  1. 通过pycharm或者pip安装第三方模块pytesseract:

  •  
pip install pytesseract

2.使用pycharm或者pip进行安装图像处理库:

pip  install Pillow

注意:针对python2.X版本的话,则使用的库是PIL,但是在python3.X版本后图像处理库必须安装Pillow或者Pillow-PIL

3.安装ocr识别库:可通过官网地址进行下载,现如今最新版本为5.0,下载地址是:https://github.com/UB-Mannheim/tesseract/wiki

如果上述地址访问失败多刷新几次即可;

安装步骤直接下一步即可,但是安装完后必须要将其根目录添加到Path环境变量中;

例如:

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zemuerqi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值