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

擋板起因

  • 當(dāng)今是多服務(wù)多協(xié)作的時(shí)代,任何系統(tǒng)不再是孤島嘱朽,而是相互依賴。
  • 由于存在多系統(tǒng)間環(huán)境穩(wěn)定難怔接、數(shù)據(jù)準(zhǔn)備難搪泳、并行開發(fā)難問題,造成多系統(tǒng)間聯(lián)調(diào)測(cè)試需要大量的溝通成本扼脐、排查成本岸军,為了解決這個(gè)讓人頭疼的問題,引出了擋板的概念瓦侮。
  • 其實(shí)擋板測(cè)試主要是為了模擬外圍的系統(tǒng)艰赞、服務(wù)、接口而開發(fā)的mock肚吏。
  • 如電商系統(tǒng)調(diào)用第三方支付進(jìn)行訂單的付款方妖、充值等場(chǎng)景,在雙方遵循接口協(xié)議的同時(shí)罚攀,不管開發(fā)聯(lián)調(diào)党觅、功能測(cè)試還是性能測(cè)試都能夠讓技術(shù)人員專注自己的功能實(shí)現(xiàn)。
  • 一句話為了減少外圍系統(tǒng)的影響斋泄,在接口協(xié)議的框架下專注自己的功能杯瞻,減少扯犢子。

解決問題

  • 擋板解決不穩(wěn)定的問題:Mock服務(wù)非常簡(jiǎn)單是己,業(yè)務(wù)邏輯簡(jiǎn)單甚至沒有又兵,所以它足夠穩(wěn)定。
  • 快速構(gòu)造復(fù)雜數(shù)據(jù):通過自定義返回結(jié)果卒废,可以構(gòu)造非常復(fù)雜的數(shù)據(jù)沛厨,不需要第三方給我們準(zhǔn)備數(shù)據(jù),即可以做業(yè)務(wù)驗(yàn)證摔认。
  • 快速構(gòu)造異常場(chǎng)景:對(duì)于一些異常的情況逆皮,比如網(wǎng)絡(luò)延遲高、重試機(jī)制参袱、特殊異常返回都可以用擋板來構(gòu)造电谣。
  • 契約測(cè)試秽梅、驅(qū)動(dòng)測(cè)試開發(fā)、性能測(cè)試剿牺、演示測(cè)試統(tǒng)統(tǒng)適用企垦。

框架說明

  • 先復(fù)習(xí)下我們一般的系統(tǒng)架構(gòu),如下面的電商系統(tǒng)晒来,會(huì)調(diào)用外圍的系統(tǒng)支付钞诡、短信、實(shí)名認(rèn)證湃崩、郵件通知等荧降,對(duì)外通訊協(xié)議有tcp、https攒读、http朵诫、smtp。

    image

    這里主要說明了調(diào)用外圍系統(tǒng)的情景薄扁,其實(shí)內(nèi)部之間的系統(tǒng)調(diào)用比這復(fù)雜剪返。

  • 我們?cè)谝霌醢宓募軜?gòu)后,擋板對(duì)于核心系統(tǒng)訪問應(yīng)該是透明的泌辫,是美麗的謊言随夸,具體架構(gòu)如下:


    image
  • 我們?cè)偕钊肓私庀聯(lián)醢宓募軜?gòu),從功能的角度分為動(dòng)態(tài)數(shù)據(jù)震放、靜態(tài)數(shù)據(jù)提供宾毒。


    image
  • 擋板前置

    提供接口的服務(wù),用什么協(xié)議殿遂、用什么端口诈铛。

  • 靜態(tài)數(shù)據(jù)

    靜態(tài)的數(shù)據(jù)就是在寫測(cè)試代碼之前根據(jù)需要準(zhǔn)備好,利用json數(shù)據(jù)格式(1.2)或其他文件的數(shù)據(jù)(1.1)存儲(chǔ)墨礁,他的數(shù)據(jù)基本上是無需改動(dòng)的幢竹。

  • 動(dòng)態(tài)數(shù)據(jù)

    動(dòng)態(tài)的數(shù)據(jù)就是在測(cè)試代碼運(yùn)行的時(shí)候才生成或根據(jù)業(yè)務(wù)去查詢數(shù)據(jù)。

    數(shù)據(jù)無上下文關(guān)系只是一些動(dòng)態(tài)的數(shù)據(jù)輸出恩静,利用動(dòng)態(tài)的函數(shù)生成數(shù)據(jù)(2.1)焕毫,動(dòng)態(tài)的函數(shù)生成可以使用mockjs,它里面提供常用的數(shù)據(jù)生成驶乾,后面詳細(xì)介紹邑飒。

    數(shù)據(jù)存在上下文關(guān)系,當(dāng)前接口需要前面接口數(shù)據(jù)级乐,利用數(shù)據(jù)庫(kù)或NOSQL提供數(shù)據(jù)(2.2)疙咸。

  • 定時(shí)回調(diào)

    利用定時(shí)任務(wù)能夠根據(jù)業(yè)務(wù)需求定時(shí)的把數(shù)據(jù)推到核心系統(tǒng),是整個(gè)業(yè)務(wù)調(diào)用鏈路閉合风科。他的數(shù)據(jù)來自于靜態(tài)或動(dòng)態(tài)的數(shù)據(jù)。

技術(shù)選型

根據(jù)上面的架構(gòu)要求,在繁多的開源框架中绽榛,選擇了<label style="color:red">mountebank+mockjs</label>,其他的框架很多在這里不做評(píng)論,軟件沒有好壞之分枫振,適合很重要!

mountebank本身相當(dāng)強(qiáng)大,引用官方的話說mountebank可以提供跨平臺(tái)、多協(xié)議的測(cè)試mock亲桦,就像我們所說的樁代碼一樣提供測(cè)試驅(qū)動(dòng),
是當(dāng)前開源當(dāng)中最強(qiáng)大的浊仆,完全可以治愈你的痛。

一句話mountebank簡(jiǎn)單便捷的實(shí)現(xiàn)擋板服務(wù)豫领。

mountebank 簡(jiǎn)寫 mb抡柿,注意后面直接稱呼了。

mockjs本身也是可以提供mock的功能等恐,我主要是看中了他強(qiáng)大的豐富的數(shù)據(jù)類型洲劣,生成動(dòng)態(tài)的數(shù)據(jù)那是相當(dāng)方便。
先嘗嘗鮮:

Mock.mock({
  "number|1-100": 100
})

這個(gè)函數(shù)就很容易的得到1到100的隨機(jī)數(shù)课蔬,相當(dāng)方便吧囱稽。

環(huán)境安裝

由于mountebank是基于nodejs,所以首先要安裝下nodejs二跋,版本要求是v6或以上(他的強(qiáng)大之處在這里就不多說了战惊,做前端的朋友心里有數(shù))。

官方下載https://nodejs.org/en/download/
或者
yum install -y nodejs
那就mb和其他的組件一起安裝了
#安裝mountebank
npm install -g mountebank
#http請(qǐng)求提交試用
npm install superagent --save
#日志打印
npm install log4js
#獲取UUID試用
npm install uuid --save
#獲取時(shí)間
npm install moment
#mysql連接用
npm install mysql -S
#定時(shí)任務(wù)
npm install cron
#mock常用函數(shù)組件
npm install mockjs

系統(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)離奇詭異闷营,居然都是意外死亡烤黍,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,968評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門傻盟,熙熙樓的掌柜王于貴愁眉苦臉地迎上來速蕊,“玉大人,你說我怎么就攤上這事莫杈』ダ” “怎么了?”我有些...
    開封第一講書人閱讀 164,234評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵筝闹,是天一觀的道長(zhǎng)媳叨。 經(jīng)常有香客問我腥光,道長(zhǎng),這世上最難降的妖魔是什么糊秆? 我笑而不...
    開封第一講書人閱讀 58,562評(píng)論 1 293
  • 正文 為了忘掉前任武福,我火速辦了婚禮,結(jié)果婚禮上痘番,老公的妹妹穿的比我還像新娘捉片。我一直安慰自己,他們只是感情好汞舱,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,611評(píng)論 6 392
  • 文/花漫 我一把揭開白布伍纫。 她就那樣靜靜地躺著,像睡著了一般昂芜。 火紅的嫁衣襯著肌膚如雪莹规。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,482評(píng)論 1 302
  • 那天泌神,我揣著相機(jī)與錄音良漱,去河邊找鬼。 笑死欢际,一個(gè)胖子當(dāng)著我的面吹牛母市,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播损趋,決...
    沈念sama閱讀 40,271評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼患久,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了浑槽?” 一聲冷哼從身側(cè)響起墙杯,我...
    開封第一講書人閱讀 39,166評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎括荡,沒想到半個(gè)月后高镐,有當(dāng)?shù)厝嗽跇淞掷锇l(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
  • 文/蒙蒙 一胚股、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧裙秋,春花似錦琅拌、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,866評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至枷恕,卻和暖如春即彪,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背活尊。 一陣腳步聲響...
    開封第一講書人閱讀 32,991評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(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)容

  • 概要 64學(xué)時(shí) 3.5學(xué)分 章節(jié)安排 電子商務(wù)網(wǎng)站概況 HTML5+CSS3 JavaScript Node 電子...
    阿啊阿吖丁閱讀 9,197評(píng)論 0 3
  • 框架提出的背景 ES6/7帶來的變革 自ES6確定和ES7中async/await開始普及轻庆,Node的發(fā)展變得更加...
    宮若石閱讀 8,504評(píng)論 1 14
  • 一:LoadRunner常見問題整理1.LR 腳本為空的解決方法:1.去掉ie設(shè)置中的第三方支持取消掉2.在系統(tǒng)屬...
    0100閱讀 4,124評(píng)論 0 11
  • 搭建開發(fā)環(huán)境并模擬交互數(shù)據(jù) 一癣猾、實(shí)驗(yàn)說明 下述介紹為實(shí)驗(yàn)樓默認(rèn)環(huán)境,如果您使用的是定制環(huán)境余爆,請(qǐng)修改成您自己的環(huán)境介...
    玄月府的小妖在debug閱讀 2,125評(píng)論 0 15
  • 王偉和拉拉最后還是一起了~ 不過為何王偉會(huì)突然人間蒸發(fā)纷宇?原來我猜想是不是為了讓拉拉不受黛西的騷擾,所以又和黛西一起...
    桌子和1106閱讀 706評(píng)論 0 0