品牌高端網(wǎng)站建設(shè)公司網(wǎng)絡(luò)公司網(wǎng)頁設(shè)計(jì)
Requests 是一個(gè)優(yōu)雅而簡單的 Python HTTP 庫,其實(shí) Python 內(nèi)置了用于訪問網(wǎng)絡(luò)的資源模塊,比如urllib,但是它遠(yuǎn)不如 Requests 簡單優(yōu)雅,而且缺少了許多實(shí)用功能。所以,更推薦掌握 Requests 接口測試實(shí)戰(zhàn)技能,這也是互聯(lián)網(wǎng)大廠流行的接口測試?yán)鳌?br /> 下面從安裝 Requests 庫開始,一步步掌握接口請求構(gòu)造、接口請求斷言、Schema 斷言、Json/XML 請求、測試用例調(diào)試、HeadCookie 處理、Jsonpath 應(yīng)用、認(rèn)證體系等接口測試實(shí)戰(zhàn)技能。
pip 命令安裝 Requests。
Requests 官方文檔:
https://2.python-requests.org/en/master/
接下來就會使用最流行的 Requests 進(jìn)行接口測試。
Requests 提供了幾乎所有的 HTTP 請求構(gòu)造方法,以及通過傳入?yún)?shù)的方法,對發(fā)送的請求進(jìn)行定制化的配置,可以用來應(yīng)對各種不同的請求場景。
發(fā)送 get 請求:
在請求中添加 data 參數(shù),并發(fā)送 post 請求:
在請求中添加 data 參數(shù),并發(fā)送 put 請求:
發(fā)送 delete 請求:
發(fā)送 head 請求:
發(fā)送 options 請求:
也可以直接使用 request 函數(shù),傳入不同的 method,例如使用這個(gè)方法發(fā)送 get 請求:
下面的參數(shù)都是非必須參數(shù),但是如果需要對請求做額外的定制化,則需要掌握以下這些參數(shù)的作用。
-
header 參數(shù)
通過傳入 dict 定制請求頭: -
data 參數(shù)
發(fā)送編碼為表單形式的數(shù)據(jù)單: -
files 參數(shù)
上傳文件,dict 格式。
注意:建議用二進(jìn)制模式(binary mode)打開文件。這是因?yàn)?Requests 可能會試圖為你提供 Content-Length header,在它這樣做的時(shí)候,這個(gè)值會被設(shè)為文件的字節(jié)數(shù)(bytes)。如果用文本模式(text mode)打開文件,就可能會發(fā)生錯(cuò)誤。 -
timeout參數(shù)
設(shè)定超時(shí)時(shí)間(秒),到達(dá)這個(gè)時(shí)間之后會停止等待響應(yīng):
注意:timeout 僅對連接過程有效,與響應(yīng)體的下載無關(guān)。timeout 并不是整個(gè)下載響應(yīng)的時(shí)間限制,而是如果服務(wù)器在 timeout 秒內(nèi)沒有應(yīng)答,將會引發(fā)一個(gè)異常(更精確地說,是在 timeout 秒內(nèi)沒有從基礎(chǔ)套接字上接收到任何字節(jié)的數(shù)據(jù)時(shí)),如果不設(shè)置 timeout,將一直等待。 -
allow_redirects 參數(shù)
控制是否啟用重定向,bool 類型,選擇 True 為啟用,選擇 False 為禁用。 -
proxies參數(shù)
設(shè)置代理,dict 格式,key 值為選擇的協(xié)議,可以分別設(shè)置 HTTP 請求和 HTTPS 請求的代理。 -
verify 參數(shù)
可以傳入 bool 值或者 string,默認(rèn)為 True。如果設(shè)置為 False 的即為忽略對 SSL 證書的驗(yàn)證;反之就是需要做驗(yàn)證;如果傳入值為 string 的話,代表指定本地的證書作為客戶端證書。
從本地傳入證書:
忽略對SSL證書的驗(yàn)證:
另外三個(gè)重要參數(shù) Json、Cookies、Auth 在后面的章節(jié)再進(jìn)行詳細(xì)的介紹。
最后感謝每一個(gè)認(rèn)真閱讀我文章的人,禮尚往來總是要有的,雖然不是什么很值錢的東西,如果你用得到的話可以直接拿走:
這些資料,對于【軟件測試】的朋友來說應(yīng)該是最全面最完整的備戰(zhàn)倉庫,這個(gè)倉庫也陪伴上萬個(gè)測試工程師們走過最艱難的路程,希望也能幫助到你!