自动化过程中验证码的解决思路

很多系统为了安全起见,会在关键节点要求用户输入验证码,如避免密码暴力破解,或自动化程序的刷票,抢购等行为。

验证码也是各式各样,如图片验证码,手机验证码,滑块验证码等,随着破解能力的增强,验证码也是日趋复杂。

验证码对保护系统安全可以说功不可没,但是对于我们自动化测试人员而言却是个麻烦。

由于验证码每次都不一样,我们代码里如果写成固定值,那么就会操作失败。相当于验证码也把我们自动化测试人员拒之门外了。

那么自动化人员处理处理这种情况呢,一般我们解决方法分为以下几种:

屏蔽验证码

万能验证码

破解验证码

Cookie跳过验证码

A. 屏蔽验证码,比如设置个配置项允许用户选择登录时不需要输入验证码。

B. 万能验证码,好比万能钥匙,无论你给的是什么,我的万能验证码都是可以验证通过的,不过这种比较有风险,万一泄露出去,系统的验证码就形同虚设了。

以上两种方式,都需要开发人员的额外的代码实现。如果测试人员想自力更生自己解决这个问题呢:

**C. 破解验证码:**目前市面上有很多破解验证码的工具,供大家使用如tesseract-ocr或百度AI文字识别接口等。但是由于验证码类型各异,复杂度也与日俱进,导致我们破解时成功率比较低。成功率比较低的情况对自动化而言影响是很大的,导致很多用例由于验证码而失败,或者需要反复不断的尝试才可能成功,导致时间浪费。基于这一点,破解验证码也不是一个好的解决方案。

D. 通过特殊手段跳过验证码验证阶段,比如不做登录操作,而且直接做后续请求,请求时带正常登录用户的可用cookie,那么是不需要登录就可以操作成功的,从而避免了验证。

这种方式也是有以上4种方法,我们比较推荐通过配置临时去掉验证码这种方式。

你有更好的解决方法吗?欢迎讨论哟。

今天的内容就学习到这里了,每个工作日小编都会更新一个有关测试的小知识,希望大家多多关注我们,一起来学习喔!

相关推荐
风哥2号6 小时前
数据库教程FGMT27‑MySQL数据库基础知识与体系架构
数据库·mysql
AlanBruce6 小时前
摩尔信使MThings功能综述与应用使用指南
linux·自动化·plc·mthings·摩尔信使
qq5918406856 小时前
uiautomator2自动化安卓手机操作
python
80s7776 小时前
动态代理和静态代理的区别,动态代理怎么提高网络安全性
python
YangYang9YangYan7 小时前
2026 校招商品分析岗位 JD 拆解,核心指标、工具与面试考点
大数据·数据库·数据分析
西安栈上月明软件科技7 小时前
从业务黑话到本体图谱:OAG本体建模五步法(西安老系统AI化改造实战)
数据库·人工智能·架构
搞科研的小刘选手8 小时前
【武汉举办 | JPCS出版 | EI稳定检索】2026年智能制造、自动化与控制国际学术会议(IMAC 2026)
自动化·智能制造·控制·学术会议·会议推荐
anxiao_m8 小时前
跨云跨机房大数据迁移怎么选?不同场景工具适配指南
数据库·云启快传
niucloud-admin8 小时前
JAVA V6 多商户商城 开发文档——job 计划任务开发
java·python·github
小叶肥辉8 小时前
LangChain链和LangGraph图的学习笔记【三】——分别用langchain_openai库和langchain_community库调用大模型
笔记·python·langchain