系統(tǒng)測(cè)試?yán)髦畵醢鍖?shí)戰(zhàn)(二)

mb概述

安裝好mb以后,直接通過(guò)mb命令啟動(dòng)服務(wù)辙培,默認(rèn)端口是2525蕾额,瀏覽器輸入(http://localhost:2525) 訪問(wèn)試試看娜谊!

在RHEL7和Centos7下可以設(shè)定后臺(tái)服務(wù)自動(dòng)啟動(dòng),配置的方法可以在這里配置方法獲得恬叹,在這里不多擴(kuò)展候生。
本人喜歡寫(xiě)段shell腳本來(lái)啟動(dòng)、停止mb服務(wù)妄呕,詳情見(jiàn)后面陶舞。

  • mb命令啟動(dòng)常用參數(shù)
選項(xiàng) 描述 默認(rèn)
--command start,stop绪励,restart肿孵, replay(刪除代理,轉(zhuǎn)化為代理捕獲的響應(yīng)值疏魏,后面代理詳解) start
--port 2525 指定mb運(yùn)行的端口好停做,默認(rèn)是2525 2525
--configfile imposters.ejs mountebank將加載指定的模板文件,為了方便管理會(huì)把配置存儲(chǔ)在EJS模板中大莫。后面詳細(xì)說(shuō)明蛉腌。 N/A
--logfile mb.log mountebank用于存儲(chǔ)日志的文件 mb.log
--loglevel debug 日志級(jí)別 debug, info, warn, error info
--allowInjection 是否允許腳本注入,mb支持針對(duì)謂詞只厘, 存根響應(yīng)烙丛,行為裝飾, 等待行為函數(shù)和 tcp請(qǐng)求解析的 JavaScript注入羔味,但默認(rèn)情況下禁用它們河咽。 false
--localOnly 請(qǐng)求隔離,僅接受來(lái)自localhost的請(qǐng)求 false
--ipWhitelist 白名單環(huán)境隔離 所有IP地址
--pidfile 為stop命令存儲(chǔ)pid的文件 mb.pid
  • 常用術(shù)語(yǔ)

    1. 冒名頂替者(imposter)

    從社會(huì)角度來(lái)說(shuō)他就是一個(gè)詐騙團(tuán)伙赋元,里面會(huì)有很多的騙子忘蟹。
    從技術(shù)角度來(lái)說(shuō)imposter就是一個(gè)服務(wù)或系統(tǒng)騙子飒房,他有端口、協(xié)議提供測(cè)試的服務(wù)媚值,可以根據(jù)測(cè)試需要?jiǎng)?chuàng)建多個(gè)imposter狠毯。

    1. 存根(stub)

    用于為imposter生成響應(yīng)的一組配置。一個(gè)imposter可以具有0個(gè)或多個(gè)stub褥芒。

    從社會(huì)角度來(lái)說(shuō)就是騙子公司的一個(gè)部門(mén)或產(chǎn)品線嚼松。

    從技術(shù)角度來(lái)說(shuō)stub就是提供一個(gè)服務(wù)的響應(yīng),一個(gè)請(qǐng)求的地址喂很。

    1. 謂詞(predicate)

    配置響應(yīng)stub的條件惜颇。每個(gè)stub可以有0個(gè)或更多predicate。

    從社會(huì)角度來(lái)說(shuō)就是要找相應(yīng)的人做相應(yīng)的事少辣。

    從技術(shù)角度來(lái)說(shuō)predicate就是根據(jù)條件做相應(yīng)的功能凌摄,返回對(duì)應(yīng)的數(shù)據(jù)。

    1. 響應(yīng)(response)

    產(chǎn)生響應(yīng)數(shù)據(jù)漓帅。每個(gè)stub可以有0個(gè)或更多響應(yīng)锨亏。

    1. 響應(yīng)類型(response type)
      每個(gè)stub響應(yīng)由定義響應(yīng)行為的特定響應(yīng)類型定義。目前支持的響應(yīng)類型是:is忙干,proxy器予,inject。

    is是默認(rèn)的類型捐迫,就是一般的應(yīng)答輸出乾翔。

    proxy是代理響應(yīng)類型,它允許記錄重放行為施戴。

    inject允許您注入JavaScript函數(shù)以創(chuàng)建響應(yīng)對(duì)象反浓。

    1. 存根行為(stub behavior)

    向響應(yīng)添加其他的自定義處理,如可以后面通過(guò)shell腳本執(zhí)行nodejs來(lái)獲取動(dòng)態(tài)的數(shù)據(jù)赞哗。

    如果對(duì)上面的概念還不明白雷则,沒(méi)有關(guān)系,后面就讓代碼給你解釋肪笋。

  • 代碼說(shuō)明一切

前面對(duì)于他的結(jié)構(gòu)說(shuō)明了一番月劈,不懂得沒(méi)有關(guān)系,我們go on藤乙!
下面就是一個(gè)imposter猜揪,其實(shí)他就是一個(gè)json格式的文件,為了方便說(shuō)明我在json里面加了注釋(懂技術(shù)的人都會(huì)明白坛梁,這樣會(huì)死的很慘J摇)。

{
  "port": 8081,<!-- 端口號(hào) -->
  "protocol": "http",<!-- 通訊協(xié)議 -->
  "stubs": [
    {
      "predicates": [
        {
          "equals": {
            "method": "POST",<!-- 提交方式 -->
            "path": "/customers/123"<!-- 訪問(wèn)地址 -->
          }
        }
      ],
      "responses": [<!-- 響應(yīng)數(shù)據(jù) -->
       {
        "is": {
            "statusCode": 200,
            "headers": {
                "Server": "Apache-Coyote/1.1",
                "Access-Control-Allow-Origin": "*",
                "Content-Type": "text/json;charset=UTF-8",
                "Content-Length": 298,
                "Date": "Tue, 05 Sep 2017 06:49:14 GMT",
                "Connection": "close"
            },
            "body": {
       
                "head": {
                    "rspcode": "100",
                    "respMsg": "成功",
                    "serialNo": "d7af14e5-a99e-4881-9b1b-695b7a760a64"
                },
                "body": {
                    "code": "S4393493",
                    "startDate": "2019-04-09",
                    "level": "3",
                    "endDate": "2020-04-08"
                }
       
            }
        },
        "_behaviors": {
            "shellTransform": ["node ./dcs/test.js"]<!-- 這里可以通過(guò)shell腳本執(zhí)行nodejs來(lái)修改body的數(shù)據(jù) -->
        }
       }
      ]
    },
    {
      "responses": [
        {
          "is": { "statusCode": 404 }<!-- 地址不匹配情況 -->
        }
      ]
    }
  ]
}

正常訪問(wèn)的情況下返回結(jié)果為:

{
    "head": {
        "rspcode": "100",
        "respMsg": "成功",
        "serialNo": "d7af14e5-a99e-4881-9b1b-695b7a760a64"
    },
    "body": {
        "code": "S4393493",
        "startDate": "2019-04-09",
        "level": "3",
        "endDate": "2020-04-08"
    }
}

是不是很簡(jiǎn)單罚勾?

系統(tǒng)測(cè)試?yán)髦畵醢鍖?shí)戰(zhàn)(一)
系統(tǒng)測(cè)試?yán)髦畵醢鍖?shí)戰(zhàn)(三)
系統(tǒng)測(cè)試?yán)髦畵醢鍖?shí)戰(zhàn)(四)
系統(tǒng)測(cè)試?yán)髦畵醢鍖?shí)戰(zhàn)(五)
系統(tǒng)測(cè)試?yán)髦畵醢鍖?shí)戰(zhàn)(六)
系統(tǒng)測(cè)試?yán)髦畵醢鍖?shí)戰(zhàn)終結(jié)(七)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末毅人,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子尖殃,更是在濱河造成了極大的恐慌丈莺,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,826評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件送丰,死亡現(xiàn)場(chǎng)離奇詭異缔俄,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)器躏,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,968評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)俐载,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人登失,你說(shuō)我怎么就攤上這事遏佣。” “怎么了揽浙?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,234評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵状婶,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我馅巷,道長(zhǎng)膛虫,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,562評(píng)論 1 293
  • 正文 為了忘掉前任钓猬,我火速辦了婚禮稍刀,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘敞曹。我一直安慰自己账月,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,611評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布异雁。 她就那樣靜靜地躺著捶障,像睡著了一般。 火紅的嫁衣襯著肌膚如雪纲刀。 梳的紋絲不亂的頭發(fā)上项炼,一...
    開(kāi)封第一講書(shū)人閱讀 51,482評(píng)論 1 302
  • 那天,我揣著相機(jī)與錄音示绊,去河邊找鬼锭部。 笑死,一個(gè)胖子當(dāng)著我的面吹牛面褐,可吹牛的內(nèi)容都是我干的拌禾。 我是一名探鬼主播,決...
    沈念sama閱讀 40,271評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼展哭,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼湃窍!你這毒婦竟也來(lái)了闻蛀?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,166評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤您市,失蹤者是張志新(化名)和其女友劉穎觉痛,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體茵休,經(jīng)...
    沈念sama閱讀 45,608評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡薪棒,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,814評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了榕莺。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片俐芯。...
    茶點(diǎn)故事閱讀 39,926評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖钉鸯,靈堂內(nèi)的尸體忽然破棺而出吧史,到底是詐尸還是另有隱情,我是刑警寧澤亏拉,帶...
    沈念sama閱讀 35,644評(píng)論 5 346
  • 正文 年R本政府宣布扣蜻,位于F島的核電站,受9級(jí)特大地震影響及塘,放射性物質(zhì)發(fā)生泄漏莽使。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,249評(píng)論 3 329
  • 文/蒙蒙 一笙僚、第九天 我趴在偏房一處隱蔽的房頂上張望芳肌。 院中可真熱鬧,春花似錦肋层、人聲如沸亿笤。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,866評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)净薛。三九已至,卻和暖如春蒲拉,著一層夾襖步出監(jiān)牢的瞬間肃拜,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,991評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工雌团, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留燃领,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,063評(píng)論 3 370
  • 正文 我出身青樓锦援,卻偏偏與公主長(zhǎng)得像猛蔽,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,871評(píng)論 2 354

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