1后专、Mock功能介紹
各個(gè)業(yè)務(wù)系統(tǒng)都會(huì)關(guān)聯(lián)多個(gè)三方系統(tǒng)接口調(diào)用昧穿,在測(cè)試過(guò)程中第三方業(yè)務(wù)存在不能及時(shí)提供接口調(diào)用芋酌,這時(shí)就需要用到我們的mock服務(wù)了塘偎。
Mock的本質(zhì)在于模擬三方業(yè)務(wù)接口的返回,來(lái)滿足自身的測(cè)試功能易稠,快速完成測(cè)試任務(wù)缸废。
2、Moco框架是什么
Moco框架是Mock概念中的一種實(shí)現(xiàn)驶社。
Moco框架是一個(gè)簡(jiǎn)單搭建模擬服務(wù)器的程序庫(kù)/工具企量,這個(gè)基于 Java 開(kāi)發(fā)的開(kāi)源項(xiàng)目。
Moco框架已經(jīng)在 Github 上獲得了不少的關(guān)注亡电,該項(xiàng)目的簡(jiǎn)介是這樣描述自己的:
Moco 是一個(gè)簡(jiǎn)單搭建 stub 的框架届巩,主要用于測(cè)試和集成。
這個(gè)框架的開(kāi)發(fā)靈感來(lái)自 Mock 框架逊抡,如
Mockito
和Playframework
姆泻。
為什么要開(kāi)發(fā)這個(gè)框架零酪?
用于基于HTTP協(xié)議的集成:
web service
冒嫡、REST
等,在我們的項(xiàng)目開(kāi)發(fā)中被廣泛應(yīng)用四苇。以前孝凌,我們每次都要往
Jetty
或Tomcat
等應(yīng)用服務(wù)器上部署一個(gè)新的 WAR。大家都知道月腋,開(kāi)發(fā)部署一個(gè) WAR 的過(guò)程是很枯燥的蟀架,即使在嵌入式服務(wù)器上也是如此瓣赂。而且,每次我們做一點(diǎn)改動(dòng)片拍,整個(gè) WAR 都要重新組裝煌集。
Moco框架的出現(xiàn),正是為了解決這些問(wèn)題捌省。開(kāi)發(fā)團(tuán)隊(duì)只要根據(jù)自己的需要進(jìn)行相應(yīng)的配置苫纤,就會(huì)很方便得到一個(gè)模擬服務(wù)器。
-
而且纲缓,由于 Moco框架本身的靈活性卷拘,其用途已經(jīng)不再局限于最初的集成測(cè)試。
比如:
Moco 可以用于移動(dòng)開(kāi)發(fā)祝高;
模擬尚未開(kāi)發(fā)的服務(wù)栗弟;
Moco 還可以用于前端開(kāi)發(fā),模擬一個(gè)完整的 Web 服務(wù)器等等工闺。
3乍赫、Moco框架在接口測(cè)試中的作用
一般接口文檔編寫(xiě)完成后,測(cè)試人員需要提前進(jìn)行接口測(cè)試用例的編寫(xiě)陆蟆,而這時(shí)接口開(kāi)發(fā)工作可能還沒(méi)完成耿焊。
如果要等到開(kāi)發(fā)人員完成接口的開(kāi)發(fā),再進(jìn)行測(cè)試用例的編寫(xiě)遍搞,這樣會(huì)降低測(cè)試開(kāi)發(fā)的效率罗侯。
這時(shí)如果測(cè)試人員使用Moco框架搭建一個(gè)模擬服務(wù)器,就可以根據(jù)接口文檔溪猿,自己模擬出接口的調(diào)用并返回結(jié)果钩杰。
在用例設(shè)計(jì)完成后,即使接口開(kāi)發(fā)工作還未完成诊县,也可以立即進(jìn)行接口測(cè)試用例的執(zhí)行讲弄。并且在這個(gè)過(guò)程中可以修改、補(bǔ)充測(cè)試用例依痊。
在接口開(kāi)發(fā)完成以后避除,只需要簡(jiǎn)單的切換服務(wù)器地址,就可以測(cè)試所有的開(kāi)發(fā)人員實(shí)現(xiàn)的接口了胸嘁。這樣可以節(jié)省很多的測(cè)試時(shí)間瓶摆,減少項(xiàng)目開(kāi)發(fā)的周期。
Moco框架支持HTTP協(xié)議性宏,采用熱部署群井,修改配置后,立刻生效毫胜,無(wú)需重啟服務(wù)书斜。
Moco框架接口測(cè)試中的作用:方法隔離诬辈,服務(wù)解耦。即可并行又可驅(qū)動(dòng)荐吉。
4焙糟、Moco框架的優(yōu)點(diǎn)
只需要簡(jiǎn)單的配置
Request
、Response
等即可滿足要求样屠,支持HTTP酬荞、HTTPS、SCOKET瞧哟』烨桑可以說(shuō)是非常的靈活性。支持在
Request
中設(shè)置Headers
,Cookies
,StatusCode
等勤揩。對(duì)GET咧党、POST、PUT陨亡、DELETE等請(qǐng)求方式均支持傍衡,很適合web開(kāi)發(fā)。
無(wú)需環(huán)境配置负蠕,有Java環(huán)境即可蛙埂。
修改配置后,立刻生效遮糖。只需要維護(hù)接口绣的,也就是契約即可。
對(duì)可能用到的數(shù)據(jù)格式都支持欲账,如json屡江、text、xml赛不、file等惩嘉。
還能與其他工具集成,如Junit踢故、Maven文黎、Gradle等。
5殿较、Moco框架的下載與啟動(dòng)
(1)Moco框架的下載
Github下載地址:https://github.com/dreamhead/moco(這里下載的是源碼耸峭,不是jar包)
Moco框架Jar包下載地址:https://repo1.maven.org/maven2/com/github/dreamhead/moco-runner/0.11.0/
得到moco-runner-0.11.0-standalone.jar
文件。
Moco框架文檔地址:https://github.com/dreamhead/moco/blob/master/moco-doc/apis.md
(2)Moco框架的啟動(dòng)
-
條件:
因?yàn)镸oco框架工具是一個(gè)jar包斜脂,所以需要Java環(huán)境才能啟動(dòng)抓艳。
即:配置好Java環(huán)境触机。
-
啟動(dòng):
把Moco框架Jar包和Json文件放入同一個(gè)文件夾中帚戳,
命令行終端里進(jìn)入到Json文件所在的目錄玷或,執(zhí)行啟用命令,如下:
java -jar ./moco-runner-0.11.0-standalone.jar http -p 12306 -c foo.json
即可片任。說(shuō)明:
./moco-runner-0.11.0-standalone.jar
為Moco工具所在目錄偏友。http
:表示服務(wù)器協(xié)議,server type: http, https, socket
对供。-p
:表示端口號(hào)位他。-c
:表示一個(gè)json文件。接口所有的信息都配置在該json文件中产场。
提示:Moco工具路徑和json文件路徑都可以寫(xiě)相對(duì)路徑和絕對(duì)路徑鹅髓。