[toc]
移動(dòng)端測(cè)試相較其他端測(cè)試的區(qū)別
移動(dòng)端測(cè)試的定義
廣義上,對(duì)業(yè)務(wù)載體為移動(dòng)客戶端的各類型測(cè)試,都可以叫做移動(dòng)端測(cè)試;狹義上,移動(dòng)端測(cè)試主要指對(duì)移動(dòng)端應(yīng)用本身的測(cè)試,主要衡量應(yīng)用本身滿足需求的程序。
移動(dòng)端特性
從測(cè)試思想而言,移動(dòng)端測(cè)試和其他端測(cè)試具備一致性;差異點(diǎn)主要在于,移動(dòng)端應(yīng)用本身的一些場(chǎng)景、特性是獨(dú)有的,需在在測(cè)試方案層面加以考慮,下面列舉一些常見(jiàn)的移動(dòng)端測(cè)試時(shí)需考慮的特性:
隨時(shí)中斷
移動(dòng)端的使用場(chǎng)景大部分是高頻次、碎片化的,因此,大部分的移動(dòng)應(yīng)用都會(huì)隨時(shí)面臨中斷的問(wèn)題;包括不限于前后臺(tái)切換、通訊打斷、系統(tǒng)意外、升級(jí)安裝等等
網(wǎng)絡(luò)狀況不確定
由于通訊技術(shù)的不斷升級(jí)和網(wǎng)絡(luò)運(yùn)營(yíng)商的多樣性,移動(dòng)端的網(wǎng)絡(luò)類型從各家的2、3、4、5G網(wǎng)絡(luò),到隨處可見(jiàn)的wifi熱點(diǎn)都存在可能性;且由于移動(dòng)場(chǎng)景的特殊性,并不能總是保證網(wǎng)絡(luò)是暢通無(wú)阻的。
設(shè)備、系統(tǒng)版本繁多
目前移動(dòng)端主要分為兩大系統(tǒng)陣營(yíng),Android和iOS,無(wú)論是哪方,基本都存在著版本眾多的問(wèn)題;而具體到Android,更是存在各家廠商均對(duì)Android源碼存在一定的修改,導(dǎo)致應(yīng)用在各家Rom上可能存在不一致的表現(xiàn)。
權(quán)限不受控
移動(dòng)端應(yīng)用的權(quán)限是由移動(dòng)操作系統(tǒng)總管的,且部分權(quán)限的開(kāi)啟權(quán)利掌握在用戶手里,用戶可以隨時(shí)將應(yīng)用的某個(gè)權(quán)限回收;因此,對(duì)移動(dòng)端應(yīng)用而言,應(yīng)用權(quán)限是不能自控的,需要特別注意做好兜底措施。
硬件資源不可擴(kuò)展
不同于服務(wù)端資源基本可以通過(guò)動(dòng)態(tài)橫向擴(kuò)展來(lái)達(dá)到滿足業(yè)務(wù)部分峰值場(chǎng)景的需求;移動(dòng)端的硬件資源,包括Cpu、內(nèi)存、存儲(chǔ)(少部分可以擴(kuò)展)等,均不具備擴(kuò)展性;而移動(dòng)設(shè)備的多樣性導(dǎo)致了硬件資源也天差地別,因此需要特別注意應(yīng)用在不同硬件上的資源占用表現(xiàn)。
移動(dòng)端常見(jiàn)測(cè)試類型
通用的測(cè)試場(chǎng)景結(jié)合以上移動(dòng)端特性,衍生出相對(duì)應(yīng)的測(cè)試方案,并逐漸收斂成一類的測(cè)試類型;下圖列舉了移動(dòng)端常見(jiàn)的測(cè)試類型,后面會(huì)更加具體的介紹每個(gè)測(cè)試類型。

前言
在移動(dòng)端測(cè)試發(fā)展的歷史中,誕生了很多知名好用的工具,他們?cè)诟鞣N測(cè)試類型下均發(fā)揮了不可或缺的作用;基于本課程的受眾(初級(jí)測(cè)試)和整體篇幅,將直接介紹各重點(diǎn)測(cè)試類型下經(jīng)過(guò)公司內(nèi)部實(shí)戰(zhàn)應(yīng)用的工具,并將篇幅重點(diǎn)著眼于工具能發(fā)揮的作用上進(jìn)行說(shuō)明;
希望通過(guò)本課程的科普,給初學(xué)者接觸移動(dòng)端測(cè)試時(shí),提供一個(gè)初步的視野范圍,在面對(duì)移動(dòng)端的各種測(cè)試類型時(shí),工具選用上有所參考。
移動(dòng)端測(cè)試工具介紹
自動(dòng)化測(cè)試工具
移動(dòng)端自動(dòng)化測(cè)試介紹
廣義上,自動(dòng)化測(cè)試一般是指,將人為驅(qū)動(dòng)的測(cè)試行為,轉(zhuǎn)變?yōu)闄C(jī)器或程序驅(qū)動(dòng)的測(cè)試行為;在移動(dòng)端自動(dòng)化上,一般代指移動(dòng)端UI自動(dòng)化;描述將人工進(jìn)行的UI操作行為,通過(guò)自動(dòng)化case進(jìn)行實(shí)現(xiàn)。
測(cè)試工具推薦:Airtest
Airest
Airtest是由網(wǎng)易游戲推出的UI自動(dòng)化測(cè)試解決方案,是一個(gè)跨平臺(tái)的、 基于圖像識(shí)別 的UI自動(dòng)化測(cè)試框架,適用于游戲和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)插件功能,能夠使用它快速簡(jiǎn)單地編寫 Airtest 和 Poco 代碼。
通過(guò)使用Airtest,你可以做到:
- 對(duì)android、ios、pc、web的端應(yīng)用進(jìn)行相關(guān)自動(dòng)化腳本編寫
- 對(duì)主流引擎開(kāi)發(fā)的大部分游戲應(yīng)用進(jìn)行相關(guān)自動(dòng)化腳本編寫
- 結(jié)合技術(shù)中心基于airtest封裝的自動(dòng)化測(cè)試框架,獲得諸如多設(shè)備、多賬戶的并行運(yùn)行能力;同時(shí)集成了用例管理和測(cè)試報(bào)告、自動(dòng)郵件通知等功能
- 結(jié)合公司云測(cè)平臺(tái),將你的自動(dòng)化腳本使用云端機(jī)器執(zhí)行
移動(dòng)端穩(wěn)定性測(cè)試工具
移動(dòng)端穩(wěn)定性測(cè)試介紹
廣義上,穩(wěn)定性是指對(duì)被測(cè)對(duì)象進(jìn)行長(zhǎng)時(shí)間、大量負(fù)載的行為,觀察測(cè)試對(duì)象是否存在意料之外的問(wèn)題;在移動(dòng)端而言,穩(wěn)定性主要分為兩個(gè)負(fù)載方向:對(duì)應(yīng)用施加大負(fù)載的UI操作,觀察應(yīng)用是否存在問(wèn)題;以及對(duì)載體設(shè)備施加大負(fù)載的資源操作,觀察應(yīng)用的應(yīng)對(duì)是否合理。
導(dǎo)致APP閃退的因素主要有以下幾類:
- 內(nèi)存管理錯(cuò)誤:可用內(nèi)存過(guò)低導(dǎo)致無(wú)法申請(qǐng)到所需內(nèi)存或內(nèi)存泄漏導(dǎo)致應(yīng)用用盡全部?jī)?nèi)存
- 程序邏輯錯(cuò)誤:數(shù)組越界、堆棧溢出、并發(fā)錯(cuò)誤或其他邏輯問(wèn)題
- 設(shè)備兼容:設(shè)備、系統(tǒng)版本等不同導(dǎo)致原本正常的方法不存在或調(diào)用錯(cuò)誤等
- 網(wǎng)絡(luò):網(wǎng)速過(guò)慢導(dǎo)致響應(yīng)超出應(yīng)用處理時(shí)間等
測(cè)試工具推薦:Android一鍵體檢工具、Fastbot、Stress
Android一鍵體檢工具(IMonkey)
Android一鍵體檢工具(IMonkey)是公司自研的一款基于控件的、自動(dòng)化的遍歷工具,采用有序遍歷+隨機(jī)控件+隨機(jī)場(chǎng)景的策略;在有效的控件點(diǎn)擊滑動(dòng)輸入事件上,增加了異常場(chǎng)景的隨時(shí)接入,如第三方應(yīng)用的突然拉起導(dǎo)致應(yīng)用被切換到后臺(tái),屏幕任意方向旋轉(zhuǎn)、應(yīng)用自身的權(quán)限管控等;支持Android5.0+的系統(tǒng)上運(yùn)行,支持Android原生控件以及H5頁(yè)面點(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í)采集,可以在問(wèn)題發(fā)生時(shí)更好的追溯現(xiàn)場(chǎng)。
使用移動(dòng)應(yīng)用一鍵體檢工具(IMonkey)你可以做到:
- 相較于Android端傳統(tǒng)UI穩(wěn)定性測(cè)試工具M(jìn)onkey,更高的頁(yè)面覆蓋率、更全的功能集成度(自動(dòng)性能收集、報(bào)告展示);可完全代替Monkey使用
- 低人力成本的對(duì)被測(cè)Android應(yīng)用進(jìn)行長(zhǎng)時(shí)間、自動(dòng)化的遍歷操作;并且支持原生和混合應(yīng)用兩大類應(yīng)用
iOS的Monkey:Fastbot
iOS系統(tǒng)上目前沒(méi)有官方的類似Monkey的穩(wěn)定性測(cè)試工具,而市面上絕大部分方案均不同程度的對(duì)項(xiàng)目源碼存在侵入式操作;Fastbot是實(shí)踐下來(lái)門檻相對(duì)最低,版本兼容性最好的一個(gè)。
Fastbot 是字節(jié)出品的一個(gè)基于模型的測(cè)試工具,用于施加隨機(jī)的UI操作負(fù)載以發(fā)現(xiàn)應(yīng)用程序穩(wěn)定性問(wèn)題;它結(jié)合了機(jī)器學(xué)習(xí)和強(qiáng)化學(xué)習(xí)技術(shù),以更智能的方式幫助發(fā)現(xiàn)問(wèn)題。
使用Fastbot,你可以做到:
- 對(duì)iOS應(yīng)用進(jìn)行類似Monkey工具的UI穩(wěn)定性測(cè)試
Android設(shè)備負(fù)載生成器:Stress
無(wú)論是一鍵體檢還是Fastbot,都是通過(guò)不間斷施加UI操作提供負(fù)載,而不是對(duì)設(shè)備本身進(jìn)行負(fù)載輸出;Stress是一款可以對(duì)設(shè)備本身進(jìn)行負(fù)載輸出的工具,通過(guò)對(duì)設(shè)備本身進(jìn)行高強(qiáng)度、長(zhǎng)時(shí)間的負(fù)載,觀察被測(cè)應(yīng)用是否會(huì)存在問(wèn)題。
使用Stress,你可以做到:
- 對(duì)Android/linux設(shè)備進(jìn)行Cpu、內(nèi)存、IO等長(zhǎng)時(shí)間高負(fù)載測(cè)試
- 模擬高資源占用下的異常場(chǎng)景,如內(nèi)存被占滿、Cpu滿負(fù)載等
移動(dòng)端性能監(jiān)控工具
移動(dòng)端性能測(cè)試介紹
和服務(wù)端性能測(cè)試不同,相較于服務(wù)端性能測(cè)試對(duì)全鏈路上各組件的負(fù)載關(guān)注,移動(dòng)端的性能測(cè)試更加偏重對(duì)應(yīng)用本身對(duì)設(shè)備的資源消耗表現(xiàn);并且,基于移動(dòng)端的設(shè)備特點(diǎn),還需要額外關(guān)注諸如耗電量、流量等專項(xiàng)指標(biāo)。
測(cè)試工具推薦: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壓測(cè)等輔助功能;并且工具支持CPU線程數(shù)據(jù)實(shí)時(shí)監(jiān)控,開(kāi)創(chuàng)性的加入了性能繪圖和對(duì)象日志關(guān)聯(lián)方案,輔助測(cè)試、研發(fā)快速定位性能問(wèn)題。
使用Android/Linux性能分析工具,你可以做到:
- 在pc端對(duì)移動(dòng)端性能測(cè)試流程中的設(shè)備和應(yīng)用的資源使用情況進(jìn)行監(jiān)控和記錄
- 通過(guò)實(shí)時(shí)圖表排查應(yīng)用使用流程中的性能瓶頸點(diǎn)
- 通過(guò)性能數(shù)據(jù)和關(guān)聯(lián)的設(shè)備日志,進(jìn)行性能問(wè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)控;支持通過(guò)Mac和Windows設(shè)備進(jìn)行使用。
使用iOS Perf,你可以做到:
- 對(duì)iOS設(shè)備上的應(yīng)用進(jìn)行多項(xiàng)指標(biāo)監(jiān)控,如Cpu、內(nèi)存、Fps、流量情況等
- 通過(guò)Grafana儀表盤進(jìn)行實(shí)時(shí)顯示設(shè)備的性能情況
移動(dòng)端兼容性測(cè)試工具
移動(dòng)端兼容性測(cè)試介紹
兼容性測(cè)試是指測(cè)試軟件在特定的硬件平臺(tái)上、不同的應(yīng)用軟件之間、不同的操作系統(tǒng)平臺(tái)上、不同的網(wǎng)絡(luò)等環(huán)境中是否能夠很友好的運(yùn)行的測(cè)試;對(duì)移動(dòng)端而言,較難的地方是如何節(jié)約兼容性測(cè)試中大量設(shè)備帶來(lái)的人力成本問(wèn)題和如何找到合適的兼容性測(cè)試設(shè)備使用。
測(cè)試工具推薦:Android一機(jī)多控工具IflyMultiControl、訊飛云測(cè)平臺(tái)
Android一機(jī)多控工具IflyMultiControl
一款用于Android平臺(tái)兼容性測(cè)試的工具;操作一臺(tái)設(shè)備,同步動(dòng)作到其他設(shè)備;達(dá)到一次兼容性測(cè)試,搞定多部設(shè)備;
支持點(diǎn)擊、滑動(dòng)、手寫(連續(xù)滑動(dòng))、長(zhǎng)按、拖拽應(yīng)用安裝;支持返回、主頁(yè)(Home)、菜單、電源等模擬事件;一拖4點(diǎn)擊事件同步的響應(yīng)時(shí)間<1s;一拖15響應(yīng)時(shí)間<1.5s;Android設(shè)備屏幕同步到PC的響應(yīng)時(shí)間<100ms。
使用IflyMultiControl,你可以做到:
- 通過(guò)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)目功能演示
訊飛云測(cè)平臺(tái)
公司內(nèi)部的一款遠(yuǎn)程真機(jī)平臺(tái),可通過(guò)該平臺(tái)預(yù)約遠(yuǎn)程設(shè)備,同時(shí)在不同的遠(yuǎn)程設(shè)備上使用自動(dòng)化遍歷功能或自定義的UI自動(dòng)化腳本來(lái)進(jìn)行兼容性測(cè)試。
使用訊飛云測(cè)平臺(tái),你可以做到:
- 通過(guò)遠(yuǎn)程設(shè)備預(yù)約使用功能,復(fù)現(xiàn)排查線下沒(méi)有的特定機(jī)型的兼容性問(wèn)題
- 通過(guò)遠(yuǎn)程真機(jī)自動(dòng)化遍歷功能,同時(shí)對(duì)多臺(tái)云真機(jī)安裝指定應(yīng)用,并進(jìn)行自動(dòng)化遍歷,根據(jù)測(cè)試報(bào)告排查是否存在設(shè)備兼容性問(wèn)題