Python接口測試之requests詳解


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

 

往期內容推薦:

python中的dumps和loads區別

如何在 Python的類中定義私有變量

更多內容關注公眾號:猿桌派


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM