拋棄postman吧,IDEA REST Client你不能不會用的插件

IDEA REST Client

基本技術

官網文檔:英語ok,而且不嫌繁瑣的直接來看

這是一個idea的插件工具功能類似postman,其最大的好處就是可以寫一些js代碼來輔助調試

  • 路徑:tools>httpclient>test restful web service
  • 詳細窗口
    在這裏插入圖片描述
  • 上邊也寫了說這個工具已經廢棄 ,建議編寫http文件來使用http client,
    其實就是創建.http或者.rest文件,在文件裏寫一些代碼邏輯來測試

基礎使用

  • 請求的格式
    // 使用三個#號來定義一個請求
    ### 
    // 請求接口
    Method Request-URI HTTP-Version
    // 頭信息
    Header-field: Header-value
    
    // 空一行寫參數
    Request-Body
    
  • 具體的實例在編輯器右上角
    在這裏插入圖片描述
    在圖中位置有示例代碼
    注意:支持curl的轉換

進階使用

  • 使用環境變量
    當你項目部署在多個環境的時候環境變量就尤爲重要,最典型的就是

    名稱 含義
    dev 開發環境
    uat 測試環境
    pro 正式環境
  1. 使用也很簡單,在和http文件同目錄下創建兩個文件(值得注意的是,這兩個文件如果在idea的scratches(臨時文件)裏需要把他拷貝出去一份,在任何地方)
    http-client.env.json和http-client.private.env.json(這個文件是不提交到版本控制的,當然也可以沒有,就是說這是一些私密信息)
    當用的是.rest的時候就是rest-client.env.json和rest-client.private.env.json文件

  2. 具體使用方式
    在http或rest文件裏使用{{}}來取到具體的變量值,下邊是一個參考例子

    http-client.env.json、
    在這個文件裏私密信息不寫如loginname和password

    {
      "?dev": "開發環境",
      "dev": {
        "baseUrl": "*****",
        "loginname": "",
        "password": ""
      },
      "?uat": "測試環境",
      "uat": {
        "baseUrl": "*****",
        "loginname": "",
        "password": ""
      },
      "?pro": "正式環境",
      "pro": {
        "baseUrl": "*****",
        "loginname": "",
        "password": ""
      }
    }
    

    http-client.private.env.json
    在這個文件裏定義私密信息

    {
      "?dev": "開發環境",
      "dev": {
        "loginname": "***",
        "password": "***"
      },
      "?uat": "測試環境",
      "uat": {
        "loginname": "***",
        "password": "***"
      },
      "?pro": "正式環境",
      "pro": {
        "loginname": "***",
        "password": "***"
      }
    }
    

    使用效果
    在這裏插入圖片描述

  • 使用腳本來測試與設置全局變量
  1. 格式

    GET host/api/test
    
    > {%
    // Response Handler Script
    ...
    %}
    
  2. 測試使用
    測試重要使用client的三個方法

    1. 測試方法
      client.test(testName, function)
    2. 斷言方法
      client.assert(condition, message)
    3. 打印日誌方法
      client.log(message)

    示例代碼

    > {%
    client.test("Request executed successfully", function() {
      client.assert(response.status === 200, "Response status is not 200");
      // 打印msg
      client.log(response.body.msg);
    });
    %}
    
  3. 設置一個全局變量
    一般來說我們總是需要一個token來使用接口,之前都是複製,現在我們使用全局變量來處理
    使用到的方法就是client.global.set方法
    示例代碼

    > {%
    client.global.set("token", response.body.token);
    client.test("Request executed successfully", function() {
      client.assert(response.status === 200, "Response status is not 200");
      client.log(response.body.msg);
      client.log(client.global.get("token"));
    });
    %}
    

    上邊就是顯示的就是設置和使用全局變量
    效果如下
    在這裏插入圖片描述

其他拓展問題

  • 請求頭一般需要改哪些信息
  • idea的臨時文件
  • curl是什麼?

常見問題

  • 衝突問題
    當有兩份的環境的時候會報有衝突,這時候就應該刪掉臨時文件的
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章