moco擋板使用


在進行接口測試過程中,Moco可以通過簡單的配置request和response 對象,達到模擬后端返回的效果

  • 支持HTTP、HTTPS、socket協議;
  • 支持在request中設置Headers、cookies、statusCode;
  • 支持get、post、put、delete請求;
  •  無需環境配置,只需要java運行環境即可;

 

1、下載安裝

moco jar包下載地址:https://repo1.maven.org/maven2/com/github/dreamhead/moco-runner/1.1.0/

2、moco使用

1)新建文件夾,將下載好的 moco-runner-1.1.0-standalone.jar 文件放入文件夾中去,新建user.json文件,用於配置請求和響應內容

{
      "request":{
          "method":"post", 
          "uri":"/jiekou",
          "headers":{"Content-type":"application/json"},
          "json":{"id":"12306","name":"moco"}
        },
      "response":{
            "status":"200",
            "text":"ceshi"
          }
}

2)

{
  "request":{
      "headers":{"Content-Type":"application/json;charset=UTF-8"},   // 請求 headers
      "method":"post",
      "uri":"/jiekou2",
      "json": {
        "type": "1",
        "data": {
              "citeCaseId": "11111111",
              "party": [
                  {
                      "partyId": "001",
                      "name": "張三",
                      "agent": [
                          {
                              "agentId": "002"
                          },
                          {
                              "agentId": "002"
                          }
                      ]
                  }
              ]
            }
        }
    },
  "response":{
      "status":"200",
      "headers": {
          "Content-Type":"application/json;charset=UTF-8"   // 響應的 headers
        },
      "json":{"code":101,"message":"必要參數缺失。"}
    }
}

3)

{
  "request":
    {
        "headers":{"Content-Type":"application/json"},
        "method":"get",
        "uri":"/getList", 
        "queries":{"sasj":"20100101"}  // 帶參數的GET請求,如 localhost:8880/getList?sasj=20100101
    },
  "response":
    {
        "file":"build.xml"   
    // 請求返回文件(可以返回xml中的內容,將xml文件放在與jar包同級目錄下即可, "file":"files/build.xml",user.json所在目錄下的二級目錄files)
    }
}

注意

若要同時模擬多個接口,可以用[ ]括起來,並用,分割,也就是json的格式。

 3、啟動mock

cmd 進入moco-runner-1.1.0-standalone.jar 所在文件夾,執行下面命令

java  -jar moco-runner-1.1.0-standalone.jar http -p 8881 -c user.json

運行成功。直接使用postman或者其他接口調用工具調用接口即可。

 

 4、分模塊

使一個項目會分好幾個模塊,如登錄注冊等員工模塊、聊天模塊、博文模塊等,會有很多很多請求,如果我們把不同業務的mock數據都寫在一個文件里面,那就太難看了,為此,我們需要做一些改變來解決這個問題

下面以TodoList.json為例

// 在根目錄下新建 TodoList.json 文件,內容如下
  { "context": "/user", "include": "user.json" }, 
  { "context": "/newUser", "include": "data.json"} 
]

 這樣,當我們訪問 

http://localhost:8880/user/userInfo 和 http://localhost:8880/newUser/newUserInfo 時候
會跳到后面對應的 json 再處理一遍
// user.json
[{"request":{"uri":"/userInfo"},"response":{"json":{"username": "Sampson"}}}]

// newUser.json
[{"request":{"uri":"/newUserInfo"},"response":{"json":{"username": "NewSampson"}}}]

Moco支持在全局的配置文件中引入其他配置文件,這樣就可以分服務定義配置文件,便於管理。 
配置好文件,在全局文件中引入即可: 
全局配置如下:

java -jar moco-runner-1.1.0-standalone.jar start -p 8880 -g TodoList.json

注意,此時需要通過參數  -g  在加載全局配置文件。,使用的不是  -c  

原文:https://blog.csdn.net/vite_s/article/details/54583243

5、Mock測試存在的問題

使用Mock測試有時可以提高團隊的開發效率,但當B、C都開發完成代碼后,這時應該把E2E測試代碼從使用Mock測試改為調用真實的模塊,以避免出現模塊之間集成部分漏測的問題。這里說mock存在的問題,主要是讓開發和測試不要過分的依賴/相信mock接口。

使用mock時,切記的幾點:

1)測試人員不應該被覆蓋率高的E2E自動化測試所迷惑,覆蓋率高不代表沒有問題。尤其在接手新項目中,需要查看E2E測試中有沒有使用Mock測試,進一步去判斷這些地方使用Mock測試是否合理,這些Mock測試是否應該換成真實模塊間的調用和集成。

2)當把mock接口換成實際接口后,測試/開發也必須把之前的測試重新做一遍。

ps: 當你使用mock接口來提高效率,請注意:你的工作量其實是比 直接只用實際接口 多了 一倍的。如果測試時,偷懶,替換成實際接口后,只是簡單測試,那么 當實際接口和mock預期接口有差異時,故障便和你相遇了。

建議: mock接口只能主流程聯調/ 異常返回測試,不要過分依賴mock接口進行測試。

3)測試完畢,上線前,請一定確保 為了mock而做的相關代碼/配置文件的修改,已經完全恢復了

更多用法可查看本段原文:https://blog.csdn.net/qq_35716699/article/details/90581880

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM