图片验证码(Captcha)问题在自动化测试中是一个很常见的问题,也是一个很棘手的问题。图片验证码设计的初衷其实就是为了防自动化,防止一些人利用自动工具恶意攻击网站,而很不幸的是,我们所使用的一些自动化测试工具也包含在内。当然了,对付验证码也不是一点办法都没有,方法还是有很多的,只是我们需要跳出技术层面去思考问题。废话少说,先来看下几种常见的解决办法:
1. 识别法(技术)
识别法就是对验证码的图片进行字符识别,其原理就是通过识别算法解析图片,其解析的精准度取决于图片的复杂程度。
熟悉QTP的同学应该都知道,在做文本检查点和文本区域检查点的时候会用到一种叫OCR识别的技术,OCR的全称是Optical Character Recognition,中文叫光学字符识别。OCR指电子设备(例如扫描仪或数码相机)检查纸上打印的字符,通过检测暗、亮的模式确定其形状,然后用字符识别方法将形状翻译成计算机文字的过程;即,对文本资料进行扫描,然后对图像文件进行分析处理,获取文字及版面信息的过程。
根据本人经验,如果图片中的字符方方正正的并且图片背景比较单调的话,那么OCR识别率会非常高。比如类似于以下这种验证码的图片可以被OCR识别出来:
但是对于一些复杂的图