一、配景及原理
处理登录时的滑动验证码有两个难点,第一个是找到滑块需要移动的间隔,第二个是模仿人手工拖动的轨迹。模仿轨迹在要求不是很严的环境下可以用先加速再减速拖动的方法,即路程的前半段加速度为正值,后半段为负值去模仿,效果还是比力好的。
移动间隔的计算主要有两种方式。一种是用呆板学习的方式,起首从被测网站上下载大量的验证码图片,然后人工标注数据集去训练一个神经网络。这种方法本钱较高且难度较大。另一种就是图像处理。图像处理的话相对来说要简朴一些,根据网站返回的图片又可以分为两类:一类是返回两张图,一张是完整的图片,另一张是有缺口的图片,这种环境只要比力两幅图的差值即可获得缺口位置;
另一类是只返回有缺口的图片,那么根据图片的特点,如缺口附近有显着白边,可以做边缘检测,或者采取模式辨认,辨认滑块形状的位置,都可以进行尝试。
那么对于滑动验证码难度提拔也可以分为间隔计算和拖动轨迹这两方面去思量。间隔计算的话就是在图片上下功夫,可以增长图片库,使缺口出现的位置更加随机,缺口在图片上不出现显着边界,缺口形状也不必是矩形,可以是不规则图形,等等。拖动轨迹的话则可以要求更加接近人类真实的轨迹,这一点是我们肉眼看不见的,需要大量的数据进行模仿。将来的发展趋势应该也是利用呆板学习综合考量行为轨迹、访问频率、地理位置等因素进行判定。
二、实际案例
1.测试内容:
https://www.cointranquillity.com网站登录时的滑动验证码
2.测试环境:
ubuntu18,selenium3.14.0,webdriver3
3.思绪说明:
起首,该网站的验证码是只返回一张图的环境,并且图片中缺口的白边非常显着,因此可以采取边界检测的方法。但是在实际测试过程中,我发现该网站的登录验证码缺口始终出现在图片靠右侧的几个位置附近,因此在该案例中我并没有采取图像处理的方法,而是采取了三个固定的位置去不断尝试、刷新验证码(每张图片有三次时机),通常在两到三次尝试之后可以验证通过,是一种比力简朴的办理方法。
4.代码:
最后: 下方这份完整的软件测试视频学习教程已经整理上传完成,朋友们如果需要可以自行免费领取【包管100%免费】
这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战堆栈,这个堆栈也陪同上万个测试工程师们走过最艰难的路程,希望也能帮助到你!
面试文档获取方式:
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |