Python接口测试之requests详解
- 2020 年 2 月 19 日
- 筆記
接口自动化的框架很多,python对应的类库也很多,但request类库相信对大家来说还是最熟悉的,本篇将围绕request给大家介绍接口自动化中常用的功能。
引入requests包是基础操作
import requests
构造一个最简单的get请求:
r = requests.get('http://httpbin.org/get') print r.text 返回数据 { "args": {}, "headers": { "Accept": "*/*", "Accept-Encoding": "gzip, deflate", "Host": "httpbin.org", "User-Agent": "python-requests/2.18.1", "X-Amzn-Trace-Id": "Root=1-5e3796cd-6fe9ebd9419d893ca4b67275" }, "origin": "49.72.104.32", "url": "http://httpbin.org/get" }
在get请求中添加参数的两种方式:
r = requests.get('http://httpbin.org/get?name=cctester&age=6') data={'name':'cctester','age':'6'} r=requests.get('http://httpbin.org/get', params=data) print r.text 这两种请求方式本质是一样的; 返回数据: { "args": { "age": "6", "name": "cctester" }, "headers": { "Accept": "*/*", "Accept-Encoding": "gzip, deflate", "Host": "httpbin.org", "User-Agent": "python-requests/2.18.1", "X-Amzn-Trace-Id": "Root=1-5e379a18-7661065e852f531c4f569118" }, "origin": "49.72.104.32", "url": "http://httpbin.org/get?name=cctester&age=6" }
构造post请求:
data = {'name': 'cctester', 'skill': 'coding'} r = requests.post('http://httpbin.org/post', data=data) print(r.text) { "args": {}, "data": "", "files": {}, "form": { "name": "cctester", "skill": "coding" }, "headers": { "Accept": "*/*", "Accept-Encoding": "gzip, deflate", "Content-Length": "26", "Content-Type": "application/x-www-form-urlencoded", "Host": "httpbin.org", "User-Agent": "python-requests/2.18.1", "X-Amzn-Trace-Id": "Root=1-5e37a7bb-15fedde4881a9f1abbf7590e" }, "json": null, "origin": "49.72.104.32", "url": "http://httpbin.org/post" }
打印cookie
r = requests.get('https://www.taobao.com') print(r.cookies)
session保持
# 请求改为由session发起 s = requests.Session() # 设置cookie s.get('http://httpbin.org/cookies/set/number/123456789') print s.cookies # 读取cookie r = s.get('http://httpbin.org/cookies') print(r.text) 输出内容 <RequestsCookieJar[<Cookie number=123456789 for httpbin.org/>]> { "cookies": { "number": "123456789" } }