国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

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

gghyoo / 2162人閱讀

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

MOCK API 的定義

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

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

通過 Mock API事先編寫好 API 的數(shù)據(jù)生成規(guī)則,由工具動態(tài)生成 API 的返回數(shù)據(jù)。開發(fā)人員通過訪問 Mock API 來獲得頁面所需要的數(shù)據(jù),就可以輕松地完成對接工作。

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

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

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

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

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

3.自動化測試

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

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

自動化測試過程中,經(jīng)常會因為依賴的第三方環(huán)境不穩(wěn)定,導(dǎo)致測試執(zhí)行失敗,長期以往的出現(xiàn)問題,導(dǎo)致測試人員對自動化的穩(wěn)定運行失去維護(hù)的信心;

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

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

接下來我們從測試的層面舉個場景:

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

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

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

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

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

登陸

獲取企業(yè)詳情

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

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

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

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

下面再講一個使用mock自定義功能的項目場景:

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

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

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

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

舉個例子,在API文檔建立后,在進(jìn)行測試時,我的要求是在URL一樣的情況下,根據(jù)不同的請求頭部返回不同結(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管理、測試功能,本次我們使用它來進(jìn)行 Mock API,官網(wǎng)地址:https://www.eolinker.com

1.先建立好文檔

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

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

4.第二種情況類似,就不贅述了

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

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

轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/31318.html

相關(guān)文章

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

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

    tianyu 評論0 收藏0
  • 從零開始打造 Mock 平臺 - 核心篇

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

    he_xd 評論0 收藏0
  • 從零開始打造 Mock 平臺 - 核心篇

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

    kidsamong 評論0 收藏0
  • 從零開始打造 Mock 平臺 - 核心篇

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

    kbyyd24 評論0 收藏0

發(fā)表評論

0條評論

gghyoo

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<