moco簡(jiǎn)介
moco框架是github上的一個(gè)開(kāi)源項(xiàng)目,本身支持API和獨(dú)立運(yùn)行兩種方式。通過(guò)使用API,開(kāi)發(fā)人員可以在JUnit、JBehave等測(cè)試測(cè)試框架里使用Moco,極大程度地降低了集成點(diǎn)測(cè)試的復(fù)雜度
moco可提供一下服務(wù):
- 支持http、https、socket;
- 支持設(shè)置headers、cookies、statuscode;
- 支持GET、POST、PUT、DELETE請(qǐng)求;
- 只需JRE環(huán)境即可運(yùn)行;
- 支持熱更新;
- 支持json、xml、text、file數(shù)據(jù)格式;
- 能與JUnit、Maven、Gradle集成
使用步驟
安裝JDK環(huán)境
此部分不再贅述
下載moco的jar包
https://repo1.maven.org/maven2/com/github/dreamhead/moco-runner/1.1.0/
創(chuàng)建moco項(xiàng)目
moco目錄結(jié)構(gòu)如下:

image.png
其中moco.json用來(lái)存放mock的內(nèi)容,內(nèi)容如下:
[
{
"description": "這是我們的運(yùn)行demo",
"request": {
"uri": "/demo_get",
"method": "get",
"queries": {
"test_01": "test_01",
"test_02": "test_02"
}
},
"response": {
"text": "第一個(gè)moco框架demo"
}
},
{
"description": "這是我們的運(yùn)行demo",
"request": {
"uri": "/demo_post",
"method": "post",
"headers":{"content-type":"application/json"},
"cookies":{"login":"true"},
"redirectTo":"/get",
"forms": {
"test_01": "test_01",
"test_02": "test_02"
}
},
"response": {
"json": {
"msg":"I am response",
"code": 200
}
}
}
]
說(shuō)明:
- description:請(qǐng)求描述(程序不會(huì)識(shí)別到)
- request:請(qǐng)求內(nèi)容
- response:響應(yīng)內(nèi)容
- uri:請(qǐng)求的url資源路徑
- method: 請(qǐng)求類(lèi)型,支持HTTP協(xié)議相關(guān)的請(qǐng)求類(lèi)型,如post,get,put,delete等
- headers:request/response的請(qǐng)求/響應(yīng)頭
- cookies:接口進(jìn)行cookie信息的校驗(yàn)
- queries:get請(qǐng)求的請(qǐng)求參數(shù)
- json:request/response的請(qǐng)求/響應(yīng)json數(shù)據(jù),當(dāng)然也可是本地的json文件(可實(shí)現(xiàn)數(shù)據(jù)分離)
- forms:post的表單請(qǐng)求體
- text:text響應(yīng)體
- redirectTo:請(qǐng)求時(shí)重定向
啟動(dòng)moco服務(wù)
java -jar moco-runner-1.1.0-standalone.jar http -p 8899 -c moco.json
-p:?jiǎn)?dòng)后服務(wù)器應(yīng)用所占用的端口號(hào)
-c:mock數(shù)據(jù)的內(nèi)容文件
通過(guò)瀏覽器/postman等客戶(hù)端模擬請(qǐng)求響應(yīng)的api

image.png
參考文檔:
moco常用配置參數(shù)及實(shí)戰(zhàn)