做自动化测试的同学在面试的时候经常会遇到这问题,而且我们在实际的工作中也会遇到这个问题,那么这问题到底该怎么处理?
下面给出了面试过程中常见的相关面试题供大家参考:
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投入太多,这个时候就需要跟开发团队好好沟通,共同去商量一个妥善的解决办法。
最后感谢每一个认真阅读我文章的人,下面这个网盘链接也是我费了几天时间整理的非常全面的,希望也能帮助到有需要的你!
这些资料,对于想转行做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。希望对大家有所帮助……
如果你不想一个人野蛮生长,找不到系统的资料,问题得不到帮助,坚持几天便放弃的感受的话,可以点击下方小卡片加入我们群,大家可以一起讨论交流,里面会有各种软件测试资料和技术交流。
敲字不易,如果此文章对你有帮助的话,点个赞收个藏来个关注,给作者一个鼓励。也方便你下次能够快速查找。
零基础转行软件测试:38天自学完软件测试,拿到了字节的测试岗offer,堪称B站最好的视频!
自动化测试进阶:已上岸华为,涨薪20K,2022最适合自学的python自动化测试教程,自己花16800买的,无偿分享