當前位置: 妍妍網 > 碼農

IDEA中這麽強大的介面偵錯外掛程式,相見恨晚啊!

2024-03-03碼農

大家好,我是磊哥。

在後端SpringBoo開發中,都需要一個介面測試工具,從一開始的postman,到現在的國產測試工具,數不勝數,而最方便的莫過於在IDEA中就可以偵錯,因為IDEA外掛程式中有能力分析出當前計畫所編寫的Controller數據,可以進行統計,更方便我們發起http請求,不需要復制url到別的測試工具了,今天就推薦一款,名叫Cool Request,他純免費、開源。

  • 外掛程式名稱: Cool Request

  • 作用: 簡化SpringBoot後端介面偵錯流程

  • 安裝方式: IDEA 外掛程式商店中搜尋Cool Request


  • 效果圖

    Cool Request的界面非常簡單,下面是他的主界面,可以收集計畫的Controller資訊。

    基本HTTP請求

    當雙擊某個Controller時候,會跳轉到請求發送界面,在這裏可以填寫參數,Cool Request和同類的外掛程式相比,在填寫Header時候,也是有提示的,而其他沒有,這一點非常方便。

    結果預覽

    Cool Request也有五種不同的響應預覽,會自動根據響應頭中的Content-Type跳轉到不同的預覽效果裏,有json、text、image、html、xml。

    手動觸發SpringBoot中的定時器。

    測試定時器時,不知道大家是怎麽測試的,以前是透過單獨寫一個Controller,然後在內部呼叫一下,而用了Cool Request,居然可以支持手動觸發,這樣無論定時器的時間間隔是多少,都可以在Cool Request中隨心所欲的呼叫。

    反射呼叫

    這一點可能是有點抽象,不好理解,這個功能只有在特定場景下才能體會到極其方便。

    試想一下這個場景。

  • Controller返回的資訊不需要使用者資訊,也就是一些全域的數據

  • 但是Controller需要使用者登入後才能使用,即需要附帶Token

  • 你的計畫具有攔截器,會攔截沒有登入的使用者

  • 這個時候你有沒有想過,我這個Controller又沒有用到使用者資訊,能不能在偵錯時候繞過攔截器,以前的做法可能是關閉攔截器,或者先登入,正常拿到Token後在呼叫,而Cool Request的這個功能就是解決這個問題的,他可以透過反射的一系列技術,繞過攔截器,將請求直接到達Controller,並返回結果。

    使用方式是在請求界面選擇reflex,然後填寫參數後發起請求。

    但是reflex也有缺點,他同時也繞過了過濾器,並且沒有辦法讓過濾器也執行,唯一的辦法是發起正常的HTTP請求。

    強大的前後置指令碼

    最方便的莫過於Cool Request提供了java的前後置指令碼了,也算不上指令碼了,習慣這麽叫,而其他外掛程式要不就是沒有,要不就是提供的JS指令碼,對不熟悉JS的人來說,增加了學習成本,而Cool Request就非常方便了,另外在編寫程式碼時,是有語法提示的,例如在指令碼中修改參數的api,也不需要過多的學習,幾乎是0成本。

    在handlerRequest方法中,有兩個參數,第一個是日誌輸出介面,可以使用他的println方法輸出日誌,會在右面的log視窗看到,第二個參數是HTTPRequest,他有一系列方法,使用.號時候就有提示,所有的方法我們一眼就能看出是做什麽的。

    更方便的是,指令碼中可以呼叫計畫的類,也支持第三方的類,比如SpringBoot內建的一些Util工具類,都可以呼叫,已經方便到極致了。

    但是也有一個小缺點,內建的編譯器是java8的,也就是說,計畫使用的java版本超過8,或者是第三方庫的版本超過java8,就無法呼叫了,比如計畫使用了SpringBoot3,就無法呼叫,但是都可以在指令碼中自己實作。

    在一些動態參數時候,非常有用,比如參數的簽名值,是透過一些參數計算出來的,或者是動態時間。

    支持多種請求體

    Cool Request支持六種請求體,也支持二進制檔上傳。

    快速匯入cURL參數

    如果有一個cURL參數(可能是從瀏覽器中復制過來的),那麽可以快速匯入的Cool Request裏面,同時也支持將請求復制為cURL格式。

    匯出到Apifox

    如果團隊使用了apifox,它還可以支持匯出到apifox裏面,雖然apifox自己也有外掛程式,但是apifox不提供目錄選擇,而Cool Request支持,當然需要配置apifox的一些token,這點可以在外掛程式的官網找到詳細的說明。

    全域搜尋API

    可以透過一個api路徑來快速找到計畫中的Controller位置。

    靜態資源伺服器

    它內建了一個靜態資源伺服器,使用也非常簡單,選擇目錄、選擇埠、開啟即可,就可以透過瀏覽器存取此目錄下的檔了。