使用 postman 進行接口測試
postman 測試接口非常方便,接下來就開始測試 postman 的一些簡單用法。
一、postman 的簡單使用
打開安裝好的 postman 客戶端。
1. 使用 postman 獲取 html 網頁
postman 支持很多請求方式,默認使用的是 GET 請求方式,直接獲取一個網頁的數據時,就是使用 GET 請求方式。
在 postman 的 url 輸入框輸入 www.baidu.com ,點擊右邊的 Send 按鈕,就會獲取到百度首頁的 HTML 文件。
這個結果和使用瀏覽器訪問百度首頁獲取到的結果相同,只是瀏覽器會將 HTML 文件解析成我們看到的頁面,postman 保留了前端的代碼,不做解析。
2. 使用 postman 獲取 json 數據
https://httpbin.org 網站提供了一些供開發人員測試的接口,可以用來進行測試。
在 postman 的 url 輸入框輸入 https://httpbin.org/get ,點擊 Send 按鈕,這個網站會返回一個 json 數據,json 數據中的 User-Agent 是 PostmanRuntime/7.20.1,將我們發送請求的軟件名字返回了,如果使用瀏覽器打開這個網頁,返回的數據中 User-Agent 就是瀏覽器的信息。
3. 使用 postman 獲取圖片數據
如果訪問的接口返回的是靜態文件,比如說圖片,也可以使用 postman 來完成獲取。
當在瀏覽器訪問 GitHub 時,可以看到 GitHub 的圖標,一般的網頁圖標都是展示在瀏覽器的頂部。
可以訪問 https://github.com/favicon.ico 獲取到 GitHub 的圖標,在大部分的 Web 項目中,都會使用 /favicon.ico 來作爲網站的圖標接口。比如百度的圖標就訪問 www.baidu.com/favicon.ico ,QQ的圖標就訪問 www.qq.com/favicon.ico ,淘寶的圖標就訪問 www.taobao.com/favicon.ico,以此類推,自己開發的網站一般也會使用 /favicon.ico 接口。
4. 使用 postman 發送 POST 請求
在請求方式中,GET 和 POST 是最常用的兩種方式。GET 是最簡單的,POST 要比 GET 複雜一些,因爲要按照接口設計的要求發送數據給後端,後端才能返回正確的數據。
還是使用 https://httpbin.org 網站提供的測試接口,上面使用的是 https://httpbin.org/get 接口,同理可以猜到也有 https://httpbin.org/post 接口。
確實沒錯,在 url 輸入框輸入 https://httpbin.org/post ,將左邊的請求方式改成 POST 方法,POST 需要向後端發送數據,這個接口需要的數據是 json 格式的數據。數據放在請求體 Body 中,點擊 Body 按鈕,選擇 raw ,再點擊右邊的下拉框選擇 JSON ,然後輸入需要發送的 json 數據。
一切準備就緒,點擊 Send 按鈕,就會收到該接口返回的數據,也是 json 格式的,這個接口中返回了我們發送過去的數據。
此外, https://httpbin.org 網站還提供了 PUT 和 DELETE 等測試接口,都可以使用 postman 來測試。
測試 PUT 時就將請求方式改成 PUT,訪問 https://httpbin.org/put ,發送對應的數據。
測試 DELETE 時就將請求方式改成 DELETE,訪問 https://httpbin.org/delete 。
二、使用 postman 測試 Flask 項目接口
在前面的文章裏,我用 Python Flask 框架實現了簡單增刪改查的接口,接下來就用 postman 對這些接口進行測試。
接口實現的文章: https://blog.csdn.net/weixin_43790276/article/details/101390889
1. 查詢所有數據
先在本地運行 Flask 後臺程序和 Mysql ,Flask 默認服務地址是 http://127.0.0.1:5000/ 。
在 postman 的 url 輸入框裏輸入 http://127.0.0.1:5000/ ,然後點擊 Send 按鈕,在 Flask 的後端視圖函數中,返回的是一個模板文件,所以在 postman 中獲取到的就是模板文件的源碼,postman 不像瀏覽器會對模板文件進行渲染。
postman 返回的是 HTML 源碼,在我寫的這個 Flask 程序中,所有接口返回的都是同一個模板文件,HTML 源碼是一樣的,對比不出效果。
雖然 postman 默認不會渲染頁面,但並不代表沒有這個功能。在響應數據欄的上方,有一個 Preview 按鈕,就是大部分軟件都有的“預覽”功能,點擊 Preview 按鈕,就會看到跟瀏覽器頁面一樣的效果。完成這個 Flask 程序後,進行了一些演示,所以現在只剩一條數據,展示效果如下圖。
2. 添加數據
在實現的接口中,查詢所有,指定查詢和添加數據的接口是同一個,都是根路由 / ,將請求方式改成 POST ,url 繼續填 http://127.0.0.1:5000/ 。
後端接口是從前端的 form 表單中獲取數據的,所以要使用 form 表單將添加的數據發送給後端。不管是 from 表單,還是上面使用的 json 數據,都是攜帶在請求體中的,所以 form 表單也是通過請求體發送給後端。
點擊 postman 界面的 Body 按鈕,選擇 form-data ,然後按鍵值對的形式填寫 form 表單的數據,KEY 對應 from 表單中前端標籤的 name 值,VALUE 對應 from 表單中提交的內容,也就是我們在瀏覽器 input 標籤中輸入的內容。
確認填寫無誤後,點擊 Send 按鈕即可發送請求,獲取響應,返回的還是 HTML 文件。
點擊 Preview 預覽,現在已經多了添加的數據,添加成功。
3. 查詢指定數據
查詢指定數據的接口不變,請求方式也是 POST ,url 繼續填 http://127.0.0.1:5000/ 。
然後將需要查詢的數據用 from 表單的方式發送給後端,返回響應。
點擊 Preview 預覽,只顯示查詢的數據,查詢數據的接口也測試成功。
4. 修改數據
修改的接口有兩個,/update_person/<id> 和 /update_phone/<id> ,只測試 /update_phone/<id> ,另一個就不重複了。
修改數據的請求方式使用的是 POST ,在 RESTful 接口設計風格中,修改接口一般使用 PUT 請求方式,但並不是一定要遵守。
將 url 改成 http://127.0.0.1:5000/update_phone/11 ,在 url 中包含了修改的 id ,這個 id 值要到本地數據庫中查,因爲之前對數據多次刪除和添加,id 是自增的,所以現在需要到數據庫中確認 id 值,將這個值從 url 中攜帶給後端。
在 from 表單中填寫修改後的值,發送請求,返回響應,預覽,可以看到數據修改成功。
5. 刪除數據
刪除的接口也有兩個,/delete_person/<id> 和 /delete_phone/<id> ,這次測試 /delete_person/<id> 。
刪除接口的請求方式使用的是 GET ,在 RESTful 接口設計風格中,刪除接口一般使用 DELETE 請求方式,不一定要遵守。
如將上面添加的數據刪除掉,先到數據庫中查到這條數據的 id ,然後將 id 值從 url 中攜帶給後端。
點擊 Send 按鈕發送請求,返回響應,預覽,可以看到數據刪除成功,只剩下了最初的一條數據。
通過對一些網站接口的測試和對自己開發的簡單接口進行測試,可以看出 postman 進行接口測試確實是比較簡單的。