移動(dòng)端測試工具介紹

[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è)測試類型聚磺。

QQ截圖20220818104700.png

前言

在移動(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è)備兼容性問題
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末漫蛔,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌莽龟,老刑警劉巖蠕嫁,帶你破解...
    沈念sama閱讀 206,311評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異毯盈,居然都是意外死亡剃毒,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門搂赋,熙熙樓的掌柜王于貴愁眉苦臉地迎上來赘阀,“玉大人,你說我怎么就攤上這事厂镇∠吮冢” “怎么了?”我有些...
    開封第一講書人閱讀 152,671評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵捺信,是天一觀的道長酌媒。 經(jīng)常有香客問我,道長迄靠,這世上最難降的妖魔是什么秒咨? 我笑而不...
    開封第一講書人閱讀 55,252評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮掌挚,結(jié)果婚禮上雨席,老公的妹妹穿的比我還像新娘。我一直安慰自己吠式,他們只是感情好陡厘,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,253評(píng)論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著特占,像睡著了一般糙置。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上是目,一...
    開封第一講書人閱讀 49,031評(píng)論 1 285
  • 那天谤饭,我揣著相機(jī)與錄音,去河邊找鬼懊纳。 笑死揉抵,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的嗤疯。 我是一名探鬼主播冤今,決...
    沈念sama閱讀 38,340評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼身弊!你這毒婦竟也來了辟汰?” 一聲冷哼從身側(cè)響起列敲,我...
    開封第一講書人閱讀 36,973評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎帖汞,沒想到半個(gè)月后戴而,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,466評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡翩蘸,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,937評(píng)論 2 323
  • 正文 我和宋清朗相戀三年所意,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片催首。...
    茶點(diǎn)故事閱讀 38,039評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡扶踊,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出郎任,到底是詐尸還是另有隱情秧耗,我是刑警寧澤,帶...
    沈念sama閱讀 33,701評(píng)論 4 323
  • 正文 年R本政府宣布舶治,位于F島的核電站分井,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏霉猛。R本人自食惡果不足惜尺锚,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,254評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望惜浅。 院中可真熱鬧瘫辩,春花似錦、人聲如沸坛悉。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,259評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽裸影。三九已至弧械,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間空民,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評(píng)論 1 262
  • 我被黑心中介騙來泰國打工羞迷, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留界轩,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,497評(píng)論 2 354
  • 正文 我出身青樓衔瓮,卻偏偏與公主長得像浊猾,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子热鞍,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,786評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容