接口自动化【二】(图形验证码处理) | 您所在的位置:网站首页 › 验证码的测试点在哪里 › 接口自动化【二】(图形验证码处理) |
文章目录
前言一、图形验证码图片获取(需要实际截图做对比补充)二、调第三方接口获取验证码三、后端登录接口(举例)总结
前言
讲解了图片验证的处理;在接口测试中遇见的一些问题;多部分编码的注意点 一、图形验证码图片获取(需要实际截图做对比补充)F12,抓取图形验证码的获取接口。(先F12,再访问登录页面) url : http://mall.lemonban.com:8108/captcha.jpg?uuid=bc193953-8242-4d16-8663-dc8a1ffa56f4 注意:open("code.png","wb")这个函数里面的code.png,并不是在文件里早已经建立好的图片,而是只是作为一个图片文件的名字(也可以理解为一个名叫code.png的空文件,需要我们写入数据,我个人认为这种理解方式更好一点。)fs.write(resp.content)这个函数,resp.content是获取的图片的内容(这里用content是以二进制的方式获取,一般图片都是以二进制方式获取)。fs.write()这个函数是把已经获取的二进制图片的内容,写入code.png的空文件。 在代码执行完成后,就会生成一个带有实际内容的code.png文件。 二、调第三方接口获取验证码图片识别-广告识别-目标检测-图鉴网络科技有限公司 注意:第三方图片识别是需要收费的,所以就自己充点钱进去做测试了。 接口所需要的参数和URL: url : http://api.ttshitu.com/predict method:post 请求数据: username:simple password: yuan5311645 typeid: 3 image: 文件 依据接口文档里面的方式(2种): 第一种(直接使用data数据进行上传):文件上传,要用requests的files参数 ('filename', fileobj, 'content_type') {"image":("code.png",resp.content,"image/png")} 我们对比一下request库里面的说明 成功的请求案例: 在这里我也发现了,用data传递json格式的数据的时候,才会指定Content-Type 在源码中不容易理解的地方:这种写法很容易让初学者看不懂,我也是仔细分析了才明白。 最基础的对应就是:name:file-tuple 这一句话:`file-tuple`` can be a 2-tuple ``('filename', fileobj)``, 3-tuple ``('filename', fileobj, 'content_type')`` 也就是说:file-tuple也可以变成('filename', fileobj) 或者 变成 ('filename', fileobj, 'content_type') 就会写成: name:file-tuple name:('filename', fileobj) name:('filename', fileobj, 'content_type') 注意:多部分编码 也就是每个部分有不同的内容类型: 有data,有file类型(图片或者其他) 参考一位博主的: Python+requests库 POST接口图片上传 - 简书 图片里面的数字和字母 注意:这里的第二种方式并不是我们随意想的第二种方式,而是接口文档里面提供的第二种方式。 (1)不进行解码时: (2)使用encode的编码方式 暂无 |
CopyRight 2018-2019 实验室设备网 版权所有 |