­

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"    }  }