Requests 是一個(gè)優(yōu)雅而簡(jiǎn)單的 Python HTTP 庫全蝶,其實(shí) Python 內(nèi)置了用于訪問網(wǎng)絡(luò)的資源模塊闹蒜,比如urllib寺枉,但是它遠(yuǎn)不如 Requests 簡(jiǎn)單優(yōu)雅,而且缺少了許多實(shí)用功能绷落。所以姥闪,更推薦掌握 Requests 接口測(cè)試實(shí)戰(zhàn)技能,這也是互聯(lián)網(wǎng)大廠流行的接口測(cè)試?yán)鳌?br>
下面從安裝 Requests 庫開始砌烁,一步步掌握接口請(qǐng)求構(gòu)造筐喳、接口請(qǐng)求斷言、Schema 斷言函喉、Json/XML 請(qǐng)求避归、測(cè)試用例調(diào)試、HeadCookie 處理管呵、Jsonpath 應(yīng)用槐脏、認(rèn)證體系等接口測(cè)試實(shí)戰(zhàn)技能。
pip 命令安裝 Requests撇寞。
Requests 官方文檔:
https://2.python-requests.org/en/master/
接下來就會(huì)使用最流行的 Requests 進(jìn)行接口測(cè)試顿天。
Requests 提供了幾乎所有的 HTTP 請(qǐng)求構(gòu)造方法,以及通過傳入?yún)?shù)的方法蔑担,對(duì)發(fā)送的請(qǐng)求進(jìn)行定制化的配置牌废,可以用來應(yīng)對(duì)各種不同的請(qǐng)求場(chǎng)景。
發(fā)送 get 請(qǐng)求:
在請(qǐng)求中添加 data 參數(shù)啤握,并發(fā)送 post 請(qǐng)求:
在請(qǐng)求中添加 data 參數(shù)鸟缕,并發(fā)送 put 請(qǐng)求:
發(fā)送 delete 請(qǐng)求:
發(fā)送 head 請(qǐng)求:
發(fā)送 options 請(qǐng)求:
也可以直接使用 request 函數(shù),傳入不同的 method排抬,例如使用這個(gè)方法發(fā)送 get 請(qǐng)求:
下面的參數(shù)都是非必須參數(shù)懂从,但是如果需要對(duì)請(qǐng)求做額外的定制化,則需要掌握以下這些參數(shù)的作用蹲蒲。
header 參數(shù)
通過傳入 dict 定制請(qǐng)求頭:data 參數(shù)
發(fā)送編碼為表單形式的數(shù)據(jù)單:files 參數(shù)
上傳文件番甩,dict 格式。
注意:建議用二進(jìn)制模式(binary mode)打開文件届搁。這是因?yàn)?Requests 可能會(huì)試圖為你提供 Content-Length header缘薛,在它這樣做的時(shí)候,這個(gè)值會(huì)被設(shè)為文件的字節(jié)數(shù)(bytes)卡睦。如果用文本模式(text mode)打開文件宴胧,就可能會(huì)發(fā)生錯(cuò)誤。timeout參數(shù)
設(shè)定超時(shí)時(shí)間(秒)表锻,到達(dá)這個(gè)時(shí)間之后會(huì)停止等待響應(yīng):
注意:timeout 僅對(duì)連接過程有效恕齐,與響應(yīng)體的下載無關(guān)。timeout 并不是整個(gè)下載響應(yīng)的時(shí)間限制瞬逊,而是如果服務(wù)器在 timeout 秒內(nèi)沒有應(yīng)答显歧,將會(huì)引發(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 請(qǐng)求和 HTTPS 請(qǐng)求的代理带猴。verify 參數(shù)
可以傳入 bool 值或者 string昔汉,默認(rèn)為 True。如果設(shè)置為 False 的即為忽略對(duì) SSL 證書的驗(yàn)證拴清;反之就是需要做驗(yàn)證靶病;如果傳入值為 string 的話,代表指定本地的證書作為客戶端證書口予。
從本地傳入證書:
忽略對(duì)SSL證書的驗(yàn)證:
另外三個(gè)重要參數(shù) Json娄周、Cookies、Auth 在后面的章節(jié)再進(jìn)行詳細(xì)的介紹沪停。
喜歡軟件測(cè)試的小伙伴們煤辨,如果我的博客對(duì)你有幫助、如果你喜歡我的博客內(nèi)容木张,請(qǐng) “點(diǎn)贊” “評(píng)論” “收藏” 一鍵三連哦众辨!