在做集成测试的过程中,第一个解决的可能就是登录问题,而为增加网站的安全性,登录界面往往都需要输入验证码。验证码的类型的很多,有字母数字的,有汉字的,甚至还要用户输入一条算术题的答案的,对于系统来说使用验证码可以有效果的防止采用机器猜测方法对口令的刺探,在一定程度上增加了安全性。但对于测试人员来说,不管是进行性能测试还是自动化测试都是一个棘手的问题。如果我们用的是无头测试,无法看到验证码也无法正常输入,这时候就不太友好,那有没有什么方案能够避免掉验证码呢?以下提出了几种解决方案,各有优劣,可根据实际情况进行选用。
1.去掉验证码
这种方案是最直接的方案,和后端开发商议一下,在测试的时候直接把验证码验证去掉,去掉验证码又有几种方案可供参考:
1. 在测试的时候直接去掉或注释掉代码,上生产的时候再改回来,这种方式对代码侵入性太大,最不推荐
2. 修改后端代码,根据环境变量判断是否启用验证码验证,这种方法需要注意每次上生产都要修改环境变量,还有一种不合适的方式是每次测试都需要后端配合修改
设置万能验证码
去掉验证码的主要是安全问题,为了应对在线系统的安全性威胁,可以在修改程序时不取消验证码,而是程序中留一个“后门”—设置一个“万能验证码”,只要用户输入这个“万能验证码”,程序就认为验证通过,否则按照原先的验证方式进行验证。
此种方法的弊端是万能验证码的保密问题,如果泄密了验证码就是摆设了。
验证码识别技术
例如可以通过Python-tesseract 来识别图片验证码,Python-tesseract是光学字符识别Tesseract OCR引擎的Python封装类。能够读取任何常规的图片文件(JPG, GIF ,PNG , TIFF等)。不过,目前市面上的验证码形式繁多,目前任何一种验证码识别技术,识别率都不是100% 。
获取Cookie跳过登录
此方式的前提是为了测试其他功能而跳过登录界面,步骤是:每次在跑测试之前先通过人工进行登录,登陆后获取到cookie值,在cookie值的有效期内将cookie注入到测试代码中,然后进行测试即可
此方式的弊端是
- 跳过登录,流程可能不完整
- cookie必须保持有效期
- 每次测试需要获取一次cookie
如果您喜欢此博客或发现它对您有用,则欢迎对此发表评论。 也欢迎您共享此博客,以便更多人可以参与。 如果博客中使用的图像侵犯了您的版权,请与作者联系以将其删除。 谢谢 !