天天看點

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/

moco擋闆使用
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"

                          },

                          }

                      ]

                  }

              ]

            }

        }

    },

  "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或者其他接口調用工具調用接口即可。

moco擋闆使用
 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