介面測試-GET請求(五)
如果想用python做介面測試,我們首先有不得不瞭解和學習的模組。它就是第三方模組:Requests。 雖然Python內建的urllib模組,用於訪問網路資源。但是,它用起來比較麻煩,而且,缺少很多實用的高階功能。更好的方案是使用
requests。它是一個Python第三方庫,處理URL資源特別方便。檢視其中文官網:http://cn.python-requests.org/zh_CN/latest/index.html 英文官網:http://www.python-requests.org/en/master/ 可以看一下它的很多實用的高階功能。
一、功能特性
Requests 完全滿足今日 web 的需求。
- Keep-Alive & 連線池
- 國際化域名和 URL
- 帶持久 Cookie 的會話
- 瀏覽器式的 SSL 認證
- 自動內容解碼
- 基本/摘要式的身份認證
- 優雅的 key/value Cookie
- 自動解壓
- Unicode 響應體
- HTTP(S) 代理支援
- 檔案分塊上傳
- 流下載
- 連線超時
- 分塊請求
- 支援
.netrc
二、安裝相關
pip install requests
注意:pip很容易就會版本升級,
方法1:檢測並更新
pip list –outdated
方法2:
♦先解除安裝:
pip uninstall packagename
♦在用:easy_install.exe安裝
easy_install.exe pip
三、使用requests(GET請求)
# -*- coding: utf-8 -*- import requests params = {"wd":'西遊記'} url = 'https://www.baidu.com/s' r = requests.get('https://www.baidu.com',params=params) print(r.status_code) print(r.url) print(r.text)
四、其他用法
1.response 的返回內容(content)還有其它更多資訊
-- r.status_code #響應狀態碼
-- r.content #位元組方式的響應體,會自動為你解碼 gzip 和deflate 壓縮
-- r.headers #以字典物件儲存伺服器響應頭,但是這個字典比較特殊,字典鍵不區分大小寫,若鍵不存在則返回 None
-- r.json() #Requests 中內建的 JSON 解碼器,requests的方便之處還在於,對於特定型別的響應,例如JSON,可以直接獲取
-- r.url # 獲取 url
-- r.encoding # 編碼格式,requests自動檢測編碼
-- r.cookies # 獲取 cookie
-- r.raw #返回原始響應體-- r.text #字串方式的響應體,會自動根據響應頭部的字元編碼進行解碼
-- r.raise_for_status() #失敗請求(非 200 響應)丟擲異常