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验证的情况,会把用户名密码以及登录方式发送给调用方。
08 验证码该如何做测试?
答:验证码的测试,主要是协助开发人员找出验证码功能的漏洞或弱点。比如对于手机短信验证码,可以通过用例组合来测试服务器代码有没有做到【手机号+验证码+过期时间+重试次数限制+服务端验证】五要素。
09 Rf框架里,登录这块,如果用程序识别验证码,会不会影响到案例的运行?识别验证码的成语,是集成进rf框架好呢,还是单独做成独立模块,框架调用好一些?
答:识别验证码会有性能开销,这主要看你的访问量,只要不是压力测试的话,不会产生大的影响。
你可以计算一次验证码识别消耗的时间,比如1s,再看你发出request的频率,如果高于1s1次,就不会有明显的影响。
推荐你们做成独立模块,这样便于复用,而且程序结构比较优雅。
10 领导要求每晚12点定时运行案例在生产环境,保证第二天上班系统正常,一直卡在动态6位数字的验证码上,怎么办?
答:生产环境恐怕不方便使用万能验证码。实在不行就人工值守一下,看一下验证码人工输入,应该只在登录的case有验证码。
当然还可以有更高级的玩法,不过难度有点儿大,你可以跟开发商量一下,看他们有没有能力开发。
用一个摄像头对着泛微密钥,一直采集,然后识别显示的数字,在登录时输入。利用OpenCV来做就行。写成一个单独的python模块,在rf里调用。12点启动测试时打开摄像头,进行到登录时,采集图像,抠出验证码所在区域,再分割出每个数字,挨个OCR。从经验上来说,这种“黑白分明”且等距的字符显示,OCR效果非常好,做到99.9%以上应该是可以的。OCR方面不需要神经网络,用SVM分类器就够了。可以大胆跟他们提。
网友评论