一.GET方法和POST方法傳遞數據的異同
http請求方法get和post是最常被用到的兩個方法,get常用於向服務器請求數據,post常用於提交數據給服務器處理。
GET方法其實也可以傳遞少量的數據。 但它存在以下問題:
1)GET 方法不包含body,因此以在URL中拼接字段的方式傳遞數據,
2)GET方法中的URL參數會被顯示到地址欄上,存在安全問題
3)傳遞的數據只能是鍵值對,,無法傳遞其他類型的數據
因此出於傳遞大量、多種類型的數據和安全性的考慮,上傳數據常使用post方法。
二.POST方法如何傳遞數據
POST方法提交數據給服務器,涉及到Content-Type和消息主體編碼方式兩部分。服務器根據請求頭中的Content-Type來判斷消息主體的數據格式和編碼方式,數據則存儲在body參數中上傳。
body支持多種數據格式,如form-data,x-www-form-urlencoded,json,xml,raw,不同的數據類型有不同的優勢,有自己擅長的業務場景。
例如:application/x-www-form-urlencoded是默認的數據類型,但是在傳輸大型文件的時候效率低下,multipart/form-data的報文的主體內則可以包含多部分對象,通常用來發送圖片、文件或表單等,適用於傳輸大型文件。
三.接口測試軟件簡介
簡單介紹下我們用來做接口測試的工具——Apifox。Postman自然是接口測試工具領域的老大哥,但Apifox這類軟件在於它整合了接口測試的整個流程——從接口文檔導入到單個接口的測試,整個接口套件的管理,以及自動化測試,一站式服務省去了幾個軟件切來切去的麻煩,現在我們直接用它來演示。
它的官網下載地址也順便掛一個:
四.POST請求接口的測試
Post接口請求的測試關鍵在於理解各個數據類型的含義,並且能構造相應的數據,對各種正常,異常和邊緣情況進行測試。接下來會一一介紹下各個數據類型的含義,並用Apifox演示一下各個類型的數據如何測試。
1.application/x-www-form-urlencoded
原生的form表單,在body中的數據格式為鍵值對。下圖所示為百度文字識別AI的一個POST請求接口,測試這個請求接口需要填入的數據有2項。
在header處填入Content-Type:
在body處填入要上傳的數據:
點擊發送,可以看到實際發出的請求為:
2.multipart/form-data
當數據較大的時候可以選擇multipart/form-data
實際發起的請求,Content-Type和body傳輸的數據可以在[實際請求tab]中查看:
3.Json
在接口請求中填入Json數據
發出的實際請求的Content-Type和Body數據類型:
五.測試方法
根據接口文檔的參數描述,設計接口測試用例,造出相對應的正常和異常數據參數,上傳數據進行測試。
1.設計接口測試用例
舉例:某開放平台API的接口文檔參數描述如下:
根據請求參數,上傳jpg,png,gif等格式的正常測試數據,再上傳非圖片的base64編碼數據進行測試,查看請求返回。
以該接口image參數測試的部分用例來作為例子:
2.Apifox中執行用例
a.直接上傳未經過編碼的照片
b.上傳非圖片的base64編碼
c.上傳照片的base64編碼:
3.保存接口測試用例,生成自動化測試套件
在測試管理tab導入測試用例,生成測試用例並一鍵運行:
查看並導出測試結果:
六.總結
這篇文章主要介紹了為什么要用post方法來傳遞數據,post方法body傳遞參數的4種數據格式;設計用例並使用Apifox進行測試,最后生成了自動化測試用例及測試報告。
大家有什么想討論的歡迎私信我或者在評論區里發表你的見解喔!