接口測試框架實戰(一) | Requests 與接口請求構造
- 2022 年 4 月 24 日
- 筆記
Requests 是一個優雅而簡單的 Python HTTP 庫,其實 Python 內置了用於訪問網絡的資源模塊,比如urllib,但是它遠不如 Requests 簡單優雅,而且缺少了許多實用功能。所以,更推薦掌握 Requests 接口測試實戰技能,這也是互聯網大廠流行的接口測試利器。
下面從安裝 Requests 庫開始,一步步掌握接口請求構造、接口請求斷言、Schema 斷言、Json/XML 請求、測試用例調試、HeadCookie 處理、Jsonpath 應用、認證體系等接口測試實戰技能。
pip 命令安裝 Requests。
Requests 官方文檔:
//2.python-requests.org/en/master/
接下來就會使用最流行的 Requests 進行接口測試。
Requests 提供了幾乎所有的 HTTP 請求構造方法,以及通過傳入參數的方法,對發送的請求進行定製化的配置,可以用來應對各種不同的請求場景。
發送 get 請求:
在請求中添加 data 參數,並發送 post 請求:
在請求中添加 data 參數,並發送 put 請求:
發送 delete 請求:
發送 head 請求:
發送 options 請求:
也可以直接使用 request 函數,傳入不同的 method,例如使用這個方法發送 get 請求:
下面的參數都是非必須參數,但是如果需要對請求做額外的定製化,則需要掌握以下這些參數的作用。
-
header 參數
通過傳入 dict 定製請求頭: -
data 參數
發送編碼為表單形式的數據單: -
files 參數
上傳文件,dict 格式。
注意:建議用二進制模式(binary mode)打開文件。這是因為 Requests 可能會試圖為你提供 Content-Length header,在它這樣做的時候,這個值會被設為文件的位元組數(bytes)。如果用文本模式(text mode)打開文件,就可能會發生錯誤。 -
timeout參數
設定超時時間(秒),到達這個時間之後會停止等待響應:
注意:timeout 僅對連接過程有效,與響應體的下載無關。timeout 並不是整個下載響應的時間限制,而是如果服務器在 timeout 秒內沒有應答,將會引發一個異常(更精確地說,是在 timeout 秒內沒有從基礎套接字上接收到任何位元組的數據時),如果不設置 timeout,將一直等待。 -
allow_redirects 參數
控制是否啟用重定向,bool 類型,選擇 True 為啟用,選擇 False 為禁用。 -
proxies參數
設置代理,dict 格式,key 值為選擇的協議,可以分別設置 HTTP 請求和 HTTPS 請求的代理。 -
verify 參數
可以傳入 bool 值或者 string,默認為 True。如果設置為 False 的即為忽略對 SSL 證書的驗證;反之就是需要做驗證;如果傳入值為 string 的話,代表指定本地的證書作為客戶端證書。
從本地傳入證書:
忽略對SSL證書的驗證:
另外三個重要參數 Json、Cookies、Auth 在後面的章節再進行詳細的介紹。