『居善地』接口測(cè)試 — 20.Mock功能介紹(一)

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 框架逊抡,如 MockitoPlayframework姆泻。

為什么要開(kāi)發(fā)這個(gè)框架零酪?

  • 用于基于HTTP協(xié)議的集成:web service冒嫡、REST等,在我們的項(xiàng)目開(kāi)發(fā)中被廣泛應(yīng)用四苇。

  • 以前孝凌,我們每次都要往JettyTomcat等應(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)

  1. 只需要簡(jiǎn)單的配置RequestResponse等即可滿足要求样屠,支持HTTP酬荞、HTTPS、SCOKET瞧哟』烨桑可以說(shuō)是非常的靈活性。

  2. 支持在Request中設(shè)置Headers , Cookies , StatusCode等勤揩。

  3. 對(duì)GET咧党、POST、PUT陨亡、DELETE等請(qǐng)求方式均支持傍衡,很適合web開(kāi)發(fā)。

  4. 無(wú)需環(huán)境配置负蠕,有Java環(huán)境即可蛙埂。

  5. 修改配置后,立刻生效遮糖。只需要維護(hù)接口绣的,也就是契約即可。

  6. 對(duì)可能用到的數(shù)據(jù)格式都支持欲账,如json屡江、text、xml赛不、file等惩嘉。

  7. 還能與其他工具集成,如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)

  1. 條件:

    因?yàn)镸oco框架工具是一個(gè)jar包斜脂,所以需要Java環(huán)境才能啟動(dòng)抓艳。

    即:配置好Java環(huán)境触机。

  2. 啟動(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ì)路徑鹅髓。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市京景,隨后出現(xiàn)的幾起案子窿冯,更是在濱河造成了極大的恐慌,老刑警劉巖确徙,帶你破解...
    沈念sama閱讀 216,919評(píng)論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件醒串,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡鄙皇,警方通過(guò)查閱死者的電腦和手機(jī)芜赌,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,567評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)伴逸,“玉大人缠沈,你說(shuō)我怎么就攤上這事〈砗” “怎么了博烂?”我有些...
    開(kāi)封第一講書(shū)人閱讀 163,316評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)漱竖。 經(jīng)常有香客問(wèn)我禽篱,道長(zhǎng),這世上最難降的妖魔是什么馍惹? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,294評(píng)論 1 292
  • 正文 為了忘掉前任躺率,我火速辦了婚禮,結(jié)果婚禮上万矾,老公的妹妹穿的比我還像新娘悼吱。我一直安慰自己,他們只是感情好良狈,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,318評(píng)論 6 390
  • 文/花漫 我一把揭開(kāi)白布后添。 她就那樣靜靜地躺著,像睡著了一般薪丁。 火紅的嫁衣襯著肌膚如雪遇西。 梳的紋絲不亂的頭發(fā)上馅精,一...
    開(kāi)封第一講書(shū)人閱讀 51,245評(píng)論 1 299
  • 那天,我揣著相機(jī)與錄音粱檀,去河邊找鬼洲敢。 笑死,一個(gè)胖子當(dāng)著我的面吹牛茄蚯,可吹牛的內(nèi)容都是我干的压彭。 我是一名探鬼主播,決...
    沈念sama閱讀 40,120評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼渗常,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼壮不!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起皱碘,我...
    開(kāi)封第一講書(shū)人閱讀 38,964評(píng)論 0 275
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤忆畅,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后尸执,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體家凯,經(jīng)...
    沈念sama閱讀 45,376評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,592評(píng)論 2 333
  • 正文 我和宋清朗相戀三年如失,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了绊诲。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,764評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡褪贵,死狀恐怖掂之,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情脆丁,我是刑警寧澤世舰,帶...
    沈念sama閱讀 35,460評(píng)論 5 344
  • 正文 年R本政府宣布,位于F島的核電站槽卫,受9級(jí)特大地震影響跟压,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜歼培,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,070評(píng)論 3 327
  • 文/蒙蒙 一震蒋、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧躲庄,春花似錦查剖、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,697評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至,卻和暖如春直砂,著一層夾襖步出監(jiān)牢的瞬間菌仁,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,846評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工哆键, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留掘托,地道東北人瘦锹。 一個(gè)月前我還...
    沈念sama閱讀 47,819評(píng)論 2 370
  • 正文 我出身青樓籍嘹,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親弯院。 傳聞我的和親對(duì)象是個(gè)殘疾皇子辱士,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,665評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容