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

Tags: