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 正式環境
-
使用也很簡單,在和http文件同目錄下創建兩個文件(值得注意的是,這兩個文件如果在idea的scratches(臨時文件)裏需要把他拷貝出去一份,在任何地方)
http-client.env.json和http-client.private.env.json(這個文件是不提交到版本控制的,當然也可以沒有,就是說這是一些私密信息)
當用的是.rest的時候就是rest-client.env.json和rest-client.private.env.json文件 -
具體使用方式
在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": "***" } }
使用效果
- 使用腳本來測試與設置全局變量
-
格式
GET host/api/test > {% // Response Handler Script ... %}
-
測試使用
測試重要使用client的三個方法- 測試方法
client.test(testName, function) - 斷言方法
client.assert(condition, message) - 打印日誌方法
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); }); %}
- 測試方法
-
設置一個全局變量
一般來說我們總是需要一個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是什麼?
常見問題
- 衝突問題
當有兩份的環境的時候會報有衝突,這時候就應該刪掉臨時文件的