Bootstrap

【自动化测试】web自动化测试验证码如何测?如何处理验证码问题?解决方案......


前言

在对安全性有要求的软件(系统)中都存在验证码,那我们应该怎么进行测试呢,在自动化测试中又该怎么通过验证码使自动化顺利进行下去呢?

验证码的由来和作用
验证码,是一种区分其用户是计算机还是人类的公共全自动程序算法。这个验证码形式的问题是由计算生成并评判,但必须只允许有意识的人才能解答。

现在被广泛用于安全信息领域,以有效防范恶意的程序算法对信息系统进行暴力性的攻击破解,比如:防范密码破解、信息盗窃、钱财转移等恶意行为。

同时也发展为多种形式的验证码。常见的有手机短信验证码、Email验证码、视频验证码、手机语音验证码、拼图验证码、静态图文验证码、GIF动态图文验证码等,其中图文验证码是网站验证中最常见的一种。

验证码的存储
既然在网页中的验证码是图文验证码,以图片文字的形式显示出来,那么在网页源码可能存在于以下几种方式:

  • 存储于文件中;
  • HTML语句中直接放入经过编码的验证码信息;
  • HTML语句中直接放入请求的验证码URL信息;
  • 计算机生成验证码后,一般以session方式将验证码存储在服务器进程;
  • 存储于redis等nosql数据库中,通过调用nosql的客户端驱动查询;
  • 存储于数据库,通过进程内的接口进行查询或者直接进行数据库查询;
  • 计算机服务器生成验证码后,就会缓存起来,原因在于方便用户提交验证码时进行验证。

验证码的原理
当用户需要验证时,服务器端将内存中临时生成的验证码发至客户端,为了其安全性,通常在发送后的一个有效时间内(比如:1分钟)就会删除其验证码,用户在有效时间内输入验证答案。其具体过程如下:

首先,前端网页通过一个URL来对后端进行请求;

接着,后端接收到前端的请求后,它将生成一个随机图文,然后把该随机图文存储于与对应客户端的session中;

然后,将该随机图文进行图像处理,使计算机难以识别而人类容易辨别,经过处理的图文(.png、.jpg等多种格式ÿ

;