接口測試框架實戰(一) | 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 在後面的章節再進行詳細的介紹。

原文鏈接