接口自动化的框架很多,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"
}
}