IntelliJ IDEA 的這個接口調試工具真是太好用了!

2020-11-24 CSDN

作者 | tan日拱一兵

責編 | 屠敏

抗擊疫情,在家辦公。工作照常幹,領導需要幾個新功能接口開發。以前在公司辦公,通常開發完的功能沒什麼問題,暴露出 Swagger 接口文檔,直接找旁邊的前端大人聯調測試了。

當下,君在長江頭,我在長江尾,夜夜思君不敢出門見君啊,一切測試全交給自己吧:

雖然想念前端,但是在家辦公也絕對是和在公司辦公一樣一樣的,高效不(qu)摸魚。

插播背景

在多個產品線上來回穿切換著開發功能,以前用Postman的場景是這樣的:

實際遠遠不止這幾個文件夾來歸類多個產品線的接口,Postman的功能非常強大,但是面對以下這些狀況時,我覺得調試一個接口太麻煩了 (這裡不討論工具的好壞,工具是幫助我們提高效率的,每個人的需求也不一樣,我只說明我個人遇到的一些情況,不喜請勿噴)

查找配置多數要通過滑鼠點來點去, 與習慣文本和快捷鍵操作的便捷方式違背調試別人接口要導入他們的一些數據,比較麻煩多個產品線環境變量查看不直觀寫完接口要來回切換應用進行測試,比如(IDEA <——> Postman)快速定位接口比較麻煩......無意間發現 IntelliJ IDEA 的 HTTP Client 工具剛好能解決我上面提到的一些問題,簡單的說就是能直接在 IDEA 的代碼編輯器中 創建,編輯,執行 HTTP請求,就像這樣(如果你心動了,請繼續向下看吧):

於是,去官網查看一番作出如下整理:

走進 Http Client

HTTP Client 是 IDEA 默認綁定好並啟用的插件,如果你那裡沒有啟用,按照下圖啟用就好:

點擊菜單:Tools — HTTP Client — Test RESTful Web Service

接下來進入下面的界面:

上圖已給出提示,REST Client 是被棄用的,點擊右側的 Convert request to new format , 進到下面界面:

默認會創建一個名為 rest-api.http 的文件,該文件被存儲在 Scratches 文件夾下,為了突出主角光環,關於 Scratch Files 請官網自行查看 (繼續向下看不影響理解的),黃色框線的功能也非常有用,繼續向下看

創建 HTTP request 文件

剛剛提到的 rest-api.http 就是 HTTP request 文件,可以通過兩種方式創建:

通過快捷鍵 N 然後選擇 HTTP Request. (文件存放在Scratches 文件夾)通過菜單操作 File—New—HTTP Request (文件存放在我們指定的目錄下,就和我們平時創建class/package是一樣一樣滴)如果在項目中使用,這裡推薦使用第二種方式,因為它可以作為項目文件,通過 Git 提交到倉庫,大家共享文件,共同維護接口請求數據,自然就不會出現調試別人接口還要導入他人數據的情況啦。

編輯 HTTP request 文件

我們模擬實際項目中場景來編輯文件:

用戶登錄,成功後獲取 Token,通常是 POST 請求用戶後續訪問行為都要在請求頭中攜帶登錄成功返回的 Token通過點擊 Add Request,選擇相應的方法就可以編寫啦

都知道,通常寫一個完整的請求需要寫好多內容,貼心的 IDEA 給我們提供了模版,我們只需要在 Examples 中找模版就可以啦,比如找 POST 請求的模版,選取合適的拷貝過去就可以,so easy~~~

到這裡,就可以發送基本的請求了,但是,一個項目中接口眾多,如何快速生成參數?如何快速切換埠?如何讓登錄之後的每個請求自動攜帶成功返回的 Token?我們需要更高級的玩法。

HTTP Client 進階玩法

使用環境變量

在編寫HTTP請求時,可以使用變量對其元素進行參數化。變量可以保存請求的host、port和path、查詢參數或值、請求頭值或請求體值等.

使用變量的方式非常簡單,就用兩個大括號包圍定義好的變量就可以了,就像這樣:

當然我們也要有地方定義變量。

定義環境變量

環境變量需要定義在環境文件中,環境文件有兩種:

創建名為 rest-client.env.json 或者 http-client.env.json 的環境文件(其實裡面就是保存 JSON 數據),該文件裡可以定義用在整個項目上的所有常規變量創建名為rest-client.private.env.json 或者 http-client.private.env.json, 看文件名你應該也猜到這是保存敏感數據的,比如密碼,token等,該文件默認是被加入到 VCS 的 ignore文件中的,同時優先級高於其他環境文件, 也就是說,該文件的變量會覆蓋其他環境文件中的變量值裡面的文件內容就像這樣:

運行一下我們編寫的請求吧:

IDEA自動識別多個環境,這樣就可以輕而易舉的切換環境,使用不同的變量值了(這皮鞋,你說亮不亮,還有更亮的)

巧用 response handler 腳本

上面提到,我們要讓登錄成功後的所有請求都自動攜帶成功返回的 Token,這樣不用我們每次都手動將其添加到header中,同樣有兩種方式將腳本插入到請求中

內嵌方式

外部文件方式(就是將內嵌的腳本抽離出到文件中)

以登錄返回獲取的token設置到變量中為例,看代碼:

注意

response.body.result.token 是我按照我登錄返回的數據結構寫的,不同結構不一樣,你也可以是這樣的 response.body.token , response.body 之後根據你的數據結構發揮吧。

我還是不放心,把我的登錄返回結構(項目中怎樣設計這種結構,可以參考之前寫的Springboot返回統一JSON數據格式是怎麼實現的?)粘貼在此處吧,這回理解了吧?

接下來我們就可以愉快的在其他請求上攜帶這個 Token 了

注意:

這裡的Authorization 類型,大家根據自己的實際情況做修改,比如:Authorization: Bearer {{auth_token}}

以上這些已經滿足我的日常使用,沒有進一步了解更多,更多關於 Response 腳本的用法請大家查看官網 HTTP Response reference吧

你以為到這裡結束了(OMG),還有香料需要和大家分享,搭配上面功能使用更棒哦。

輔助功能說明

RestfulToolkit

RestfulToolkit 同樣是個插件,在插件市場搜索安裝即可。

安裝了這個插件後,打開側邊欄,項目的所有接口信息都會展現在此處:

我常用的功能就是把指定接口生成的JSON數據拷貝到 HTTP request 文件中,免去手寫的麻煩了,你說方便不?

除此之外,使用快捷鍵 cmd+\, 可以根據關鍵字快速找到接口,回車迅速到達代碼接口位置,這也是帶來了極大的便利。

Live Template

項目中請求內容各有不同,IDEA標準提供的GET POST 請求案例可能還不能滿足我們的需求,這時我們就可以利用 Live Template 定製自己的模版,迅速生成request 內容,像這樣:

JSON Viewer

JSON Viewer是一款 Chrome瀏覽器插件,在瀏覽器 Omini-box 中輸入 json-viewer + Tab, 粘貼json在此處,就可以對json數據進行格式化了。

打開開發者工具,在Network下雙擊某個HTTP請求,會自動在 new tab下格式化返回的json數據,免去了粘貼數據然後格式化的煩惱

關於自測接口的乾貨我抖的差不多了,抖抖更健康。

總結

再次重申,不做工具黨,也沒有任何批判之意,工具只是為了讓我們更高效的工作,選擇適合自己的。從上面的介紹中來看,IDEA HTTP client 搭配我說的幾個輔助功能很好的解決了文章開頭說明的幾個問題,對我個人情況來說,足矣!!

參考

Testing RESTful web services:https://www.jetbrains.com/help/idea/testing-restful-web-services.html

相關焦點

  • 如何在Linux Ubuntu中安裝IntelliJ IDEA最新版
    官方Linux二進位文件可從以下連結下載:  下載IntelliJ IDEA 2017.2:https://www.jetbrains.com/idea/download/#section=linux  解壓縮包,運行ide文件夾中的idea.sh啟動IDE,可以手動創建應用程式啟動器。
  • 這 幾個 IDEA,調試的騷操作,用了都說爽!
    一、條件斷點循環中經常用到這個技巧,比如:遍歷1個大List的過程中,想讓斷點停在某個特定值。二、回到"上一步" 該技巧最適合特別複雜的方法套方法的場景,好不容易跑起來,一不小心手一抖,斷點過去了,想回過頭看看剛才的變量值,如果不知道該技巧,只能再跑一遍
  • IntelliJ IDEA 2020.1 正式發布,15 項重大特性、官方支持中文了!|...
    6、改進的導航欄/麵包屑欄這個小功能我也是非常的喜歡,當然我平時使用快捷鍵會更多,但也還是喜歡此功能。IntelliJ IDEA 2020.1 提供了一種新選項來簡化項目導航。新導航欄可以顯示 Java 類和接口中的方法,用戶無需滾動屏幕,即可直接跳轉到需要在文件中查看的行。如果之前很少使用導航欄,那麼何不體驗一下這項功能。
  • 常見十大Flex調試工具和Flex框架
    常見十大Flex調試工具和Flex框架 Flex有很多值得學習的地方,你對Flex調試工具和Flex框架是否熟悉,本文向大家介紹一些常用的10個Flex調試工具和Flex框架用法。
  • 使用 RTMI 調試 TMC4671 PI
    採用USB供電帶有一個小巧的10引腳接頭和和TMC4671-EVAL的RTMI接口引腳相同,且具有相同的引分配可以在TMC4671估板上找到。TMCL-IDE提供軟體工具用於調試不同控制環路。因此,RTMI是調試、監控和系統配置的最簡便的方。1 Items used2 USB-2-RTMI Driver Installation參考 USB-2-RTMI指南 完成驅動安裝。
  • 「經驗」太坎坷,CC2650STK(SensotTag)調試筆記
    真是太神奇了,這說明XDS110基本上是可以用的於是用UniFlash寫examples\cc2650stk\sensortag\iar\app\FlashOnly_OAD\Exe\sensortag_cc2650stk_app.hex文件到CC2650有時候能寫成功,可是成功後裝上電池也沒有反應有時候CC2650STK上的紅燈會一直亮
  • 盤點嵌入式開發工具,或許能用上!
    那麼有哪些好工具可以讓工作事半功倍呢?所以魚鷹認為,這個神器必須安裝,特別是查看linux內核這種大型源碼時,更是如此。而且它安裝包也很小,不用太關心內存問題,你,值得擁有。7、Vscode在開發中,有一個非常好用的工具,Visual Studio Code,簡稱VS code。都不用我安利VS code,大家就會乖乖的去用,無數個大言不慚的攻城獅,都被VS code比德芙還絲滑的強大功能所折服。
  • 「每日github」6:restful接口mock工具:json-server|K8s上榜等
    1,zeit / next.js前端框架真是層出不窮。Next.js是一個輕量級的 React 服務端渲染應用框架。宣傳的目標是使react應用更簡單。這個庫還是相當好用的,各種時間日期顯示操作功能齊全,且有多語言支持。這個庫建議大家收藏,你必然會用到的,到時候不需要自己重複造輪子。這也是我寫這一些列文章的初衷,避免重複造輪子。3,node這個項目就是nodeJs項目,這是之前的一個老項目地址。所以star數很多,但是沒用了,已經遷移了。
  • 新版微信開發者工具可期:支持PC小程序調試、圖標更新
    據IT之家網友「stevapple」投稿,微信團隊消息,微信開發者工具穩定版 1.02.2003250 近日更新:雲開發支持按量付費、PC小程序調試、圖標更新等。以下為官方更新公告:1. 編輯器優化微信開發者工具的編輯器功能經過重新調整,優化並增加了若干功能。
  • S12單片機模塊應用及程序下載調試
    它包括兩個8路10位精度A/D轉換器,控制器區域網模塊(CAN),增強型捕捉定時器並支持背景調試模式。DG128有112-pin和80-pin兩種封裝形式,80-pin封裝的單片機沒有引出用於擴展的埠,只引出了一個8路A/D接口。
  • 【實例】如何用串口軟體調試變頻器?
    每一個做工控的都必須要會利用串口調試軟體來和我們的外圍設備來做通訊測試。今天我們就來學習怎麼用串口調試軟體控制臺達的這款變頻器。廢話不多說,直接進入正題。 首先我們要準備好USB轉RS-232的串口線和RS-232轉RS485的模塊,或者USB直接轉RS485也行。
  • Uber 開源 AI 可視化調試工具 Manifold,2 個工作流讓計算性能提升...
    可視化設計隨著機器學習越來越成為相關業務不可分割的部分,提供使模型更透明且易於理解工具就顯得更加重要,這一工具可以使得開發者能自信自如地使用機器學習生成的預測。但考慮到機器學習模型本質上是不透明的複雜性,則需要通過新興的機器學習可視化來解決這個問題。
  • 無線路由器接口如何連線 無線路由器接口連線方法【介紹】
    路由器後面都有哪些口  下圖為一張最常用的路由器接口示意圖   我們可以看到,除了電源接口外,路由器一般有兩種顏色的口,  接下來小編將給大家舉幾個常見的連線方式  案例一:路由器的調試  買回來的新路由器是需要調試設置的,路由器調試需要將網線一頭與電腦相連,而另一頭連接 LAN 口(黃色、數量多的口)  這時在網址中輸入 192.168.1.1 則可進入路由器的設置界面
  • 微量水分測定儀注意事項及調試步驟
    調試步驟:1:用微升進樣器取60微升左右純淨水。2:每注4微升純淨水停頓1-2秒,等待試劑與水的化學反應。3:當試劑變為暗紅色時,每注2微升水,停頓3秒左右。或調試試劑注水過急,過多。4:調試試劑後顯示數值與標定實驗結果無關,沒有參考價值。二、試劑的失效判定:1:人為調試過程中,一次性注入過多的純淨水,電解電極內和大池瓶內的試劑同時變色。儀器記數不停。在這種情況下屬人為操作失誤導致試劑失效。
  • 年輕貌美的身體真是太好了 談感情傷錢的動態圖
    年輕貌美的身體真是太好了 談感情傷錢的動態圖 我爸剛才花了三十分鐘,用PPT向我解釋了避孕的重要性。每張PPT都是我的照片。 年輕貌美的身體真是太好了 談感情傷錢的動態圖 2021-01-12 12:45 網際網路
  • 5款好用的 REST API 工具,推薦給你!
    來源:hackernoon.com/rest-api-tools-smackdown-nov3ulw 哈嘍,各位新來的小夥伴們,大家好!
  • API 測試工具 Hitchhiker v0.7,Schedule 的對比 diff
    支持在腳本裡寫console.log(info, warn, error)來調試代碼測試工具裡的腳本調試起來比較麻煩,因為腳本是在服務端跑的,所以使用console只會在服務端列印結果,瀏覽器端是看不到的,這次發布就添加了對console的支持,在腳本裡寫的列印信息會從服務端返回回來再在瀏覽器控制臺裡列印出來。
  • IT職業新方向」技術大牛獨家繪製的接口測試學習路線圖…
    我幫大家梳理了接口測試技術的學習路線,全網獨有,趕緊收藏好,絕版乾貨!1、熟練掌握接口測試工具2、數量掌握抓包工具3、能閱讀接口測試用例技能要點:1、掌握常見的接口測試工具使用2、依據測試用例手工執行接口測試3、判斷接口測試的結果是否通過
  • 高分SCI的源頭,good idea哪裡來?
    ,心裡有個敞亮的idea。年輕的你,有了idea也得自己一手一腳的做,熟悉本實驗的儀器設備,知道每個儀器能夠生產什麼樣的圖片來支撐你的idea,至關重要。例如,想要表達純化一個新發現的功能蛋白,既可以用E.coli也可以用insect cells。
  • 手機維修中用哪種顯微鏡比較好
    手機主板集成度越來越高,修主板動IC的都需要在放大鏡配合下工作,現在很多維修同行都配備了顯微鏡,一些想購買的同行又不知道什麼款式好用,下面就說下各種工具的優缺點。一,手持放大鏡,價格20到50元之間,一般維修足夠用,使用比較方便價格合適。