登录表单,有用户名、密码、验证码,用户名和密码是使用 browser.setValue
处理的,验证码如何处理呢?
在对应的测试用例里,如何让测试流程暂停并接收用户输入?获取到输入值后继续执行?
登录表单,有用户名、密码、验证码,用户名和密码是使用 browser.setValue
处理的,验证码如何处理呢?
在对应的测试用例里,如何让测试流程暂停并接收用户输入?获取到输入值后继续执行?
最近在写一个用 js 封装百度登陆模块的练习,也在纠结这个
本地测试还好,发到 ravisci 上测试,又要验证码,又要短信验证的
尝试了模拟 http 数据,因为请求的很多初始化参数都是随机的,没成功
后面谷歌搜了一通,看了些文章,加深了下对测试的理解
之前是把整个程序当成一个整体去测试的,那中间有很多随机的数据,会把测试变的不可控
暂时想的是把模块,甚至是方法单独拎出来做测试,然后把需要引用的参数,或者模块用模拟数据和模拟函数去代替,让输入变得可控,这样结果也就好测试了
10 回答11.3k 阅读
5 回答4.9k 阅读✓ 已解决
4 回答3.2k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
2 回答4.8k 阅读✓ 已解决
4 回答4.4k 阅读✓ 已解决
4 回答1.9k 阅读✓ 已解决
自问自答一下吧:
自动化测试中遇到验证码,大致的解决方法有:关闭验证码、万能验证码、破解验证码、控制台同步输入等,如果是关闭验证码,就不算是模拟完全的开发环境了,如果是万能验证码,后端又会抱怨不安全,暴力破解看上去是正解,但能暴力破解了,后端估计也要崩溃了!控制台同步输入同事有演示(Pythone 版本),Node 版本没想到如何实现(菜)···!所以,如何在自动化中输入验证码困扰了我一下午。
后来,注意到
.pause()
(官方文档) 这个方法,突然想到,为何不设置一个足够长的时间,让我们手动输入验证码,然后它计时结束后会继续完成提交?!果然,这个方法是可行的!但弊端是没有实现自动化测试,人工干预了。