众所周知,接口测试的很多操作的参数是需要token或者cookie的,那么这个token或者cookie一般是通过登录获得的。
但是登录中,需要很多验证码。所以今天来分析下怎么解决接口测试登录的问题。
1、假如是在ui测试中,而且不需要验证码的情况下,可以通过暴力的模拟用户输入,输入用户名以及密码。
在接口测试中,假如没有验证码,也可以通过抓包来进行登录。
2、假如是接口测试的时候,开发同学也能给一个万能码可以解决(但是这不能验证验证码的逻辑)。
3、利用Cookie跳过登录
4、利用webdriver的HtmlUnitDriver来模拟无界面登录,从而获取Cookie。(但是这个还是只能适用于没有验证码的地方)
假如必须需要验证码,可以采用采用2个方法1、直接写个接口去获取验证码(需要做判断,只能在测试环境生效)2、读取服务器日志,查看验证码(唯一标识grep出相应的记录)
3、去中间件读取比如redis,假如没有中间价那么可以数据库中获取。
这里为什么不推荐使用万能码或者写固定验证码,因为这些都是要改代码的,随着环境的变化改来改去。
实践:
第1,第2种,就不说了。
第3种,手动登录一次,使用Charles或者其他抓包工具查看数据包,可以看到cookie,拿到后
放到postman对应的headers里,就可以进行正常的接口测试了。
第4种,正在研究。(假如研究出来,就可以先运行然后保存cookie到文件里/全局变量里,然后接口用例运行时去读取cookie)