Moco環境搭建說明

术科术發表於2024-03-11

一、獲取Moco的JAR包

我們可以直接從GitHub上獲取Moco的JAR包。當前版本為V1.1.0。

下載地址:https://github.com/dreamhead/moco

在該地址上,你可以找到關於Moco的詳細介紹和原始碼。你可以直接點選下載連結來獲取JAR包。

二、啟動Moco模擬服務

  1. 啟動HTTP模擬

在命令列中輸入以下命令,以啟動一個監聽在9999埠的HTTP模擬服務:

java -jar moco-runner-1.1.0-standalone.jar http -p 9999 -c test.json

其中:

  • moco-runner-1.1.0-standalone.jar 是下載的JAR包檔名,請根據實際下載的版本替換。
  • http 表示啟動的是HTTP協議的模擬服務。
  • -p 9999 定義服務的監聽埠號為9999。
  • -c test.json 指定模擬規則的配置檔案為test.json
  1. 啟動HTTPS模擬

同樣地,如果你想模擬HTTPS請求,可以使用以下命令:

java -jar moco-runner-1.1.0-standalone.jar https -p 9999 -c test.json

三、編輯test.json檔案

test.json檔案用於定義模擬的規則。下面是一個簡單的示例:

{
"description": "demo1=約定URI",
"request": {
"uri": "/ywt_sq"
},
"response": {
"text": "Hello,ywt"
}
}

該檔案包含三部分:

  • description:介面的描述,用於說明該模擬規則的用途。
  • request:定義請求的匹配規則,例如上面的示例中匹配URI為/ywt_sq的請求。
  • response:定義當請求匹配時返回的響應內容,這裡是一個簡單的文字響應。

Moco支援多種請求匹配和響應定義的方式,包括:

  • params:用於匹配GET方法的請求引數。
  • data:用於匹配POST請求體。
  • json:用於匹配JSON格式的請求體。
  • file:用於匹配檔案上傳。
  • forms:用於匹配表單提交。

四、支付介面Mock模擬使用

Mock檔案是一個JSON格式的檔案,其中包含了支付介面的請求和響應規則。在本例中,Mock檔案的內容如下:

{
"description": "支付介面-mock",
"request": {
"method": "POST",
"uri": "/trade/purchase",
"headers": {
"Content-Type": "application/json"
},
"json": {
"out_trade_no": "20150320010101001",
"auth_code": "28763443825664394",
"buyer_id": "2088202954065786",
"seller_id": "2088102146225135",
"subject": "Iphone6",
"total_amount": "88.88"
}
},
"response": {
"headers": {
"Content-Type": "application/json"
},
"status": 200,
"json": {
"code": "40004",
"msg": "Business Failed",
"sub_code": "ACQ.TRADE_HAS_SUCCESS",
"sub_msg": "交易已被支付",
"trade_no": "2013112011001004330000121536",
"out_trade_no": "6823789339978248"
}
}
}

五、示例程式碼

以下是一個使用Python的requests庫傳送POST請求的示例程式碼:

import requests

url = "http://127.0.0.1:9999/trade/purchase" # Mock服務的地址
headers = {"Content-Type": "application/json"} # 請求頭
data = {
"out_trade_no": "20150320010101001",
"auth_code": "28763443825664394",
"buyer_id": "2088202954065786",
"seller_id": "2088102146225135",
"subject": "Iphone6",
"total_amount": "88.88"
} # 請求體

response = requests.post(url, headers=headers, json=data) # 傳送POST請求
print(response.text) # 列印響應內容

在實際使用中,你可以根據需求調整請求程式碼,以適應不同的測試場景和驗證需求。注:需要安裝python環境

六、注意事項

  • 確保你的系統已經安裝了Java環境,並且java命令可以在命令列中正確執行。
  • 根據你的實際需求,你可能需要調整test.json檔案中的模擬規則,以匹配不同的請求和生成不同的響應。
  • 如果遇到任何問題,你可以查閱Moco的官方文件或在相關社群尋求幫助。

原文連結:https://blog.csdn.net/csdnchengxi/article/details/123055785