成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專(zhuān)欄INFORMATION COLUMN

MOCK API 的定義及實(shí)踐(使用eolinker實(shí)現(xiàn))

gghyoo / 2167人閱讀

摘要:即便是提供測(cè)試環(huán)境的外部系統(tǒng),一般也僅在開(kāi)發(fā)聯(lián)調(diào)階段配合提供聯(lián)調(diào)測(cè)試對(duì)接服務(wù),一旦聯(lián)調(diào)測(cè)試結(jié)束,也不再繼續(xù)提供測(cè)試服務(wù)。

MOCK API 的定義

根據(jù)百度百科的定義,mock測(cè)試就是在測(cè)試過(guò)程中,對(duì)于某些不容易構(gòu)造或者不容易獲取的對(duì)象,用一個(gè)虛擬的對(duì)象來(lái)創(chuàng)建以便測(cè)試的測(cè)試方法。這個(gè)虛擬的對(duì)象就是mock對(duì)象,mock對(duì)象就是真實(shí)對(duì)象在調(diào)試期間的代替品。

在瀑布流開(kāi)發(fā)模式中,如果前端開(kāi)發(fā)人員需要進(jìn)行頁(yè)面對(duì)接,需要后端先完成API的開(kāi)發(fā)工作,如果沒(méi)有mock,那么前后端開(kāi)發(fā)的進(jìn)度會(huì)互相影響。

通過(guò) Mock API事先編寫(xiě)好 API 的數(shù)據(jù)生成規(guī)則,由工具動(dòng)態(tài)生成 API 的返回?cái)?shù)據(jù)。開(kāi)發(fā)人員通過(guò)訪問(wèn) Mock API 來(lái)獲得頁(yè)面所需要的數(shù)據(jù),就可以輕松地完成對(duì)接工作。

MOCK API 能用來(lái)解決什么? 1.依賴的接口尚未開(kāi)發(fā)完成

在系統(tǒng)交互雙方定義好接口之后,我們可以提前進(jìn)行開(kāi)發(fā)和測(cè)試,并不依賴上游系統(tǒng)的開(kāi)發(fā)實(shí)現(xiàn)。

2.自定義返回測(cè)試結(jié)果(比如 HttpservletRequet、JDBC 對(duì)象等)

在測(cè)試時(shí)使用Mock,可以自由方便的構(gòu)建配置接口對(duì)象的信息參數(shù);

在測(cè)試過(guò)程中,需要第三方接口返回特定的數(shù)據(jù)以符合特定的測(cè)試場(chǎng)景,這種情況往往需要跨條線的溝通協(xié)調(diào)測(cè)試數(shù)據(jù),成本高,效率低;利用Mock可以自定義返回測(cè)試結(jié)果,支持手動(dòng)構(gòu)造依賴接口的返回值。(這個(gè)功能將在后面重點(diǎn)提及)

3.自動(dòng)化測(cè)試

在自動(dòng)化測(cè)試概念和發(fā)展要求下,自動(dòng)化測(cè)試的規(guī)模也逐漸增大到一定程度;

大型業(yè)務(wù)系統(tǒng)下測(cè)試接口多,測(cè)試用例也日益增多,依賴環(huán)境的穩(wěn)定就成為了自動(dòng)化測(cè)試執(zhí)行的關(guān)鍵所在;

自動(dòng)化測(cè)試過(guò)程中,經(jīng)常會(huì)因?yàn)橐蕾嚨牡谌江h(huán)境不穩(wěn)定,導(dǎo)致測(cè)試執(zhí)行失敗,長(zhǎng)期以往的出現(xiàn)問(wèn)題,導(dǎo)致測(cè)試人員對(duì)自動(dòng)化的穩(wěn)定運(yùn)行失去維護(hù)的信心;

利用Mock技術(shù),在測(cè)試過(guò)程中,只關(guān)注被測(cè)業(yè)務(wù)邏輯,mock掉依賴不相關(guān)的系統(tǒng),這種情況下自動(dòng)化測(cè)試運(yùn)行失敗,就一定是被測(cè)系統(tǒng)本身的業(yè)務(wù)邏輯問(wèn)題,而不是第三方系統(tǒng)、數(shù)據(jù)的問(wèn)題;

4.更多場(chǎng)景,歡迎看客老爺補(bǔ)充。 應(yīng)用場(chǎng)景示例(自定義返回結(jié)果)

接下來(lái)我們從測(cè)試的層面舉個(gè)場(chǎng)景:

我所在的項(xiàng)目是企業(yè)管理咨詢,項(xiàng)目最經(jīng)常需要的是根據(jù)企業(yè)詳情判斷返回不同的狀態(tài)。涉及到的數(shù)據(jù)其實(shí)很多,但是為了方便舉例,我計(jì)劃寫(xiě)三個(gè)接口進(jìn)行演示,第一個(gè)是登錄,第二個(gè)是獲取企業(yè)詳情,簡(jiǎn)化了復(fù)雜的判斷,直接用判斷corpld(企業(yè)ID)來(lái)作為識(shí)別的憑證,第三個(gè)是設(shè)置企業(yè)狀態(tài),有注銷(xiāo)和恢復(fù)兩種狀態(tài)。會(huì)根據(jù)企業(yè)的corpstatus進(jìn)行判斷。接下來(lái)帶你一一設(shè)置:

登陸接口不必多講,我們直接到第二個(gè)接口,新建一個(gè)期望,請(qǐng)求觸發(fā)條件不寫(xiě),在返回?cái)?shù)據(jù)這里添加corpstatus可能值為1或者2。

第三個(gè)接口是設(shè)置企業(yè)狀態(tài)(注銷(xiāo)/恢復(fù)),這里需要兩個(gè)請(qǐng)求參數(shù),第一個(gè)是corpld企業(yè)ID,對(duì)應(yīng)上個(gè)接口的corpld;第二個(gè)是corpstatus企業(yè)狀態(tài),這里引用了全局變量,用兩對(duì)花括號(hào)表示。

還是進(jìn)入mockapi新建期望,因?yàn)檫@里有兩個(gè)狀態(tài)(注銷(xiāo)/恢復(fù)),所以需要寫(xiě)兩個(gè)期望。當(dāng)請(qǐng)求參數(shù)corpstatus=4條件觸發(fā)時(shí),返回參數(shù)content=注銷(xiāo)成功;當(dāng)請(qǐng)求參數(shù)corpstatus=2條件觸發(fā)時(shí),返回參數(shù)content=企業(yè)已恢復(fù)。

由于這三個(gè)接口都是應(yīng)用在一個(gè)場(chǎng)景里面的,我們不妨用一個(gè)流程進(jìn)行測(cè)試的,總共三個(gè)測(cè)試用例:

登陸

獲取企業(yè)詳情

設(shè)置企業(yè)狀態(tài)(注銷(xiāo)/恢復(fù))

在測(cè)試前需要在第二個(gè)用例中要寫(xiě)好一個(gè)響應(yīng)預(yù)處理,通過(guò)Javascript代碼動(dòng)態(tài)改變返回的結(jié)果,實(shí)現(xiàn)corpstatus=2或者4,從而對(duì)應(yīng)上之前的全局變量。

然后就可以點(diǎn)擊進(jìn)行測(cè)試。從測(cè)試記錄可以看到會(huì)根據(jù)corpstatus的不同返回了不同的信息。

這就是一個(gè)簡(jiǎn)略完整的一個(gè)場(chǎng)景用例設(shè)計(jì)。那如果沒(méi)有mockapi的話,等著后端開(kāi)發(fā),corpstatus可能就拿不到,進(jìn)度勢(shì)必會(huì)被影響,為了模擬數(shù)據(jù)測(cè)試,這時(shí)候mockapi的優(yōu)勢(shì)就凸顯了。

下面再講一個(gè)使用mock自定義功能的項(xiàng)目場(chǎng)景:

之前所在公司子系統(tǒng)較多,我們?yōu)榱藴p低集成和維護(hù)成本,采用了ESB的架構(gòu)。ESB架構(gòu)可以解決多個(gè)應(yīng)用系統(tǒng)互聯(lián)所面臨的的復(fù)雜性。也是因?yàn)樽酉到y(tǒng)較多導(dǎo)致整個(gè)業(yè)務(wù)系統(tǒng)的運(yùn)轉(zhuǎn)比較復(fù)雜,其中便涉及到和多個(gè)外部系統(tǒng)的對(duì)接及數(shù)據(jù)交互,比如倉(cāng)儲(chǔ)和物流,勢(shì)必會(huì)跟EMS、順豐等有數(shù)據(jù)交互。

當(dāng)然,跟外部系統(tǒng)對(duì)接時(shí)系統(tǒng)間的聯(lián)調(diào)測(cè)試必不可少,有些外部系統(tǒng)提供測(cè)試環(huán)境,有些甚至不提供。即便是提供測(cè)試環(huán)境的外部系統(tǒng),一般也僅在開(kāi)發(fā)聯(lián)調(diào)階段配合提供聯(lián)調(diào)測(cè)試對(duì)接服務(wù),一旦聯(lián)調(diào)測(cè)試結(jié)束,也不再繼續(xù)提供測(cè)試服務(wù)。

那么,當(dāng)這些外部系統(tǒng)的聯(lián)調(diào)測(cè)試環(huán)境不可用時(shí),我們就需模擬這些外部系統(tǒng)來(lái)和自己的系統(tǒng)進(jìn)行數(shù)據(jù)交互,以便支持完整業(yè)務(wù)測(cè)試流程的正常進(jìn)行。

再具體到API開(kāi)發(fā)層面的話,就是開(kāi)發(fā)的API經(jīng)常遇到在URL一樣的情況下,需要根據(jù)請(qǐng)求頭或者請(qǐng)求體的不同,返回不同測(cè)試結(jié)果。以前沒(méi)用mockapi自定義的功能的話,解決的方式只有新建多個(gè)接口分別進(jìn)行,十分麻煩。

舉個(gè)例子,在API文檔建立后,在進(jìn)行測(cè)試時(shí),我的要求是在URL一樣的情況下,根據(jù)不同的請(qǐng)求頭部返回不同結(jié)果。

1.當(dāng)標(biāo)簽頭部
Contest-type=application/json
Clientld=purchase.consemer
OperationCode= medicine.purchase.consemer.List

那么返回參數(shù)
Floor=2
Room=2
Cabinet=2

2.當(dāng)標(biāo)簽頭部
Contest-type=application/json1
Clientld=purchase.consemer1
OperationCode= medicine.purchase.consemer.List1

那么返回參數(shù)
Floor=3
Room=3
Cabinet=3

使用 eolinker 進(jìn)行自定義 MOCK API?

eolinker 是一款接口管理工具,提供API管理、測(cè)試功能,本次我們使用它來(lái)進(jìn)行 Mock API,官網(wǎng)地址:https://www.eolinker.com

1.先建立好文檔

2.建立期望進(jìn)行測(cè)試

3.寫(xiě)完后測(cè)試后返回的數(shù)據(jù)與我們的想要的一致

4.第二種情況類(lèi)似,就不贅述了

本篇文章主要從測(cè)試層面和角度去介紹 MOCK API,算是我上篇文章內(nèi)容的延伸,最近一直在研究API測(cè)試相關(guān),下篇我會(huì)從開(kāi)發(fā)的層面去介紹 MOCK API 的實(shí)際應(yīng)用。希望對(duì)大家有所幫助。eolinker官網(wǎng):https://www.eolinker.com

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/31318.html

相關(guān)文章

  • 【效率專(zhuān)精系列】善用API統(tǒng)一描述語(yǔ)言提升RestAPI開(kāi)發(fā)效率

    摘要:其標(biāo)準(zhǔn)為前身是,提供強(qiáng)大的在線編輯功能,包括語(yǔ)法高亮錯(cuò)誤提示自動(dòng)完成實(shí)時(shí)預(yù)覽,并且支持用戶以格式撰寫(xiě)導(dǎo)入導(dǎo)出轉(zhuǎn)換文檔。 團(tuán)隊(duì)內(nèi)部RestAPI開(kāi)發(fā)采用設(shè)計(jì)驅(qū)動(dòng)開(kāi)發(fā)的模式,即使用API設(shè)計(jì)文檔解耦前端和后端的開(kāi)發(fā)過(guò)程,雙方只在聯(lián)調(diào)與測(cè)試時(shí)耦合。在實(shí)際開(kāi)發(fā)和與前端合作的過(guò)程中,受限于眾多因素的影響,開(kāi)發(fā)效率還有進(jìn)一步提高的空間。本文的目的是優(yōu)化工具鏈支持,減少一部分重復(fù)和枯燥的勞動(dòng)。 現(xiàn)狀...

    tianyu 評(píng)論0 收藏0
  • 從零開(kāi)始打造 Mock 平臺(tái) - 核心篇

    摘要:前言最近一直在搗鼓畢設(shè),準(zhǔn)備做的是一個(gè)基于前后端開(kāi)發(fā)的平臺(tái),前期花了很多時(shí)間完成了功能模塊的交互。核心代碼就是這么一句。經(jīng)過(guò)各種猜想和測(cè)試,發(fā)現(xiàn)是模擬有問(wèn)題。其實(shí)用的最終核心思路還是一樣的。 前言 最近一直在搗鼓畢設(shè),準(zhǔn)備做的是一個(gè)基于前后端開(kāi)發(fā)的Mock平臺(tái),前期花了很多時(shí)間完成了功能模塊的交互?,F(xiàn)在進(jìn)度推到如何設(shè)計(jì)核心功能,也就是Mock數(shù)據(jù)的解析。 根據(jù)之前的需求設(shè)定加上一些思考...

    he_xd 評(píng)論0 收藏0
  • 從零開(kāi)始打造 Mock 平臺(tái) - 核心篇

    摘要:前言最近一直在搗鼓畢設(shè),準(zhǔn)備做的是一個(gè)基于前后端開(kāi)發(fā)的平臺(tái),前期花了很多時(shí)間完成了功能模塊的交互。核心代碼就是這么一句。經(jīng)過(guò)各種猜想和測(cè)試,發(fā)現(xiàn)是模擬有問(wèn)題。其實(shí)用的最終核心思路還是一樣的。 前言 最近一直在搗鼓畢設(shè),準(zhǔn)備做的是一個(gè)基于前后端開(kāi)發(fā)的Mock平臺(tái),前期花了很多時(shí)間完成了功能模塊的交互?,F(xiàn)在進(jìn)度推到如何設(shè)計(jì)核心功能,也就是Mock數(shù)據(jù)的解析。 根據(jù)之前的需求設(shè)定加上一些思考...

    kidsamong 評(píng)論0 收藏0
  • 從零開(kāi)始打造 Mock 平臺(tái) - 核心篇

    摘要:前言最近一直在搗鼓畢設(shè),準(zhǔn)備做的是一個(gè)基于前后端開(kāi)發(fā)的平臺(tái),前期花了很多時(shí)間完成了功能模塊的交互。核心代碼就是這么一句。經(jīng)過(guò)各種猜想和測(cè)試,發(fā)現(xiàn)是模擬有問(wèn)題。其實(shí)用的最終核心思路還是一樣的。 前言 最近一直在搗鼓畢設(shè),準(zhǔn)備做的是一個(gè)基于前后端開(kāi)發(fā)的Mock平臺(tái),前期花了很多時(shí)間完成了功能模塊的交互?,F(xiàn)在進(jìn)度推到如何設(shè)計(jì)核心功能,也就是Mock數(shù)據(jù)的解析。 根據(jù)之前的需求設(shè)定加上一些思考...

    kbyyd24 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

gghyoo

|高級(jí)講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<