[toc]
移動(dòng)端測試相較其他端測試的區(qū)別
移動(dòng)端測試的定義
廣義上德绿,對(duì)業(yè)務(wù)載體為移動(dòng)客戶端的各類型測試,都可以叫做移動(dòng)端測試;狹義上占锯,移動(dòng)端測試主要指對(duì)移動(dòng)端應(yīng)用本身的測試袒哥,主要衡量應(yīng)用本身滿足需求的程序。
移動(dòng)端特性
從測試思想而言消略,移動(dòng)端測試和其他端測試具備一致性堡称;差異點(diǎn)主要在于,移動(dòng)端應(yīng)用本身的一些場景艺演、特性是獨(dú)有的却紧,需在在測試方案層面加以考慮,下面列舉一些常見的移動(dòng)端測試時(shí)需考慮的特性:
隨時(shí)中斷
移動(dòng)端的使用場景大部分是高頻次胎撤、碎片化的晓殊,因此,大部分的移動(dòng)應(yīng)用都會(huì)隨時(shí)面臨中斷的問題伤提;包括不限于前后臺(tái)切換巫俺、通訊打斷、系統(tǒng)意外肿男、升級(jí)安裝等等
網(wǎng)絡(luò)狀況不確定
由于通訊技術(shù)的不斷升級(jí)和網(wǎng)絡(luò)運(yùn)營商的多樣性介汹,移動(dòng)端的網(wǎng)絡(luò)類型從各家的2、3次伶、4痴昧、5G網(wǎng)絡(luò),到隨處可見的wifi熱點(diǎn)都存在可能性冠王;且由于移動(dòng)場景的特殊性赶撰,并不能總是保證網(wǎng)絡(luò)是暢通無阻的。
設(shè)備柱彻、系統(tǒng)版本繁多
目前移動(dòng)端主要分為兩大系統(tǒng)陣營豪娜,Android和iOS,無論是哪方哟楷,基本都存在著版本眾多的問題瘤载;而具體到Android,更是存在各家廠商均對(duì)Android源碼存在一定的修改卖擅,導(dǎo)致應(yīng)用在各家Rom上可能存在不一致的表現(xiàn)鸣奔。
權(quán)限不受控
移動(dòng)端應(yīng)用的權(quán)限是由移動(dòng)操作系統(tǒng)總管的,且部分權(quán)限的開啟權(quán)利掌握在用戶手里惩阶,用戶可以隨時(shí)將應(yīng)用的某個(gè)權(quán)限回收挎狸;因此,對(duì)移動(dòng)端應(yīng)用而言断楷,應(yīng)用權(quán)限是不能自控的锨匆,需要特別注意做好兜底措施。
硬件資源不可擴(kuò)展
不同于服務(wù)端資源基本可以通過動(dòng)態(tài)橫向擴(kuò)展來達(dá)到滿足業(yè)務(wù)部分峰值場景的需求冬筒;移動(dòng)端的硬件資源恐锣,包括Cpu茅主、內(nèi)存、存儲(chǔ)(少部分可以擴(kuò)展)等土榴,均不具備擴(kuò)展性诀姚;而移動(dòng)設(shè)備的多樣性導(dǎo)致了硬件資源也天差地別,因此需要特別注意應(yīng)用在不同硬件上的資源占用表現(xiàn)鞭衩。
移動(dòng)端常見測試類型
通用的測試場景結(jié)合以上移動(dòng)端特性学搜,衍生出相對(duì)應(yīng)的測試方案,并逐漸收斂成一類的測試類型论衍;下圖列舉了移動(dòng)端常見的測試類型,后面會(huì)更加具體的介紹每個(gè)測試類型聚磺。
前言
在移動(dòng)端測試發(fā)展的歷史中坯台,誕生了很多知名好用的工具,他們?cè)诟鞣N測試類型下均發(fā)揮了不可或缺的作用瘫寝;基于本課程的受眾(初級(jí)測試)和整體篇幅蜒蕾,將直接介紹各重點(diǎn)測試類型下經(jīng)過公司內(nèi)部實(shí)戰(zhàn)應(yīng)用的工具,并將篇幅重點(diǎn)著眼于工具能發(fā)揮的作用上進(jìn)行說明焕阿;
希望通過本課程的科普咪啡,給初學(xué)者接觸移動(dòng)端測試時(shí),提供一個(gè)初步的視野范圍暮屡,在面對(duì)移動(dòng)端的各種測試類型時(shí)撤摸,工具選用上有所參考。
移動(dòng)端測試工具介紹
自動(dòng)化測試工具
移動(dòng)端自動(dòng)化測試介紹
廣義上褒纲,自動(dòng)化測試一般是指准夷,將人為驅(qū)動(dòng)的測試行為,轉(zhuǎn)變?yōu)闄C(jī)器或程序驅(qū)動(dòng)的測試行為莺掠;在移動(dòng)端自動(dòng)化上衫嵌,一般代指移動(dòng)端UI自動(dòng)化;描述將人工進(jìn)行的UI操作行為彻秆,通過自動(dòng)化case進(jìn)行實(shí)現(xiàn)楔绞。
測試工具推薦:Airtest
Airest
Airtest是由網(wǎng)易游戲推出的UI自動(dòng)化測試解決方案,是一個(gè)跨平臺(tái)的唇兑、 基于圖像識(shí)別 的UI自動(dòng)化測試框架酒朵,適用于游戲和App,支持平臺(tái)有Windows幔亥、Android和iOS耻讽,Web。并且提供了基于UI控件識(shí)別的Poco框架帕棉,目前也支持Android原生针肥、iOS原生饼记、Unity3D、cocos2dx慰枕、UE4和Egret等平臺(tái)具则。
提供了AirtestIDE工具,內(nèi)置了Airtest和Poco的相關(guān)插件功能具帮,能夠使用它快速簡單地編寫 Airtest 和 Poco 代碼博肋。
通過使用Airtest,你可以做到:
- 對(duì)android蜂厅、ios匪凡、pc、web的端應(yīng)用進(jìn)行相關(guān)自動(dòng)化腳本編寫
- 對(duì)主流引擎開發(fā)的大部分游戲應(yīng)用進(jìn)行相關(guān)自動(dòng)化腳本編寫
- 結(jié)合技術(shù)中心基于airtest封裝的自動(dòng)化測試框架掘猿,獲得諸如多設(shè)備病游、多賬戶的并行運(yùn)行能力;同時(shí)集成了用例管理和測試報(bào)告稠通、自動(dòng)郵件通知等功能
- 結(jié)合公司云測平臺(tái)衬衬,將你的自動(dòng)化腳本使用云端機(jī)器執(zhí)行
移動(dòng)端穩(wěn)定性測試工具
移動(dòng)端穩(wěn)定性測試介紹
廣義上,穩(wěn)定性是指對(duì)被測對(duì)象進(jìn)行長時(shí)間改橘、大量負(fù)載的行為滋尉,觀察測試對(duì)象是否存在意料之外的問題;在移動(dòng)端而言飞主,穩(wěn)定性主要分為兩個(gè)負(fù)載方向:對(duì)應(yīng)用施加大負(fù)載的UI操作狮惜,觀察應(yīng)用是否存在問題;以及對(duì)載體設(shè)備施加大負(fù)載的資源操作既棺,觀察應(yīng)用的應(yīng)對(duì)是否合理讽挟。
導(dǎo)致APP閃退的因素主要有以下幾類:
- 內(nèi)存管理錯(cuò)誤:可用內(nèi)存過低導(dǎo)致無法申請(qǐng)到所需內(nèi)存或內(nèi)存泄漏導(dǎo)致應(yīng)用用盡全部內(nèi)存
- 程序邏輯錯(cuò)誤:數(shù)組越界、堆棧溢出丸冕、并發(fā)錯(cuò)誤或其他邏輯問題
- 設(shè)備兼容:設(shè)備耽梅、系統(tǒng)版本等不同導(dǎo)致原本正常的方法不存在或調(diào)用錯(cuò)誤等
- 網(wǎng)絡(luò):網(wǎng)速過慢導(dǎo)致響應(yīng)超出應(yīng)用處理時(shí)間等
測試工具推薦:Android一鍵體檢工具、Fastbot胖烛、Stress
Android一鍵體檢工具(IMonkey)
Android一鍵體檢工具(IMonkey)是公司自研的一款基于控件的眼姐、自動(dòng)化的遍歷工具,采用有序遍歷+隨機(jī)控件+隨機(jī)場景的策略佩番;在有效的控件點(diǎn)擊滑動(dòng)輸入事件上众旗,增加了異常場景的隨時(shí)接入,如第三方應(yīng)用的突然拉起導(dǎo)致應(yīng)用被切換到后臺(tái)趟畏,屏幕任意方向旋轉(zhuǎn)贡歧、應(yīng)用自身的權(quán)限管控等;支持Android5.0+的系統(tǒng)上運(yùn)行,支持Android原生控件以及H5頁面點(diǎn)擊利朵、輸入等律想,支持自動(dòng)登陸等特定步驟運(yùn)行,支持屏蔽activity绍弟、支持屏蔽任意控件或區(qū)域點(diǎn)擊技即,實(shí)時(shí)監(jiān)控應(yīng)用的crash情況,包括java層樟遣、native層以及系統(tǒng)層的異常而叼,支持性能實(shí)時(shí)采集、activity啟動(dòng)耗時(shí)采集豹悬,可以在問題發(fā)生時(shí)更好的追溯現(xiàn)場葵陵。
使用移動(dòng)應(yīng)用一鍵體檢工具(IMonkey)你可以做到:
- 相較于Android端傳統(tǒng)UI穩(wěn)定性測試工具M(jìn)onkey,更高的頁面覆蓋率屿衅、更全的功能集成度(自動(dòng)性能收集埃难、報(bào)告展示);可完全代替Monkey使用
- 低人力成本的對(duì)被測Android應(yīng)用進(jìn)行長時(shí)間涤久、自動(dòng)化的遍歷操作;并且支持原生和混合應(yīng)用兩大類應(yīng)用
iOS的Monkey:Fastbot
iOS系統(tǒng)上目前沒有官方的類似Monkey的穩(wěn)定性測試工具忍弛,而市面上絕大部分方案均不同程度的對(duì)項(xiàng)目源碼存在侵入式操作响迂;Fastbot是實(shí)踐下來門檻相對(duì)最低,版本兼容性最好的一個(gè)细疚。
Fastbot 是字節(jié)出品的一個(gè)基于模型的測試工具蔗彤,用于施加隨機(jī)的UI操作負(fù)載以發(fā)現(xiàn)應(yīng)用程序穩(wěn)定性問題;它結(jié)合了機(jī)器學(xué)習(xí)和強(qiáng)化學(xué)習(xí)技術(shù)疯兼,以更智能的方式幫助發(fā)現(xiàn)問題然遏。
使用Fastbot,你可以做到:
- 對(duì)iOS應(yīng)用進(jìn)行類似Monkey工具的UI穩(wěn)定性測試
Android設(shè)備負(fù)載生成器:Stress
無論是一鍵體檢還是Fastbot吧彪,都是通過不間斷施加UI操作提供負(fù)載待侵,而不是對(duì)設(shè)備本身進(jìn)行負(fù)載輸出;Stress是一款可以對(duì)設(shè)備本身進(jìn)行負(fù)載輸出的工具姨裸,通過對(duì)設(shè)備本身進(jìn)行高強(qiáng)度秧倾、長時(shí)間的負(fù)載,觀察被測應(yīng)用是否會(huì)存在問題傀缩。
使用Stress那先,你可以做到:
- 對(duì)Android/linux設(shè)備進(jìn)行Cpu、內(nèi)存赡艰、IO等長時(shí)間高負(fù)載測試
- 模擬高資源占用下的異常場景售淡,如內(nèi)存被占滿、Cpu滿負(fù)載等
移動(dòng)端性能監(jiān)控工具
移動(dòng)端性能測試介紹
和服務(wù)端性能測試不同,相較于服務(wù)端性能測試對(duì)全鏈路上各組件的負(fù)載關(guān)注揖闸,移動(dòng)端的性能測試更加偏重對(duì)應(yīng)用本身對(duì)設(shè)備的資源消耗表現(xiàn)揍堕;并且,基于移動(dòng)端的設(shè)備特點(diǎn)楔壤,還需要額外關(guān)注諸如耗電量鹤啡、流量等專項(xiàng)指標(biāo)。
測試工具推薦:Android/Linux性能分析工具蹲嚣、iOS Perf
Android/Linux性能分析工具
性能分析工具是一款兼容多平臺(tái)(android,linux,qnx)的性能數(shù)據(jù)監(jiān)控工具递瑰;工具可以監(jiān)控對(duì)象進(jìn)程的CPU和內(nèi)存,并實(shí)時(shí)繪圖顯示在界面上隙畜;
支持一鍵導(dǎo)出數(shù)據(jù)抖部,生成報(bào)告,同時(shí)提供了內(nèi)存议惰,CPU慎颗,IO壓測等輔助功能;并且工具支持CPU線程數(shù)據(jù)實(shí)時(shí)監(jiān)控言询,開創(chuàng)性的加入了性能繪圖和對(duì)象日志關(guān)聯(lián)方案俯萎,輔助測試、研發(fā)快速定位性能問題运杭。
使用Android/Linux性能分析工具夫啊,你可以做到:
- 在pc端對(duì)移動(dòng)端性能測試流程中的設(shè)備和應(yīng)用的資源使用情況進(jìn)行監(jiān)控和記錄
- 通過實(shí)時(shí)圖表排查應(yīng)用使用流程中的性能瓶頸點(diǎn)
- 通過性能數(shù)據(jù)和關(guān)聯(lián)的設(shè)備日志,進(jìn)行性能問題點(diǎn)分析
iOS端的性能監(jiān)控工具:iOS Perf
iOS Perf是一款可以對(duì)iOS設(shè)備上應(yīng)用進(jìn)行性能數(shù)據(jù)監(jiān)控的工具辆憔,基于mysql撇眯、Grafana進(jìn)行數(shù)據(jù)持久化和展示,支持docker一鍵部署虱咧;支持指定應(yīng)用熊榛、多指標(biāo)監(jiān)控;支持通過Mac和Windows設(shè)備進(jìn)行使用腕巡。
使用iOS Perf玄坦,你可以做到:
- 對(duì)iOS設(shè)備上的應(yīng)用進(jìn)行多項(xiàng)指標(biāo)監(jiān)控,如Cpu逸雹、內(nèi)存营搅、Fps、流量情況等
- 通過Grafana儀表盤進(jìn)行實(shí)時(shí)顯示設(shè)備的性能情況
移動(dòng)端兼容性測試工具
移動(dòng)端兼容性測試介紹
兼容性測試是指測試軟件在特定的硬件平臺(tái)上梆砸、不同的應(yīng)用軟件之間转质、不同的操作系統(tǒng)平臺(tái)上、不同的網(wǎng)絡(luò)等環(huán)境中是否能夠很友好的運(yùn)行的測試帖世;對(duì)移動(dòng)端而言休蟹,較難的地方是如何節(jié)約兼容性測試中大量設(shè)備帶來的人力成本問題和如何找到合適的兼容性測試設(shè)備使用沸枯。
測試工具推薦:Android一機(jī)多控工具IflyMultiControl、訊飛云測平臺(tái)
Android一機(jī)多控工具IflyMultiControl
一款用于Android平臺(tái)兼容性測試的工具赂弓;操作一臺(tái)設(shè)備绑榴,同步動(dòng)作到其他設(shè)備;達(dá)到一次兼容性測試盈魁,搞定多部設(shè)備翔怎;
支持點(diǎn)擊、滑動(dòng)杨耙、手寫(連續(xù)滑動(dòng))赤套、長按、拖拽應(yīng)用安裝珊膜;支持返回容握、主頁(Home)、菜單车柠、電源等模擬事件剔氏;一拖4點(diǎn)擊事件同步的響應(yīng)時(shí)間<1s;一拖15響應(yīng)時(shí)間<1.5s竹祷;Android設(shè)備屏幕同步到PC的響應(yīng)時(shí)間<100ms谈跛。
使用IflyMultiControl,你可以做到:
- 通過PC客戶端鼠標(biāo)事件塑陵、Android設(shè)備控制主機(jī)币旧,設(shè)置群控后會(huì)同步主機(jī)動(dòng)作到多部從機(jī),達(dá)到操控一臺(tái)機(jī)器猿妈,控制多帶機(jī)器的目的
- 針對(duì)多部設(shè)備需要安裝相同應(yīng)用,只需設(shè)置主控巍虫,在主控上拖拽安裝彭则,批量安裝應(yīng)用
- 針對(duì)項(xiàng)目組、內(nèi)部客戶占遥、外部客戶演示App功能時(shí)俯抖,可使用實(shí)時(shí)投屏功能進(jìn)行項(xiàng)目功能演示
訊飛云測平臺(tái)
公司內(nèi)部的一款遠(yuǎn)程真機(jī)平臺(tái),可通過該平臺(tái)預(yù)約遠(yuǎn)程設(shè)備瓦胎,同時(shí)在不同的遠(yuǎn)程設(shè)備上使用自動(dòng)化遍歷功能或自定義的UI自動(dòng)化腳本來進(jìn)行兼容性測試芬萍。
使用訊飛云測平臺(tái),你可以做到:
- 通過遠(yuǎn)程設(shè)備預(yù)約使用功能搔啊,復(fù)現(xiàn)排查線下沒有的特定機(jī)型的兼容性問題
- 通過遠(yuǎn)程真機(jī)自動(dòng)化遍歷功能柬祠,同時(shí)對(duì)多臺(tái)云真機(jī)安裝指定應(yīng)用,并進(jìn)行自動(dòng)化遍歷负芋,根據(jù)測試報(bào)告排查是否存在設(shè)備兼容性問題