引言
我們在做python接口自動化測試時,接口的請求方法有get,post等;get和post請求傳參,和獲取接口響應數據的方法;
請求接口為Post時,傳參方法
我們在使用python中requests庫做接口測試時,在做post接口測試傳參的時候,需要傳入請求體,我們把請求體定義成一個字典類型含有key和value的值,如下
然后請求的時候,會把data賦值給post請求,然而這樣是錯誤的,data的數據類型為dict,接口請求的數據類型為字符串,只不過是json格式的字符串,但是本質是字符串是不會改變的,如下圖,直接使用data參數會提示傳參失敗,沒有請求體;
一般情況下,使用request傳參時,會傳入data或者json,什么情況下傳data或者json,我們在接口文檔或者系統接口請求時查看它的Content-Type的類型,如下圖我們查看登錄接口為:application/json,為json格式,則使用json參數
方法一:通過json.dunps(body)轉化成json格式的字符串,然后傳遞給data;
方法二:在傳參時直接格式化成json格式傳參:
如果content-type為application/x-www-form-urlencoded,為表單格式,則使用data參數
獲取接口請求響應數據
我們在使用python接口測試過程中往往會對一個請求接口獲取返回值。來進行斷言或者傳入其他接口 使用,下面我們來看獲取返回結果的幾種方法;
request 接口請求時,不對數據做處理時,返回數據為requests.models.Response,無法獲取到返回值
此時我們需要對返回數據做處理,如下;
response.text # 響應文本數據(字符串)
response.status_code # 響應的狀態碼,測試時可以用來做接口的斷言
response.json() # 返回的數據類型變成了dict,這樣就方便我們按照字典的操作去拿數據
通過字典的方法去獲取響應數據,不需要進行轉化,比較方便
response.content # 響應返回的內容(二進制),一般用來獲取返回數據為文件,圖片,或者爬取視頻
response.cookies # 獲取返回的cookies信息