都2024了,還在用 Postman 做 HTTP 接口測試嗎?
作為Java開發者,尤其是做業務開發的,免不了要寫一大堆接口,也就是我們所說的 Controller API。
身為一名合格的后端開發人員,我們不能直接把寫完的接口拋給前端用(ps:雖然有一些人就是這么干的,實話說,我也這么干過,但前提是跟前端關系比較好,要不然容易挨打)。而是先自己測試一下(俗稱自測),等測試通過了,再上測試環境,再給前端聯調。
從而節省來回返工和扯皮的時間,順便也能維護作為后端的尊嚴,以及證明自己寫的代碼質量沒問題。
那你平時做接口測試的時候用什么工具呢?我問了一圈發現,很多人都用 Postman。Postman 確實是很好用,我也用,但是更多的是用來測試第三方服務,比如要集成一個外部HTTP SDK,一般會在 Postman 中單獨創建一個集合來用。
但是如果是平時做寫 Java 接口的話,再從 IDEA 中跳出來到 Postman 中創建一個 Request 就有點兒麻煩了。人懶,所以我選擇在 IDEA 中無縫完成,不來回切換窗口。
這就說到今天的主角了,IDEA 中的一個 HTTP 請求插件 - HTTP Client
使用 HTTP Client 插件,可以直接在 IntelliJ IDEA 代碼編輯器中創建、編輯和執行 HTTP 請求。
在插件市場搜索 HTTP Client 安裝即可,這還是 JetBrains 官方出品的。
圖片
安裝完成后,項目中Controller 中帶有 @RequestMapping、@GetMapping、@PostMapping注解的HTTP接口前都會多一個小圖標,IDEA 版本不一樣圖片的樣式也有些差別。但是功能都一樣,點擊小圖標,會轉到一個以 .http結尾的文件中,這就是 HTTP Client 的編輯器,可以在這里創建一個項目或者一個 Controller 的所有請求。
圖片
然后在 .http文件中,點擊任何一個接口前的綠色小按鈕,就可以執行請求了。
圖片
所有的 .http文件統一在項目的Scratches and Consoles下的Scratches目錄下,可以根據功能模塊創建多個文件,來區分不同的功能,和 Postman中的集合是一個意思。
圖片
可以通過左上角小按鈕來添加不同類型的請求,比如 Get、不同參數形式的 Post ,還支持GRPC、WebSocket 這些。
圖片
這里要說一個小技巧,有時候我們做的一個 POST 接口請求參數過多,有些大表單甚至有幾十個參數,這也是很多人不想測試的原因,構造表單參數就很麻煩了。
可以裝一個實體轉 JSON 的插件,直接一下將實體類轉為 JSON 。這不一個JSON參數就出來了,比如這個 POJO to JSON插件。
圖片
例如,進入到一個參數實體中,點擊右鍵,然后選擇Copy Json,完整的 JSON 參數就有了,很方便。
圖片
如果不想裝插件的話,可以用 ChatGPT、Kimi ,將實體類給他們,讓他們轉一個 JSON 出來,只要你的參數名命名規范,出來的參數值都堪稱完美。
說回 HTTP Client,還可以創建不同的環境文件,來區分不同的環境,比如開發和測試環境。
圖片
我創建了一個環境文件,然后在里面定義了 dev 和 test 兩個環境,每個環境里的參數值是不一樣的。
圖片
然后在請求中選擇對應的環境,就可以使用對應的參數了。
圖片
HTPP Client 當然也考慮到一直使用 Postman 的用戶了,安裝 Import from Postman Collections這個插件后,可以一鍵將 Postman 集合導進來,然后在 IDEA 中快速的將 Postman 的請求轉為 HTTP Client 請求。
圖片
別的功能其實還有,比如支持指定 HTTP 協議的版本,在結尾加上 HTTP/2可以指定使用 HTTP/2 協議。
將 curl 命令粘貼進去,自動轉為 HTTP Client 格式等等。