前言
requests 模块, 也就是老污龟, 为啥叫它老污龟呢, 因为这个官网上的 logo 就是这只污龟, 接下来就是学习它了
一环境安装
1. 用 pip 安装 requests 模块
>>pip install requests
二 get 请求
1. 导入 requests 后, 用 get 方法就能直接访问 url 地址, 如: http://www.cnblogs.com/wanghaihong200/, 看起来是不是很酷
2. 这里的 r 也就是 response, 请求后的返回值, 可以调用 response 里的 status_code 方法查看状态码
3. 状态码 200 只能说明这个接口访问的服务器地址是对的, 并不能说明功能 OK, 一般要查看响应的内容, r.text 是返回文本信息(压缩格式需要用 r.content)
content 方法输出的都是 unicode 编码
如果需要制定编码格式的话, 可以使用 r.encoding = "utf-8"
三 params
1. 再发一个带参数的 get 请求, 如在博客园搜索: wanghaihong200 ,url 地址为: http://zzk.cnblogs.com/s/blogpost?Keywords=wanghaihong200
2. 请求参数: Keywords=yoyoketang, 可以以字典的形式传参:{"Keywords": "wanghaihong200"}
3. 多个参数格式:{"key1": "value1", "key2": "value2", "key3": "value3"}
四 content
1. 百度首页如果用 r.text 会发现获取到的内容有乱码, 因为百度首页响应内容是 gzip 压缩的(非 text 文本)
2. 如果是在 fiddler 工具乱码, 是可以点击后解码的, 在代码里面可以用 r.content 这个方法, content 会自动解码 gzip 和 deflate 压缩
五 response
1.response 的返回内容还有其它更多信息
- -- r.status_code #响应状态码
- -- r.content #字节方式的响应体, 会自动为你解码 gzip 和 deflate 压缩
- -- r.headers #以字典对象存储服务器响应头, 但是这个字典比较特殊, 字典键不区分大小写, 若键不存在则返回 None
- -- r.json() #Requests 中内置的 JSON 解码器
- -- r.url # 获取 url
- -- r.encoding # 编码格式
- -- r.cookies # 获取 cookie
- -- r.raw #返回原始响应体
- -- r.text #字符串方式的响应体, 会自动根据响应头部的字符编码进行解码
- -- r.raise_for_status() #失败请求 (非 200 响应) 抛出异常
后记:
对于想用 python 进行接口测试的小伙伴, 个人建议要通读一下 requests 的官方文档: http://docs.python-requests.org/zh_CN/latest/user/quickstart.html
后续基础知识写完后, 会提供一些接口测试框架的思路, 以及 jenkins 跑定时任务的简单运用
来源: http://www.bubuko.com/infodetail-2509137.html