iOS研發(fā)工具M(jìn)ockServer的實(shí)踐分析
推薦 + 挑錯(cuò) + 收藏(0) + 用戶評(píng)論(0)
前言
京東APP核心購(gòu)物流程因其重要性,內(nèi)部稱之為黃金購(gòu)物流程,公司各大業(yè)務(wù)事業(yè)部都有許多個(gè)性化訴求,每個(gè)版本承接的需求量很大。研發(fā)在保證需求完成數(shù)量的同時(shí),還需要保證代碼質(zhì)量和持續(xù)提升開發(fā)效率,對(duì)于工具的應(yīng)用就顯得非常急迫。
iOS Mocker是我們部署的一套服務(wù)端接口Mock工具,主要用于業(yè)務(wù)開發(fā)過程解耦、測(cè)試數(shù)據(jù)保存和分享、客戶端容錯(cuò)測(cè)試等場(chǎng)景。目前已完成搜索、商詳、購(gòu)物車等核心購(gòu)物流程的接入,內(nèi)部存儲(chǔ)的數(shù)據(jù)基本覆蓋了這些模塊所有線上可能出現(xiàn)的接口返回場(chǎng)景,為各模塊的版本迭代和代碼重構(gòu)提供了更全面的數(shù)據(jù)保障。
現(xiàn)狀和痛點(diǎn)
?
開發(fā)過程客戶端依賴服務(wù)端接口進(jìn)行聯(lián)調(diào)
在開發(fā)階段,客戶端和服務(wù)端同時(shí)進(jìn)行需求開發(fā),客戶端在有些需求上可能需要等待服務(wù)端需求上線之后再進(jìn)入開發(fā),這種等待是不必要的,也增加了客戶端后期的工作壓力。
?
客戶端更便捷的積累和獲取驗(yàn)證數(shù)據(jù)
以搜索結(jié)果頁(yè)的商品列表為例,由于商品種類繁多,特性差異巨大,列表頁(yè)中給每個(gè)商品的展示區(qū)域雖然很小,但是卻希望將每個(gè)商品的賣家、好評(píng)、促銷等特征信息全面的呈現(xiàn)出來(lái),所以每個(gè)商品占位僅有242像素高的cell上總共分出了9個(gè)區(qū)域。每個(gè)區(qū)域的展示根據(jù)服務(wù)端下發(fā)配置的不同,不同機(jī)型適配邏輯不同,組合成200多種不同的展示形態(tài)。手機(jī)品類的幾種情況如下圖:
?
由于cell有復(fù)用機(jī)制,在線上環(huán)境,cell中的每一種布局在理論上都有被回收復(fù)用到另一種布局的可能。那么,我們?nèi)绾伪WC每一種布局之間相互復(fù)用都不會(huì)有問題?如何保證在某個(gè)區(qū)域新增加一種展示方案后,不會(huì)對(duì)相關(guān)區(qū)域造成不確定的影響?這種全面驗(yàn)證的主要難點(diǎn)在于特殊數(shù)據(jù)的積累上,需要一個(gè)工具來(lái)輔助客戶端研發(fā)創(chuàng)建和積累這些特殊的驗(yàn)證數(shù)據(jù)。數(shù)據(jù)積累之后,客戶端研發(fā)在代碼重構(gòu)和需求開發(fā)時(shí)能更方便更快速的進(jìn)行驗(yàn)證。
客戶端容錯(cuò)和健壯性測(cè)試
在生產(chǎn)環(huán)境,客戶端做好接口容錯(cuò)處理是必須的。比如接口某字段下發(fā)為null時(shí)候,進(jìn)行各種容器操作會(huì)導(dǎo)致Crash,或者可能會(huì)導(dǎo)致界面顯示不能降級(jí),所以容錯(cuò)和健壯性測(cè)試也是很關(guān)鍵的。
Mocker目標(biāo)
去除開發(fā)階段客戶端對(duì)服務(wù)端進(jìn)度的依賴,研發(fā)在Mocker服務(wù)器上編輯Json數(shù)據(jù),開發(fā)時(shí)對(duì)應(yīng)接口直接從Mocker服務(wù)器上拉取預(yù)先編譯好的數(shù)據(jù)進(jìn)行解析,完成后續(xù)開發(fā)和自測(cè),無(wú)需在客戶端添加額外的任何測(cè)試代碼。
Mock數(shù)據(jù)全面覆蓋客戶端所有測(cè)試用例需要的接口數(shù)據(jù),回歸測(cè)試時(shí)或者代碼重構(gòu)之后,可以結(jié)合測(cè)試的代碼覆蓋率數(shù)據(jù),保證完成了工程的全面驗(yàn)證。
有效改善研發(fā)和測(cè)試的溝通和工作效率,研發(fā)在需求提測(cè)時(shí)候會(huì)攜帶驗(yàn)證的Mock數(shù)據(jù)ID,測(cè)試在功能測(cè)試期間不需要依賴預(yù)發(fā)環(huán)境就可以進(jìn)行測(cè)試;測(cè)試在發(fā)現(xiàn)問題向研發(fā)提出時(shí)候也會(huì)攜帶對(duì)應(yīng)的Mock數(shù)據(jù)ID,方便研發(fā)快速定位問題。
非常好我支持^.^
(0) 0%
不好我反對(duì)
(0) 0%
下載地址
iOS研發(fā)工具M(jìn)ockServer的實(shí)踐分析下載
相關(guān)電子資料下載
- iOS17.1可能明天發(fā)布,iOS17.1主要修復(fù)哪些問題? 377
- 華為全新鴻蒙蓄勢(shì)待發(fā) 僅支持鴻蒙內(nèi)核和鴻蒙系統(tǒng)應(yīng)用 719
- 蘋果手機(jī)系統(tǒng)iOS 17遭用戶質(zhì)疑 731
- iPhone12輻射超標(biāo)?蘋果推送iOS 17.1解決此事 750
- 傳華為囤積零部件 目標(biāo)明年智能手機(jī)出貨7000萬(wàn)部;消息稱 MiOS 僅限國(guó)內(nèi),小米 28208
- 蘋果推送iOS17.0.3,解決iPhone15Pro系列存在機(jī)身過熱 216
- Testin云測(cè)兼容和真機(jī)服務(wù)平臺(tái)中上線iPhone 15系列手機(jī) 208
- 利爾達(dá)推出搭載HooRiiOS的Matter模組 145
- 運(yùn)放參數(shù)解析:輸入偏置電流(Ibias)和失調(diào)電流(Ios) 128
- 昆侖太科發(fā)布支持國(guó)產(chǎn)飛騰騰銳D2000芯片的開源BIOS固件版本 448