自动化测试如何解决验证码问题


验证码作用:
不少网站在用户登录、用户提交信息等登录和输入的页面上使用了验证码技术。验证码技术可以有效防止恶意用户对网站的滥用,使得网站可以有效避免用户信息失窃、保证网站稳定安全性。
但是验证码给自动化测试带来一些不便,使脚本无法正常运行覆盖功能模块。

如何解决:

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

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

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

4.记录cookie

(适用于UI自动化测试,且目前在大部应用的用户名密码不记录在cookie 或 进行加密处理。)
通过向浏览器中添加cookie 可以绕过登录的验证码。

from selenium import webdriver
from time import sleep

driver=webdriver.Chrome()
#访问XXX网站
driver.get("XXX")

#手动添加cookie;将用户名密码写入浏览器cookie
driver.add_cookie({'name':'Login_username','value':'username(根据实际获取值填写)'})
driver.add_cookie({'name':'Login_password','value':'password'})

sleep(2)
#刷新再次访问XXX网站将会自动登录
driver.refresh()
sleep(3)
driver.quit()

总结:

    最简单安全,行之有效的方式就是设置万能码,开发沟通一下一般都是可以的。如果乐于闷头苦干自力更生的话也可研究验证码识别技术。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM