推薦一款全能測試開發(fā)神器:Mockoon

1. 說一下背景

在日常開發(fā)或者測試工作中弟塞,經常會因為下游服務不可用或者不穩(wěn)定時,通過工具或者技術手段去模擬一個HTTP Server我抠,或者模擬所需要的接口數(shù)據(jù)苇本。

這個時候,很多人腦海里菜拓,都會想到可以利用Mock技術來解決瓣窄,
當說起Mock,對于發(fā)纳鼎、測試來說俺夕,是老生常談的話題了,之前公眾號也分享過很多關于此類的技術文章贱鄙。市面上Mock工具有很多劝贸,比如CharlesFiddler逗宁,但這些雖然都能實現(xiàn)Mock映九,但是在操作上相對來說還是比較麻煩,抓了包才能修改返回結果疙剑。并且對于一些復雜的開發(fā)測試場景氯迂,也很難得到滿足践叠。

今天就給大家推薦一款測試開發(fā)神器:Mockoon, 它采用的是非侵入式,能夠實時修改返回結果嚼蚀。

2. Mockoon介紹

Mockoon 被官方稱為:一款在地運行模擬API最簡單禁灼,最快的解決方案。無需遠程部署轿曙,無需帳戶弄捕,并且是開源的。

它是利用Electron構建的导帝,可以在Windows(exe)守谓,Linux(deb,rpm您单,Appimage和Snap)和MacOS(dmg或brew)上使用斋荞。官網地址:mockoon.com

下載地址:

https://mockoon.com/#download

功能特點:

image

從官網中可以看出,Mockoon 是一個可以通過圖形化界面幫我們快速搭建 API 服務的工具虐秦,并且支持數(shù)據(jù)模擬平酿、路由解析、跨域訪問悦陋、HTTPS蜈彼、自定義延時、Docker 等等各種你想要的功能俺驶,同時支持支持 Windows幸逆、Mac、Linux暮现,頁面整體結構是這樣子的:


image

3. Mockoon基礎使用

Mockoon布局还绘,和 PostMan 有異曲同工之妙啊。

image

比如送矩,在左側可以配置一個個請求列表蚕甥,點進去可以在右側配置詳情,比如配置是 GET 還是 POST 請求栋荸,path 是什么菇怀,Response Body 是什么,Response Headers 是什么晌块,另外還有一些規(guī)則和基礎設置爱沟。

image

另外在最上面我可以配置運行的 hostport,然后左上角還有一個運行按鈕匆背,一點就相當于啟動了 Server 了呼伸,啟動之后按鈕就會變成紅色,再按一下就會停止,比如這里我就配置了運行在本地 3000 端口:

image

然后可以根據(jù)自定義需求括享,修改響應Body

{
  "Templating example": "For more information about templating, click the blue 'i' above this editor",
  "users": [
    {{# repeat (queryParam 'total' '10') }}
      {
        "userId": "{{ faker 'random.number' min=10000 max=100000 }}",
        "firstname": "{{ faker 'name.firstName' }}",
        "lastname": "{{ faker 'name.lastName' }}",
        "friends": [
          {{# repeat (faker 'random.number' 5) }}
            {
              "id": "{{ faker 'random.uuid' }}"
            }
          {{/ repeat }}
        ]
      },
    {{/ repeat }}
  ],
  "total": "{{queryParam 'total' '10'}}"
}

然后接下來配置跨域訪問搂根,就加一個 Response Header(根據(jù)需要,可選):

Access-Control-Allow-Origin: '*'

然后點擊左上角的運行按鈕就成了铃辖。
Mockoon 還提供了快捷訪問的功能剩愧,接著點右上角的打開按鈕:

image

瀏覽器就打開了,然后數(shù)據(jù)就看到了:
image

這樣娇斩,我們通過非常簡單的可視化配置就完成了 API Server 的搭建仁卷,熟練的話一分鐘就完成了。

4. Mockoon進階使用

有時犬第,您可能只需要模擬API的一部分锦积,然后將其余部分轉發(fā)到現(xiàn)有的REST服務器。幸運的是歉嗓,您可以使用Mockoon做到這一點

通過單擊右上角的齒輪來打開環(huán)境設置:

image

啟用代理模式丰介,然后輸入要將轉發(fā)到的服務器URL。在環(huán)境名稱的右側應出現(xiàn)一個小的盾牌圖標鉴分,指示已啟用代理模式:
image

Mockoon將攔截所有已定義的路由基矮,并將任何其他請求轉發(fā)到代理模式設置中定義的服務器。

瀏覽器打開: http://0.0.0.0:3000/api/aitest 地址即可拿到結果冠场,body中隨時修改內容都會立即生效,不需要再次啟動任何東西

image

打開瀏覽器訪問:


image

這樣一個基本的Mock就實現(xiàn)了本砰,下面我們來說下使用LightProxy工具做代理轉發(fā)

5. LightProxy工具

5.1 簡介

LightProxy 是 阿里巴巴IFE 團隊開發(fā)的一款基于 Electronwhistle 的開源桌面代理軟件碴裙,可以自動完成證書安裝和代理設置,通過 HTTP 代理使用規(guī)則轉發(fā)点额、修改每一個請求和響應的內容舔株。

image

項目地址:

https://github.com/alibaba/lightproxy

5.2 它能幫你做什么:

  • 抓包,包括無線場景抓包
  • 實時 hosts 綁定
  • 按規(guī)則轉發(fā)資源
  • mock 接口还棱,頁面等
  • 修改請求和響應內容载慈,例如在頁面中插入 script ,修改返回頭等

一句話總結LightProxy是一款全能代理抓包工具珍手,通過基于 whistle 的代理能力办铡,能夠任意修改開發(fā)環(huán)境中的 request 和 response ,夠讓你隨心所欲的掌控自己當前的開發(fā)或者測試環(huán)境。

本地開發(fā):

git clone https://github.com/alibaba/lightproxy
cd lightproxy
yarn run install-deps
yarn run dev

下載安裝:

Windows下載: https://gw.alipayobjects.com/os/LightProxy/LightProxy-Setup.exe
Mac下載: https://gw.alipayobjects.com/os/LightProxy/LightProxy.dmg

5.3 配置

以PC端轉發(fā)為例:

1琳要、打開LightProxy工具寡具,編輯時,會自動提生成安裝證書命令稚补,直接復制在命令行中執(zhí)行即可童叠。

2、新建代理轉發(fā)規(guī)則配置课幕,這就相當于將該域名所有請求轉到我本地配置的mock工具上


image

上述兩條規(guī)則解釋:

  • 1厦坛、訪問https://www.cnblogs.com/jinjiangongzuoshi/請求時五垮,自動轉發(fā)到http://localhost:3000/users接口上。
  • 2杜秸、將www.cnblogs.com域名所有請求轉發(fā)到localhost:3000
    image

同理放仗,此時如果訪問https://www.cnblogs.com/users,也同樣會轉發(fā)到localhost:3000上亩歹。

這樣無論是在手機端或pc端 訪問指定域名下所有請求都會轉向到對應mock工具中匙监,然后再根據(jù)路徑和請求類型獲取配置的返回結果。

更多例子

1小作、例如當我們需要在線上頁面中加入一個 DIV 亭姥,如果沒有代理我們需要依賴后端一套類似的預發(fā)環(huán)境,而有了 LightProxy 我們只需要使用:

https://www.alibaba.com/ htmlPrepend://(<div>test</div>)

就可以在一個線上的頁面中插入一個 div 顾稀。

2达罗、同樣的,我們可以直接把頁面中的一個 JS 轉發(fā)到本地一個開發(fā)中的文件

https://www.google.com/xx.js file:///User/xxx/xxx.js

3静秆、當后端缺少 CORS 頭時粮揉,我們可以直接給它先加上 CORS 頭

https://xxx.com/xx.json resCors:// # 給響應的請求增加 CORS header

總體來說LightProxy 能夠讓開發(fā)人員或者測試人員完全掌控自己的開發(fā)測試環(huán)境,用極低的成本定制自己的開發(fā)環(huán)境抚笔,而不是總是在等待依賴方按照自己的需求提供相應的環(huán)境扶认。

甚至于,你可以自己用 NodeJS 書寫針對某個規(guī)則的響應

更詳細使用可參考:

https://github.com/alibaba/lightproxy/issues/19

6. 小結

除此之外殊橙,Mockoon 還支持命令行辐宾,比如通過 mockoon-cli 就可以快速創(chuàng)建一個 API Server,如圖所示:

image

命令行的使用和安裝可以參考:

https://github.com/mockoon/cli#installation

另外無論是Mockoon還是LightProxy膨蛮,還有太多功能叠纹,比如 HTTPS、多請求處理敞葛、日志誉察、路由、模板配置這里就不再一一敘述了惹谐,用到的時候大家查要文檔就好啦

https://mockoon.com/docs/latest/gui-cheat-sheet/
https://mockoon.com/docs/latest/multiple-responses/
https://mockoon.com/docs/latest/requests-logging/
https://mockoon.com/docs/latest/cors/
https://mockoon.com/tutorials/

以上便是今天的分享持偏,更多功能期待你的探索!

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末豺鼻,一起剝皮案震驚了整個濱河市综液,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌儒飒,老刑警劉巖谬莹,帶你破解...
    沈念sama閱讀 206,378評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡附帽,警方通過查閱死者的電腦和手機埠戳,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,356評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來蕉扮,“玉大人整胃,你說我怎么就攤上這事≡樱” “怎么了屁使?”我有些...
    開封第一講書人閱讀 152,702評論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長奔则。 經常有香客問我蛮寂,道長,這世上最難降的妖魔是什么易茬? 我笑而不...
    開封第一講書人閱讀 55,259評論 1 279
  • 正文 為了忘掉前任酬蹋,我火速辦了婚禮,結果婚禮上抽莱,老公的妹妹穿的比我還像新娘范抓。我一直安慰自己,他們只是感情好食铐,可當我...
    茶點故事閱讀 64,263評論 5 371
  • 文/花漫 我一把揭開白布匕垫。 她就那樣靜靜地躺著,像睡著了一般虐呻。 火紅的嫁衣襯著肌膚如雪年缎。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,036評論 1 285
  • 那天铃慷,我揣著相機與錄音,去河邊找鬼蜕该。 笑死犁柜,一個胖子當著我的面吹牛,可吹牛的內容都是我干的堂淡。 我是一名探鬼主播馋缅,決...
    沈念sama閱讀 38,349評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼绢淀!你這毒婦竟也來了萤悴?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 36,979評論 0 259
  • 序言:老撾萬榮一對情侶失蹤皆的,失蹤者是張志新(化名)和其女友劉穎覆履,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經...
    沈念sama閱讀 43,469評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡硝全,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 35,938評論 2 323
  • 正文 我和宋清朗相戀三年栖雾,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片伟众。...
    茶點故事閱讀 38,059評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡析藕,死狀恐怖,靈堂內的尸體忽然破棺而出凳厢,到底是詐尸還是另有隱情账胧,我是刑警寧澤,帶...
    沈念sama閱讀 33,703評論 4 323
  • 正文 年R本政府宣布先紫,位于F島的核電站治泥,受9級特大地震影響,放射性物質發(fā)生泄漏泡孩。R本人自食惡果不足惜车摄,卻給世界環(huán)境...
    茶點故事閱讀 39,257評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望仑鸥。 院中可真熱鬧吮播,春花似錦、人聲如沸眼俊。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,262評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽疮胖。三九已至环戈,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間澎灸,已是汗流浹背院塞。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留性昭,地道東北人拦止。 一個月前我還...
    沈念sama閱讀 45,501評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像糜颠,于是被迫代替她去往敵國和親汹族。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,792評論 2 345

推薦閱讀更多精彩內容