<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          再見!Postman

          共 3353字,需瀏覽 7分鐘

           ·

          2021-07-05 06:57

          作者:陳凱玲
          原文鏈接:http://www.kailing.pub/article/index/arcid/257.html
          文末福利
          前言

          接口調(diào)試是每個軟件開發(fā)從業(yè)者必不可少的一項技能,一個項目的的完成,可能接口測試調(diào)試的時間比真正開發(fā)寫代碼的時間還要多,幾乎是每個開發(fā)的日常工作項。所謂工欲善其事必先利其器,在沒有嘗到IDEA REST真香之前,postman(chrome的一款插件)確實是一個非常不錯的選擇,具有完備的REST Client功能和請求歷史記錄功能。但是當(dāng)使用了IDEA REST之后,postman就可以丟了,因為,IDEA REST Client具有postman的所有功能,而且還有postman沒有的功能,繼續(xù)往下看。

          從postman到IDEA REST Client

          真香定律的原因有如下幾個:
          1. 首先postman的所有功能IDEA REST Client都具備了,如REST Client控制臺和歷史請求記錄
          2. 其次如果能夠在一個生產(chǎn)工具里完成開發(fā)和調(diào)試的事情,干嘛要切換到另一個工具呢
          3. 然后IDEA REST Client還支持環(huán)境配置區(qū)分的功能,以及接口響應(yīng)斷言和腳本化處理的能力
          4. IDEA REST Client的請求配置可以用文件配置描述,所以可以跟隨項目和項目成員共享


            IDEA REST Client控制臺
          從頂層工具欄依次Tools -> HTTP Client -> Test RESTFUL Web Service 打開后,IDEA REST Client控制臺的界面如下樣式:

          可以看到,這個控制臺展示的功能區(qū)和postman已經(jīng)沒什么差別了,包括請求方式,請求參數(shù)和請求頭的填充都已經(jīng)包含了,特別說明下的是,如果請求的方式是Authorization :Basic這種方式認(rèn)證的話,可以點擊下圖所示的按鈕,會彈出填充用戶名和密碼的窗口出來,填完后會自動補充到Authorization 的header里面去

          歷史請求記錄

          IntelliJ IDEA自動將最近執(zhí)行的50個請求保存到http-requests-log.http 文件中,該文件存儲在項目的.idea / httpRequests / 目錄下。使用請求歷史記錄,您可以快速導(dǎo)航到特定響應(yīng)并再次發(fā)出請求。文件內(nèi)容大如下圖所示,再次發(fā)出請求只要點擊那個運行按鈕即可。如果從請求歷史記錄再次發(fā)出請求,則其執(zhí)行信息和響應(yīng)輸出的鏈接將添加到請求歷史記錄文件的頂部。

          上面的歷史記錄就是一個完整的IDEA REST Client請求腳本,如果你是從控制臺觸發(fā)的,那么可以直接復(fù)制歷史請求記錄的文件放到項目里作為HTTP請求的腳本,給其他成員共享,如果不是,也可以直接新建一個.http或者.rest結(jié)尾的文件,IDEA會自動識別為HTTP請求腳本。

          語法部分

          ### 演示POST請求POST {{baseUrl}}}get?show_env=1Accept: application/json
          { "name":"a"}### 演示GET請求
          GET {{baseUrl}}}/postContent-Type: application/x-www-form-urlencoded
          id=999&value=content

          首先通過###三個井號鍵來分開每個請求體,然后請求url和header參數(shù)是緊緊挨著的,請求參數(shù)不管是POST的body傳參還是GET的parameter傳參,都是要換行的


          環(huán)境區(qū)分

          細(xì)心的你可能發(fā)現(xiàn)了上面示例的代碼,沒有真實的請求地址,取而代之的,是一個{{baseUrl}}的占位符,這個就是IDEA REST Client真香的地方,支持從指定的配置文件中獲取到環(huán)境相關(guān)的配置參數(shù),不僅baseUrl可以通過占位符替換,一些請求的參數(shù)如果和接口環(huán)境相關(guān)的都可以通過配置文件來區(qū)分。
          首先在.http的腳本同目錄下創(chuàng)建一個名為http-client.private.env.json的文件,然后內(nèi)容如下,一級的key值時用來區(qū)分環(huán)境的,比如,dev、uat、pro等,環(huán)境下的對象就是一次HTTP請求中能夠獲取到的環(huán)境變量了,你可以直接在請求的HTTP的腳本中通過{{xx}}占位符的方式獲取到這里配置的參數(shù)

          { "uat": { "baseUrl": "http://gateway.xxx.cn/", "username": "", "password": "" }, "dev": { "baseUrl": "http://localhsot:8888/", "username": "", "password": "" }}
          那么在選擇執(zhí)行請求的時候,IDEA就會讓你選執(zhí)行那個環(huán)境的配置,如:

          結(jié)果斷言
          IDEA REST Client可以針對接口的響應(yīng)值進行腳本化的斷言處理,立馬從一個接口調(diào)試工具上升到測試工具了,比如:

          ### Successful test: check response status is 200GET https://httpbin.org/status/200
          > {%client.test("Request executed successfully", function() { client.assert(response.status === 200, "Response status is not 200");});%}

          結(jié)果值暫存到環(huán)境變量

          試想下這樣的場景,當(dāng)一個系統(tǒng)需要通過認(rèn)證才能訪問的時候,如果用postman的時候,是不是先訪問登錄接口,然后獲得token后,手動粘貼復(fù)制到新的調(diào)試接口的header參數(shù)里面去,這太麻煩了,IDEA REST Client還有一個真香的功能,可以完美解決這個問題,請看下面的腳本:

          ### 演示POST請求POST https://httpbin.org/postContent-Type: application/json
          { "user": "admin", "password": "123456"}
          > {% client.global.set("auth_token", response.body.json.token); %}### 演示GET請求
          GET https://httpbin.org/headersAuthorization: Bearer {{auth_token}}
          在第一個認(rèn)證的請求結(jié)束后,可以在response里拿到返回的token信息,然后我們通過腳本設(shè)置到了全局變量里,那么在接下來的接口請求中,就可以直接使用雙大括號占位符的方式獲取到這個token了

          結(jié)語

          postman有口皆碑,確實是一個非常不錯的必備工具,之前給比人推薦這種工具時總是安利他postman。但是,IDEA REST Client也真的很不錯,值得嘗試一下,后面安利這種工具就切換到IDEA REST Client了,postman反正被我丟掉了。和第三方做接口對接時,項目里必備一個rest-http.http接口請求文件,滿足自己的同時也成方便了他人。



          如果你也有好的開源項目,歡迎推薦!

          微信號聯(lián)系:westbrook12000(ps:加好友請備注“開源”)

          回復(fù) 【小程序】獲取15套小程序源碼【學(xué)習(xí)+實戰(zhàn)+賺錢】
          回復(fù) 【關(guān)閉】學(xué)關(guān)閉微信朋友圈廣告
          回復(fù) 【實戰(zhàn)】獲取20套實戰(zhàn)源碼
          回復(fù) 【福利】獲取最新微信支付有獎勵
          回復(fù) 【被刪】學(xué)查看你哪個好友刪除了你巧
          回復(fù) 【訪客】學(xué)微信查看朋友圈訪客記錄
          回復(fù) 【python】學(xué)微獲取全套0基礎(chǔ)Python知識手冊

          Win11正式發(fā)布,新功能炸裂!


          涼涼!回形針終于被扒啦 。。。


          瀏覽 32
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  黄色免费看看 | 女人爽在线播放 | 天天干天天想天天日天天日 天天 | 激情偷拍在线亚洲 | 日本男人天堂 |