1224JMeter、Postman、Requests介面測試經驗分享-POST請求(二)
此篇分享,獻給我既愛又恨的自家公司的介面。在自學介面自動化測試中,這個Json引數格式的post請求,我爬了整整4天的坑,害的我中間過週末也頭大。【這部分後面會分享】
(一)POST請求-application/json
此次分享主要講的是Content-Type設定為application/json的POST請求,即以序列號JSON資料的形式提交的post請求。
此種json格式的引數和值 寫成 { “key1”:“value1”, “key2”:“value2”}。
最好先學習簡單的JSON編寫知識【JMeter本身是不能對Json進行格式校驗的】
JMeter訪問此post請求【設定了斷言】
A. 新增資訊頭管理。配置元件》 HTTP資訊頭管理器
B.在資訊頭編輯頁面,輸入content-type application/json
C.http請求,Body Data中輸入json格式的引數
D.響應資訊
E.請求資訊
Postman訪問此post請求【設定了斷言】
A.把請求資料放在Body中;選擇RAW;選擇JSON[application/json];輸入json格式的引數資料
B.Headers自動做了新增。
C.斷言設定和實際的響應體
Requsets庫 自動化測試訪問此post請求【設定了斷言,列印了很多資訊】
最推薦的:直接使用json關鍵字來傳引數,會被自動編碼
(二)Fiddler抓包驗證
Pycharm指令碼中的三個請求傳送後,使用Fiddler抓包,結果如下:
【Raw】
A.對應用例的程式碼:r_data = requests.post(url_1, json=t_dict)
B.對應用例的程式碼: r_data = requests.post(url_1, data=json.dumps(t_dict))
C.對應用例的程式碼: r_data = requests.post(url_1, data=demjson.encode(t_dict))
關於請求中的些許差別【在請求頭中 多了一個Content-Type: application/json】,具體原理我也不甚懂;這兒主要是想展示下這些原始資料。
後面的請求頭、響應體及JSON只展示第一個;
【請求頭、響應頭】
【請求的引數、響應的內容】
交流技術 歡迎+QQ 153132336 zy