1. 程式人生 > 實用技巧 >moco介紹及入門---轉載

moco介紹及入門---轉載

一、moco

Moco可以通過簡單的配置request和response 物件,達到模擬請求效果。也就是常說的mock。

為什麼使用moco呢?

moco的github文件給出的答案是:

Integration, especially based on HTTP protocol, e.g. web service, REST etc, is wildly used in most of our development.


In the old days, we just deployed another WAR to an application server, e.g. Jetty or Tomcat etc. As we all know, it’s so boring to develop a WAR and deploy it to any application server, even if we use an embeded server. And the WAR needs to be reassembled even if we just want to change a little bit.

整合(尤其是基於HTTP協議的,例如Web服務,REST等)在很多開發中廣泛使用。
過去,我們只是將另一個WAR包部署到應用程式伺服器,例如 Jetty或Tomcat等。眾所周知,即使我們使用嵌入式伺服器,開發WAR包並將其部署到應用程式伺服器,也非常無聊。 而且,即使我們只改一點程式碼,也需要重新打war包。

使用moco有什麼好處?

Moco解決了開發前端時沒有後端支援,開發介面時依賴沒有到位的尷尬場景。

  1. 只需要簡單的配置request、response等即可滿足要求,支援http、https、socket。非常靈活
  2. 支援在request 中設定 Headers , Cookies , StatusCode等。
  3. 對GET、POST、PUT、DELETE等請求方式均支援,很適合web開發。
  4. 無需環境配置,有java環境即可。
  5. moco採用熱部署,修改配置後,立刻生效,無需重啟服務。只需要維護介面,也就是契約即可。
  6. 對可能用到的資料格式都支援,如json、text、xml、file等。
  7. 能與其他工具整合,如Junit、Maven、Gradle等。

二、獲取moco jar包

moco jar包獲取方法:
方法1:moco jar包maven下載地址

方法2:github拉取原始碼,手動打jar包
moco github原始碼

三、執行moco

步驟:

  1. 配置json檔案;
  2. 通過配置檔案 foo.json 執行Moco HTTP服務

java -jar ./moco-runner-0.11.0-standalone.jar http -p 埠號 -c json檔名.json

四、入門舉例:


第1步:在json檔案中配置http的請求和響應

fruit.json



 1 [
 2   {
 3     "description": "mock例1",
 4     "request": {
 5       "uri": "/demo"
 6     },
 7     "response": {
 8     "headers":{
 9         "Content-Type":"text/html;charset=gbk"
10       },
11       "text": "moco例子響應"
12     }
13   }
14 ]

uri用來設定請求路徑;
headers中設定charset=gbk是為了解決響應結果中文亂碼問題。參考moco模擬介面返回中文亂碼問題

第2步:開啟moco服務
通過控制檯,進入moco jar包目錄,然後執行如下命令



java -jar ./moco-runner-0.11.0-standalone.jar http -p 8888 -c fruit.json

http:指定http協議
-p:指定啟動服務的埠號
-c:指定啟動服務使用的json檔案

第3步:在瀏覽器執行請求

第4步:實時更新響應結果。
修改下json檔案的響應結果

 1 [
 2   {
 3     "description": "mock例1",
 4     "request": {
 5       "uri": "/demo"
 6     },
 7     "response": {
 8       "headers":{
 9         "Content-Type":"text/html;charset=gbk"
10       },
11       "text": "moco例子響應,你好呀"
12     }
13   }
14 ]

不重啟moco服務,直接重新整理瀏覽器請求,發現結果竟然實時更新了。是不是很好用呢?

第5步:實時更新請求。
修改json檔案中的請求uri



 1 [
 2   {
 3     "description": "mock例1",
 4     "request": {
 5       "uri": "/test"
 6     },
 7     "response": {
 8       "headers":{
 9         "Content-Type":"text/html;charset=gbk"
10       },
11       "text": "moco例子響應,你好呀"
12     }
13   }
14 ]

不重啟moco服務
使用http://localhost:8888/demo,請求無響應。
使用http://localhost:8888/test,得到響應結果。請求路徑實時更新了,是不是很方便呢?

來源:https://blog.csdn.net/jamieblue1/article/details/98969828