一、 中間件
1. 配置
Orange
簡(jiǎn)介
Orange是淘寶App使用的急速捞高、高效的數(shù)億級(jí)無線端配置推送平臺(tái)冲杀,通過App啟動(dòng)自檢以及Mtop網(wǎng)關(guān)搭車機(jī)制,實(shí)現(xiàn)的移動(dòng)端配置高效推送逗堵、拉取解決方案。
測(cè)試
orange配置平臺(tái),全部namespace->獨(dú)客Appkey寿谴,搜索App的orange配置,
按照幫助文檔失受,在預(yù)發(fā)環(huán)境下修改發(fā)布拭卿,之后使用Orange debug模式,查看手機(jī)端的orange配置是否成功更新(注意orange配置觸達(dá)需要一定時(shí)間骡湖,一般30秒內(nèi),再次期間內(nèi)盡可能的觸發(fā)mtop請(qǐng)求)峻厚。
參考資料?
2. ABTest
一休
簡(jiǎn)介
端上AB方案測(cè)試框架响蕴,接入時(shí)使用的是一休SDK,提供AB分桶方案&不同實(shí)驗(yàn)下的數(shù)據(jù)表現(xiàn)收集的解決方案惠桃。
測(cè)試
在一休平臺(tái)上配置頁(yè)面測(cè)試方案浦夷,對(duì)于testUrl,配置50%流向A url辜王,50%流向B url劈狐。獨(dú)客app掃碼testUrl,測(cè)試是否能正確跳轉(zhuǎn)到A呐馆、B方案配置的鏈接肥缔。
3. 埋點(diǎn)
UT
簡(jiǎn)介
UserTrack是一套面向客戶端的數(shù)據(jù)采集系統(tǒng),支持的系統(tǒng)有iOS汹来,Android续膳,Windows,MacOS收班,具有數(shù)據(jù)安全級(jí)別高坟岔,數(shù)據(jù)到達(dá)率高,傳輸流量小等特點(diǎn)摔桦。
測(cè)試
UT掃碼查看埋點(diǎn), 獨(dú)客App掃碼社付,查看埋點(diǎn)信息,arg1邻耕、arg2鸥咖、args是否與預(yù)期一致。埋點(diǎn)方案可以讓開發(fā)在debug模塊下埋一些測(cè)試埋點(diǎn)兄世。
4. 營(yíng)銷
Poplayer(廢棄)
簡(jiǎn)介
Poplayer是一個(gè)可以實(shí)現(xiàn)在任意Native頁(yè)面上彈起H5頁(yè)的營(yíng)銷方案扛或,能達(dá)到不發(fā)版的前提下在Native頁(yè)面彈出浮層并設(shè)置事件的攔截和透?jìng)鳎粡V泛使用在集團(tuán)的各種大促和活動(dòng)中碘饼。
測(cè)試
基于PoplayerSupport平臺(tái)mock配置poplayer彈出地址熙兔,掃碼查看poplayer能否在指定頁(yè)面彈出,以及跳轉(zhuǎn)地址是否與配置一致艾恼。
具體流程如下:?
在生成的模板中可以通過修改對(duì)一個(gè)字段的參數(shù)來實(shí)現(xiàn)Poplayer的設(shè)置住涉。
uri/uris:控制Poplayer的彈出頁(yè)面地址;
starttime/endtime:控制Poplayer的彈出時(shí)間段钠绍;
freq:控制Poplayer的彈出頻率舆声。
5. 圖片庫(kù)
Phenix
簡(jiǎn)介
腳手架App使用是Phenix圖片庫(kù),支撐手淘的圖片加載、顯示媳握、處理碱屁、圖片數(shù)據(jù)監(jiān)控,同時(shí)提供CDN圖片壓縮蛾找、自適應(yīng)娩脾,提供性能優(yōu)化流暢的圖片加載體驗(yàn),提供一站式的圖片解決方案打毛。測(cè)試用例保障圖片加載顯示柿赊、移動(dòng)端自適應(yīng)優(yōu)化正確。
測(cè)試關(guān)注點(diǎn)
圖片支持:支持WebP幻枉、WebP_Alpha碰声、GIF、APNG等圖片熬甫,
圖片保存:所有類型的圖片長(zhǎng)按保存胰挑,測(cè)試圖片庫(kù)保存功能
性能優(yōu)化、自適應(yīng)
自適應(yīng):Phenix圖片庫(kù)移動(dòng)端加載圖片時(shí)椿肩,會(huì)根據(jù)手機(jī)分辨率瞻颂、View大小,對(duì)圖片分辨率自動(dòng)進(jìn)行自適應(yīng)覆旱,比如原圖分辨率1024*1024,端上View是400*400核无,圖片庫(kù)加載圖片時(shí)會(huì)自適應(yīng)到最接近400*400的圖片
性能優(yōu)化:針對(duì)不同網(wǎng)絡(luò)質(zhì)量的圖片請(qǐng)求扣唱,圖片庫(kù)會(huì)加載不同壓縮質(zhì)量的圖片,保證圖片流暢加載团南,比如wifi下加載原圖噪沙,4G下加載Q90質(zhì)量圖片,3G下加載Q75圖片吐根,可定制正歼。(圖片壓縮會(huì)導(dǎo)致圖片精度不夠,如果業(yè)務(wù)對(duì)圖片精度有高質(zhì)量要求拷橘,需要定制)
測(cè)試
使用TMS平臺(tái)上傳webp局义、png、jpeg冗疮、gif萄唇、apng類型圖片到CDN,獨(dú)客App通過掃碼瀏覽圖片术幔,測(cè)試覆蓋各個(gè)類型圖片加載另萤、顯示、放大全屏顯示是否正確
圖片保存,所有類型的圖片長(zhǎng)按保存四敞,測(cè)試圖片庫(kù)保存功能
分享任意手淘導(dǎo)購(gòu)文章泛源,獨(dú)客App掃碼打開文章鏈接,Charles抓包查看網(wǎng)絡(luò)請(qǐng)求中CDN圖片的后綴忿危,比如//gw.alicdn.com/tfs/TB1B34_BAvoK1RjSZFwXXciCFXa-36-36.png_90x90q90.jpg_.webp达箍,原圖是png,圖片會(huì)自動(dòng)適應(yīng)到90*90的webp圖片癌蚁,并且圖片壓縮質(zhì)量是Q90幻梯。說明自適應(yīng)、性能優(yōu)化功能正確努释。
6. 模板動(dòng)態(tài)化
DinamicX
簡(jiǎn)介
Dinamic是一套純Native的動(dòng)態(tài)化模板方案碘梢,提供iOS/Android兩端統(tǒng)一的動(dòng)態(tài)化能力。使用XML格式描述模板伐蒂,基于Android的布局方案設(shè)計(jì)了較為簡(jiǎn)單的DSL煞躬,以簡(jiǎn)單易懂的方式描述控件以及布局,一次書寫逸邦,兩端運(yùn)行恩沛。兼容服務(wù)端的各種樣式數(shù)據(jù)結(jié)構(gòu)。內(nèi)置基礎(chǔ)控件和布局系統(tǒng)缕减,同時(shí)提供自定義控件雷客、自定義事件處理、自定義數(shù)據(jù)綁定等支持功能桥狡。
測(cè)試關(guān)注點(diǎn)
DinamicX的測(cè)試盡可能的結(jié)合業(yè)務(wù)中需要使用Dinamic模板的需求一并測(cè)試搅裙,關(guān)注模板布局及渲染正常以外,還需要關(guān)注其動(dòng)態(tài)化能力的測(cè)試裹芝。
測(cè)試
結(jié)合業(yè)務(wù)的具體模板測(cè)試模板布局與渲染功能測(cè)試部逮;
模板重構(gòu)的適配測(cè)試;
老版本與新版本的模板兼容測(cè)試嫂易,包括老版本兼容新版本模板兄朋、老版本升級(jí)新版本后模板正常升級(jí)。
參考資料
7. 動(dòng)態(tài)化容器
Windvane
簡(jiǎn)介
WindVane 是一個(gè)可擴(kuò)展的Hybrid應(yīng)用解決方案怜械,主要客戶端內(nèi)的 Web 頁(yè)面提供WebView 容器颅和。WindVane提供了豐富的功能擴(kuò)展,包括 URL 攔截缕允、事件機(jī)制融虽、資源預(yù)加載和JSBridge功能,支持Web頁(yè)面與Native進(jìn)行交互灼芭。
測(cè)試關(guān)注點(diǎn)
WindVane內(nèi)建很多JSBridge API有额,所以Windvane的測(cè)試重點(diǎn)主要集中在JSBridge API的測(cè)試。
測(cè)試
Windvane有自己的測(cè)試頁(yè)面,讓開發(fā)內(nèi)嵌到App內(nèi)測(cè)試各個(gè)API功能是否正常即可。
Weex
簡(jiǎn)介
能夠使用同一套代碼來構(gòu)建 Android巍佑、iOS 和 Web 應(yīng)用茴迁。Weex 的結(jié)構(gòu)是解耦的,渲染引擎與語法層是分開的萤衰,不依賴任何特定的前端框架堕义,目前主要支持 Vue.js 和 Rax 這兩個(gè)前端框架,比較方便在Native和DSL層面進(jìn)行擴(kuò)展脆栋。
測(cè)試關(guān)注點(diǎn)
除了關(guān)注Weex頁(yè)面功能外倦卖,還需要考慮攔截與降級(jí)。
測(cè)試
這里推薦一篇ATA文檔椿争,里面簡(jiǎn)介了weex頁(yè)面詳細(xì)的功能測(cè)試點(diǎn)及攔截怕膛、降級(jí)的測(cè)試點(diǎn),我這里就不做贅述了秦踪。客戶端weex測(cè)試經(jīng)驗(yàn)總結(jié)
8. 消息(Agoo)
簡(jiǎn)介
手機(jī)端的營(yíng)銷push褐捻、通知送達(dá)是App觸達(dá)用戶必不可少的收到。Agoo提供基于長(zhǎng)鏈接和廠商通道的消息推送解決方案椅邓,支持億級(jí)消息高效送達(dá)柠逞。主要使用的場(chǎng)景有營(yíng)銷push、消息通知景馁、物流活動(dòng)通知等板壮。
Agoo的通知推送通道有兩種:accs長(zhǎng)鏈接推送、廠商離線通道合住。
accs長(zhǎng)鏈接推送,ACCS是淘寶無線向開發(fā)者提供全雙工绰精、低延時(shí)、高安全的通道服務(wù)聊疲,同時(shí)具備實(shí)時(shí)推送消息能力茬底。App啟動(dòng)后沪悲,推送一條消息給用戶获洲,用戶online,accs長(zhǎng)鏈接處于激活狀態(tài)殿如,agoo將消息通過accs推送給客戶端贡珊,客戶端收到accs消息調(diào)用系統(tǒng)通知,彈出push通知欄涉馁。
廠商通道门岔,如果app未啟動(dòng),沒有長(zhǎng)鏈接烤送,我們?cè)趺从|達(dá)用戶寒随?agoo接入了各個(gè)手機(jī)廠商的消息通道,在用戶離線狀態(tài)下,agoo會(huì)將消息通過廠商的離線消息通過推送到設(shè)備上妻往,按照各個(gè)手機(jī)廠商定制的格式彈出系統(tǒng)通知互艾。支持的通道有,iOS使用的是apns讯泣,華為纫普、小米、vivo好渠、魅族昨稼、oppo等。
測(cè)試
agoo sdk接入拳锚,各個(gè)通道注冊(cè)配置較多假栓,測(cè)試務(wù)必要覆蓋完備:
accs通道測(cè)試:用戶登錄、app啟動(dòng)狀態(tài)下晌畅,通過aden平臺(tái)下發(fā)通知給用戶但指,iOS設(shè)備用戶可以收到通知push,點(diǎn)擊后可以拉起app抗楔,進(jìn)入到通知配置的跳轉(zhuǎn)url棋凳。
Android廠商通道:殺掉app進(jìn)程,保證app未啟動(dòng)连躏,通過aden平臺(tái)給用戶下發(fā)通知剩岳,華為、小米入热、vivo拍棕、魅族、oppo手機(jī)可以收到離線通知勺良,點(diǎn)擊通知可以拉起app绰播,并跳轉(zhuǎn)到目標(biāo)url。
蘋果APNS:iOS使用越獄機(jī)安裝越獄包進(jìn)行離線推送測(cè)試尚困,aden平臺(tái)給用戶下發(fā)通知蠢箩,用戶可以收到通知,點(diǎn)擊通知可以拉起app事甜,并跳轉(zhuǎn)到目標(biāo)url谬泌。
參考資料
9. 閃屏
簡(jiǎn)介
閃屏在iOS規(guī)范里被稱為L(zhǎng)aunch Screen,即用戶在觸發(fā)應(yīng)用時(shí)立即顯示在屏幕上的頁(yè)面逻谦,很快就會(huì)被應(yīng)用中第一個(gè)頁(yè)面所替換掌实,主要為增強(qiáng)應(yīng)用的視覺感知。閃屏的配置與測(cè)試都是在工匠平臺(tái)(鏈接)完成邦马。
測(cè)試關(guān)注點(diǎn)
各類型的閃屏配置能正常生效贱鼻。
測(cè)試
在工匠平臺(tái)建立閃屏測(cè)試配置宴卖,分別配置測(cè)試閃屏類型、閃屏?xí)r長(zhǎng)邻悬、閃屏次數(shù)嘱腥、閃屏啟動(dòng)方式、閃屏頁(yè)跳轉(zhuǎn)的功能是否正常拘悦。
10. 掃碼
測(cè)試
開啟wifi齿兔、4G網(wǎng)絡(luò)等掃碼功能正常使用。
掃碼頁(yè)面的掃碼歷史記錄础米、選擇圖片等功能正常使用分苇。
11. 定位
簡(jiǎn)介
腳手架接入的是高德定位SDK,提供GPS定位屁桑、網(wǎng)絡(luò)定位医寿。
測(cè)試
開啟GPS定位,通過定位接口獲得獨(dú)客App經(jīng)緯度信息蘑斧。
關(guān)閉GPS定位靖秩,開啟wifi、4G網(wǎng)絡(luò)等竖瘾,定位接口可以返回獨(dú)客App的經(jīng)緯度信息沟突。
關(guān)閉GPS、網(wǎng)絡(luò)捕传,定位接口無法獲得App的經(jīng)緯度信息惠拭。
二、 網(wǎng)絡(luò)
1. MTOP
簡(jiǎn)介
MTOP是一個(gè)面向集團(tuán)用戶的無線API網(wǎng)關(guān)庸论,支持HTTP和HSF兩種訪問方式职辅。MTOP提供了以下功能:
API標(biāo)準(zhǔn)化:定義了一套標(biāo)準(zhǔn)的API數(shù)據(jù)協(xié)議,規(guī)范了API的請(qǐng)求和應(yīng)答聂示。
安全穩(wěn)定:API授權(quán)功能保證API只被已授權(quán)用戶訪問域携,簽名驗(yàn)證功能保證了API調(diào)用中數(shù)據(jù)不被篡改,客戶端結(jié)合安全黑匣子工具保護(hù)客戶端中密鑰的安全性鱼喉。
多維度報(bào)表:提供多維度的準(zhǔn)實(shí)時(shí)報(bào)表秀鞭,包括客戶端、渠道蒲凶、版本气筋、API等維度拆内,獲取API調(diào)用的總量旋圆、平均響應(yīng)時(shí)間、錯(cuò)誤率等信息麸恍,并可以查看不同的錯(cuò)誤信息出現(xiàn)的次數(shù)灵巧。
在線監(jiān)控:支持API級(jí)別監(jiān)控搀矫。
測(cè)試
獨(dú)客App調(diào)用任意Mtop接口,抓包查看請(qǐng)求參數(shù)x-appkey刻肄、x-app-ver瓤球,確認(rèn)與當(dāng)前app key,app版本一致敏弃。
2. ACCS
簡(jiǎn)介
ACCS提供全雙工卦羡、低延時(shí)、高安全的通道服務(wù)麦到,同時(shí)具備實(shí)時(shí)推送消息能力绿饵。目前主要使用場(chǎng)景是推送、消息同步瓶颠、IM等拟赊。
測(cè)試
由于ACCS主要用于agoo消息推送,ACCS的測(cè)試其實(shí)可以和后續(xù)的消息測(cè)試合并粹淋,能通過Agoo順利發(fā)送消息吸祟,那么ACCS也就通了。
三桃移、 存儲(chǔ)
1. 統(tǒng)一存儲(chǔ)
簡(jiǎn)介
統(tǒng)一存儲(chǔ)框架作為手淘的統(tǒng)一存儲(chǔ)框架經(jīng)歷過長(zhǎng)時(shí)間的考驗(yàn)屋匕,作為腳手架App默認(rèn)接入。提供關(guān)系型存儲(chǔ)借杰、KV存儲(chǔ)炒瘟,上層的業(yè)務(wù)有圖片庫(kù)、啟動(dòng)閃屏第步、MTOP等疮装。
測(cè)試
統(tǒng)一存儲(chǔ)作為底層通用的能力,可以在上層使用的業(yè)務(wù)場(chǎng)景下測(cè)試粘都。圖片庫(kù)廓推、閃屏業(yè)務(wù)場(chǎng)景測(cè)試時(shí)就可以覆蓋,不建議單獨(dú)測(cè)試翩隧。
四樊展、 安全
1. 無線保鏢
簡(jiǎn)介
無線保鏢是安全部門推出的移動(dòng)端應(yīng)用完整性、應(yīng)用運(yùn)行環(huán)境可行性堆生,數(shù)據(jù)安全保障的SDK解決方案专缠。
測(cè)試
通過App集成檢測(cè),查看App無線保鏢接入是否正確
獨(dú)客App調(diào)用任意Mtop接口,查看是否能正確獲得返回結(jié)果
五淑仆、 高可用
1. CashReport & 安全模式
簡(jiǎn)介
手淘架構(gòu)組在移動(dòng)高可用上做了很多文章涝婉,這里主要簡(jiǎn)介crashReport和安全模式。crashReport在App觸發(fā)Crash蔗怠、ANR墩弯、OOM時(shí)會(huì)自動(dòng)上報(bào)相關(guān)日志信息吩跋,提供豐富的數(shù)據(jù)供特種分析、調(diào)用追蹤渔工、現(xiàn)場(chǎng)還原等锌钮;安全模式,針對(duì)低級(jí)bug導(dǎo)致的crash會(huì)自動(dòng)進(jìn)行捕獲引矩,以一種優(yōu)雅的方式(返回crash前的頁(yè)面或者App首頁(yè))攔截crash梁丘,防止客戶端頻繁崩潰,并提供短時(shí)間內(nèi)客戶端頻繁觸發(fā)crash后的自修復(fù)功能旺韭。
測(cè)試
crash日志兰吟,獨(dú)客App debug模塊下編寫會(huì)觸發(fā)crash,比如NPE的入口茂翔。觸發(fā)后在EMAS,平臺(tái)上搜索對(duì)應(yīng)App的crash日志混蔼,查看crash Report是否正確上報(bào)
安全模式,30秒內(nèi)連續(xù)觸發(fā)3次crash珊燎,會(huì)進(jìn)入二級(jí)安全模式惭嚣,出現(xiàn)安全保護(hù)頁(yè)面,提醒App是否需要恢復(fù)默認(rèn)設(shè)置悔政。頁(yè)面默認(rèn)是手淘樣式晚吞,獨(dú)客App需自定義定制。
六谋国、 運(yùn)維
1. 日志(Tlog)
簡(jiǎn)介
TLog是一個(gè)分布式實(shí)時(shí)數(shù)據(jù)處理平臺(tái)槽地,移動(dòng)端日志上報(bào)解決方案。
測(cè)試
Tlog作為底層日志框架芦瘾,支撐了很多上層業(yè)務(wù)捌蚊,Mtop、消息近弟、App啟動(dòng)等場(chǎng)景都會(huì)使用到Tlog缅糟,無需額外編寫測(cè)試方法。啟動(dòng)App后祷愉,可以在EMAS日志中拉取查看Tlog日志
2. 監(jiān)控
Crash(EMAS 魔兔)
簡(jiǎn)介
應(yīng)用Crash時(shí)需要記錄Crash的原因等詳細(xì)信息窗宦,crashReport在App觸發(fā)Crash、ANR二鳄、OOM時(shí)會(huì)自動(dòng)上報(bào)EMAS 魔兔平臺(tái)赴涵。
測(cè)試
獨(dú)客App debug模塊下編寫觸發(fā)crash的入口,觸發(fā)后在EMAS,平臺(tái)上搜索對(duì)應(yīng)App的crash日志订讼,確認(rèn)Crash信息是否正確(時(shí)間髓窜、機(jī)型、系統(tǒng)躯嫉、堆棧信息等)纱烘。