自动化测试中的验证码问题

做自动化测试的同学在面试的时候经常会遇到这问题,而且我们在实际的工作中也会遇到这个问题,那么这问题到底该怎么处理?

下面给出了面试过程中常见的相关面试题供大家参考:

01 在做自动化登陆的同时,如何绕过验证码?一般常用的方案有哪些?

答:
1)如果开发同事可以配合,是可以在代码中临时禁用验证码功能的,对于设计比较好的代码,可以简单地通过配置开关来控制启用/禁用,或者请开发临时使用一个固定的验证码或“万能验证码”。
2)如果开发不能配合,那是没法“绕过”的,只能破解,或者遇到验证码暂停一下,人工输入验证码再继续。

3)破解方面,参考常用的两种验证码的破解方法,除了短信验证码无法破解之外,其他都有破解的可能,需要考虑破解的代价。

02 做自动化的时候,不想绕过验证码,有什么办法可以测试验证码吗?

答:

1)正常地从技术原理来说,因为验证码是由后端控制的,前端拿它“没办法”。

2)如果开发同事可以配合,在程序中临时禁用验证码,这个可以请测试经理跟开发经理好好沟通,一般来说开发是能理解测试的难处并给予配合的(生产环境可能没办法)。

3)如果开发确实没办法,对于输入型的验证码,使用一个固定的验证码或“万能验证码”。

4)如果需要破解验证码,除了短信验证码无法破解之外,其他都有破解的可能。

03 像那种拖动滑块进行验证的页面,要怎么进行自动化测试?

答:利用selenium模拟人类行为就可以,对于带拼图的滑块验证码,可以参考文章中的代码思路做开发,对于不带拼图的滑块验证码,去掉图形匹配计算X坐标的部分。

04 如果出于生产环境安全性的考虑,开发不愿意改验证码注释,那测试人员是不是只能通过程序来识别验证码?而且正式环境的,我们公司居然还绑定数字检验卡,这种的又该怎么办?

答:生产系统确实不方便禁用验证码,因为会带来很大的安全风险,这一点需要理解。

有两个选择,如果验证码比较简单,可以通过破解手段来绕过。如果验证码破解难度太大,就在自动化测试过程中,遇到验证码的时候,暂停,人工输入一下,再继续。

你提到的“绑定数字检验卡”,不清楚具体是什么东西,如果指的是手机验证码,可以请开发配合临时使用固定的验证码,测试完毕之后复原,这个做法安全风险很小,如果指的是IC卡、CPU卡之类的智能卡,可以申请一张开通了权限的卡一直放在读卡器上。如果是动态6位数字的卡这种需要跟开发商量,给出一个“万能验证码”用于测试。这种验证码的安全等级非常高,通过常规技术手段没法破解的。

05 对于二维码扫码登录呢?

答:二维码扫码登录,可以跟开发商量,能不能做一个测试专用的数据接口,遇到二维码时调用该接口,就通过验证。

06 我之前公司的开发不懂什么是万能验证码怎么,遇到这种怎么办?

答:所谓万能验证码,是后台服务器程序在生成随机验证码的时候,始终生成同一个验证码。测试和开发互相约定,比如始终生成6666,这样测试这边在测试过程中就一直使用6666。

07 接口测试中,登录接口需要验证码,该如何取到验证码?

答:正常来说调用接口不可能使用验证码,因为接口调用过程中没有UI,在哪里显示验证码?如果同学说的是接口鉴权,一般有几种常见情况:token(也可能叫accessKey等)、cookie,接口鉴权应该和接口的供应方咨询,一般开通接口服务的时候,对于使用token/accessKey的情况,会将连接信息、token/accessKey的信息发送给调用方,对于使用cookie验证的情况,会把用户名密码以及登录方式发送给调用方。

在这里插入图片描述

总结:其实在实际项目里我们常用的是有数字、字母、图片、手机号、拼图等等,一般情况下我们都不会尝试去破解这些验证码,而仅仅只需要绕过去就可以了,因为破解它们需要的effort投入太多,这个时候就需要跟开发团队好好沟通,共同去商量一个妥善的解决办法。


              【下面是我整理的2023年最全的软件测试工程师学习知识架构体系图】


一、Python编程入门到精通

二、接口自动化项目实战 

三、Web自动化项目实战


四、App自动化项目实战 

五、一线大厂简历


六、测试开发DevOps体系 

七、常用自动化测试工具

八、JMeter性能测试 

九、总结(尾部小惊喜)

生命不息,奋斗不止。每一份努力都不会被辜负,只要坚持不懈,终究会有回报。珍惜时间,追求梦想。不忘初心,砥砺前行。你的未来,由你掌握!

生命短暂,时间宝贵,我们无法预知未来会发生什么,但我们可以掌握当下。珍惜每一天,努力奋斗,让自己变得更加强大和优秀。坚定信念,执着追求,成功终将属于你!

只有不断地挑战自己,才能不断地超越自己。坚持追求梦想,勇敢前行,你就会发现奋斗的过程是如此美好而值得。相信自己,你一定可以做到! 

猜你喜欢

转载自blog.csdn.net/nhb687095/article/details/131958931