關(guān)鍵詞:接口、Mock Server蛉艾、postman钳踊、jmeter、Moco
一勿侯、Mock的概念
現(xiàn)在的軟件系統(tǒng)不僅僅是一個(gè)端拓瞪,有客戶端,服務(wù)器端助琐,外部系統(tǒng)端等各個(gè)端祭埂。各個(gè)系統(tǒng)的開發(fā)進(jìn)度很難保持一致,但是又需要聯(lián)調(diào)和測(cè)試兵钮,這個(gè)時(shí)候就需要模擬出一個(gè)Server蛆橡,不用坐在這干等。
而主流軟件系統(tǒng)數(shù)據(jù)傳遞的方式是通過接口掘譬,所以Mock更多的是出現(xiàn)在接口的面試居多泰演。
如下圖可以理解下Mock Server的概念:
二、如何實(shí)現(xiàn)Mock Server
本文以Aone項(xiàng)目為例葱轩,需要把登錄接口用Mock實(shí)現(xiàn)粥血。
-------------------------------------華麗的分割線------------------------------------------------------------------------------------
POSTMAN如何實(shí)現(xiàn)Mock Server
1)新建Mock Server
2)創(chuàng)建collection柏锄、輸入請(qǐng)求路徑
注意:這里的path一定要跟接口文檔統(tǒng)一!8纯鳌趾娃!
3)輸入Mock Server名字
4)切換環(huán)境
postman創(chuàng)建的Mock會(huì)使用自己的服務(wù)器地址,所以創(chuàng)建了一個(gè)環(huán)境變量url缔御,需要切換相對(duì)應(yīng)的環(huán)境
~~這里URL多了一個(gè)"/",后面也是抬闷,懶得換圖了。
5)編輯example請(qǐng)求和響應(yīng)
postman的example是一個(gè)示例,是一個(gè)緊密耦合的請(qǐng)求和響應(yīng)對(duì)。也就是發(fā)送什么樣的請(qǐng)求蒋情,就設(shè)置什么樣的響應(yīng),一對(duì)一對(duì)應(yīng)炕泳。
6)發(fā)送請(qǐng)求,驗(yàn)證example
PS:
- postman的個(gè)人用戶版本只能使用Mock 1000次上祈,超過這個(gè)閥值培遵,需升級(jí)到pro版本。
- 之前以為postman可以針對(duì)同一個(gè)接口測(cè)試不同的返回值登刺,但是postman的設(shè)計(jì)理念是針對(duì)path或者status code不同而返回值籽腕,而不是根據(jù)請(qǐng)求頭或者入?yún)⒌牟煌K赃@里的Mock更多關(guān)注的是業(yè)務(wù)的調(diào)通(聯(lián)調(diào))纸俭,并不是測(cè)試接口本身皇耗。
-------------------------------------華麗的分割線------------------------------------------------------------------------------------
JMETER如何實(shí)現(xiàn)Mock Server
JMETER有一個(gè)類似實(shí)現(xiàn)Mock的一個(gè)元件,叫做Dummy Samler揍很±陕ィ可以通過插件管理下載安裝。
PS:
Jmeter的Dummy Sampler比Postman簡(jiǎn)單多了窒悔,跟Postman的理念也不一樣箭启。Postman是通過新建一個(gè)API server完成Mock,而Jmeter的Dummy Sampler是不需要server蛉迹,直接通過取樣器完成請(qǐng)求和響應(yīng)。
-------------------------------------華麗的分割線------------------------------------------------------------------------------------
Moco如何實(shí)現(xiàn)Mock Server
moco是一個(gè)開源框架放妈,通過編寫配置文件北救,即可快速搭建模擬服務(wù)器。
Github:https://github.com/dreamhead/moco
運(yùn)行mock芜抒,只需要java的環(huán)境和一個(gè)mock的jar包珍策,非常的簡(jiǎn)單。
jar包下載地址:http://central.maven.org/maven2/com/github/dreamhead/moco-runner/1.0.0/moco-runner-1.0.0-standalone.jar
1)啟動(dòng)服務(wù)
-p 服務(wù)器端口
-c 配置文件
針對(duì)前面Aone項(xiàng)目的登錄接口寫的配置文件
[
{
"request" :
{
"method": "post",
"uri" : "/agileone/index.php/common/login",
"forms" :{
"username":"admin",
"password":"admin",
"savelogin":"true"
}
},
"response" :
{
"text" : "successful"
}
}
]
jmeter調(diào)試結(jié)果:
詳細(xì)的使用說明參考官網(wǎng)文檔:U埂H林妗!
https://github.com/dreamhead/moco/blob/master/moco-doc/apis.md#description-as-comment
PS:moco的使用,個(gè)人感覺也算比較簡(jiǎn)單蹭劈,同時(shí)功能強(qiáng)大疗绣。推薦使用~