WEB自动化测试中针对验证码的解决方案 (三)
说明:本文首发于《程序员》杂志2006年第11期,在此连载,转载请先得到本人同意,谢谢。另,本文与程序员杂志上的内容有少许差异。 4 自动测试中 WEB 验证码处理的方法 验证码给自动测试带来了很大的问题,但也并不是完全不能解决。结合我们在上文讨论的验证码实现的方法,图 4 给出了验证码实现的大致原理图。 从图 4 中可以看到,从技术的角度来看,至少设计两种不同的方法来实现自动测试工具对验证码的处理: 1、 完全从客户端角度考虑,靠模式识别的方法识别出验证码图片对应的字符串; 2、 从服务端角度考虑,如果自动测试工具可以获取 Session 中存储的随机数,也就能正确处理验证码了。 这两种方法是解决自动化测试中验证码问题的主要方法,我们分别称其为 识别法 和 服务端插入法 。这两种方法在实现方法上侧重点不同,适用的场合也不同。 识别法 完全不用考虑服务端应用的实现,通过各种技术方法对显示的验证码图片进行“破译”,这样,即使完全不能接触到服务端代码,也能让自动化测试在有验证码的情况下进行下去;但这种方法当然也有其致命的缺点:只能对简单的验证码进行识别,对复杂的验证码,根本就无法识别。 而 服务端插入法 则从服务端入手,通过提供一个额外的客户端接口,向客户端只需要知道该接口的调用方法,就能通过该接口来获取该页面的验证码图片对应的实际数据,并使用该数据继续测试。 另一方面