在写接口自动化用例时发现绕不过这个登录场景,登录成功之后都需要在请求头上需要带上一个token。而通过fidder进行抓包时发现登录场景存在两个接口 分别为图片验证码接口和login 接口
1.login 接口需要传username pw key 以及验证码
2.这个key和验证码 是通过验证码接口返回得到的
3.前期想通过写死key和验证码的方式直接请求login接口,测试时发现验证码会过期,请求成功之后后面就不能重复使用了
4.那么就请求两次,先请求验证码接口拿到key 和验证码 然和请求login接口获取到返回的token,然而没那么容易,key可以轻松得到,而验证码这个code值,验证码接口是返回的一个验证码的链接。不能直接获取到code值。通过资料发现可以通过python的自带库来进行识别,但是成功率而言很低,完全瞎显示结果。。
下面给出方法:
1.通过selenium的方式打开验证码接口返回的链接,然后进行截图
2.截图成功之后,就会得到一个src.png的验证码图片,现在需要进行识别得到code
3.这时候就可以去拜访百度云了,申请一个账号,然后找文字识别产品,创建应用,得到你的账号,分别为apiid key SECRET_KEY
下载aip-python-sdk-4.15.1.zip 这个python的sdk ,放到你的python目录完事
https://ai.baidu.com/ai-doc/REFERENCE/Ck3dwjhhu
4.下面来贴获取方式
首先你的账号,然后取值,每个人需要的东西可能不一样,也可以识别中文,我这是英文验证码就从字符串中取值【13:18】,具体按照实际情况来实现
5.login请求
得到你的vercode之后,就参数化进行传参数,发起请求 完事