一沦疾、 手機測試概念
傳統(tǒng)手機測試 VS 手機應(yīng)用軟件測試
傳統(tǒng)手機測試:指測試手機本身比如抗壓,抗摔梁肿,抗疲勞,抗低溫高溫等徐许。也包括手機本身功能、性能等測試卒蘸。
手機應(yīng)用軟件測試 C/S Client/Server
手機應(yīng)用軟件是基于手機操作系統(tǒng)之上開發(fā)出來的軟件雌隅,做這樣的測試就叫做手機應(yīng)用軟件測試。
二、手機端常規(guī)測試
2.1.What
2.1.1.介紹手機測試的概念架構(gòu)
image.png
image.png
對于手機端測試恰起,按照平臺來分修械,分為Android和IOS兩大主流系統(tǒng)
Android開源導致碎片化比較嚴重,(手機品牌眾多检盼,系統(tǒng)版本各異祠肥,分辨率不統(tǒng)一,主流手機型號上千梯皿。無法保證應(yīng)用、游戲?qū)τ谒惺謾C的適配兼容县恕。)bug比較多东羹,而IOS通常bug會少一些。
Android手機長按home鍵忠烛,會呼出應(yīng)用列表和切換應(yīng)用属提,右滑擇會終止應(yīng)用。
還有分辨率測試美尸,Android手機分辨率有20多種冤议,IOS較少一些
再就是手機操作系統(tǒng),Android系統(tǒng)太多了师坎,IOS較少恕酸,但是升級之后不能夠降級,不過呢胯陋,發(fā)現(xiàn)了最近ios中boss直聘的一個bug蕊温,是有關(guān)于Boss直聘強更的一個bug,當我們點擊手機APP端 Boss直聘 進入主頁面彈出提示框“新增郵箱上傳附件簡歷功能” 彈窗中有立即升級的鏈接遏乔,點擊別的區(qū)域沒有反應(yīng)义矛;必須點擊“立即升級”才會跳轉(zhuǎn)到“App Store”若不升級,重新切換回Boss直聘界面盟萨,依舊提示“立即升級”全部退出依然如此凉翻。
按照目前技術(shù)架構(gòu)的話,現(xiàn)在有一些原生的app架構(gòu)捻激,類似于Client Server架構(gòu)制轰,也有基于Html5的app,類似于pc機的BS(Broswer server)架構(gòu)铺罢。手機測試和pc機類似艇挨,又有一些不同的地方。
當然除了手機韭赘,現(xiàn)在還有好多使用Android系統(tǒng)缩滨,比如酒店點餐的平板,銀行對公或者對個人業(yè)務(wù)的業(yè)務(wù)平臺,還有一些智能的穿戴設(shè)備脉漏,小米的手環(huán)苞冯,google 聯(lián)想的智能眼鏡,智能家居侧巨,電視盒子舅锄,這些都是在使用android系統(tǒng),我之前最早的時候司忱,就要測試過一個智能家居設(shè)備皇忿,測試的時候需要考慮藍牙,wifi連接傳輸這塊坦仍,也有好多要測試的內(nèi)容鳍烁。
2.2.How
1.1.2. 功能測試
對于手機app來說,和我們測試web項目差不太多繁扎,也是各種測試方式需要考慮進來幔荒,比如說邏輯功能測試,現(xiàn)在移動端越來越火爆梳玫,大家用的軟件也越來越多爹梁,對軟件也越來越挑剔,現(xiàn)在公司在開發(fā)移動端的時候提澎,肯定是有相應(yīng)的需求文檔和UI所設(shè)計的產(chǎn)品效果圖姚垃,我們做邏輯功能測試,就是根據(jù)這些資料盼忌,當然也根據(jù)我們正常人的邏輯思維進行邏輯功能測試莉炉,在做邏輯功能測試的時候,我們要測試主頁面碴犬,我的頁面絮宁,商城頁面這些功能是否合理。
1.1.3.安裝與卸載測試
軟件安裝后是否可以正常運行服协,安裝過程中是否可以取消,安裝空間不足時绍昂,是否有相應(yīng)提示,是否可以卸載應(yīng)用(可通過桌面卸載,也可以通過軟件卸載偿荷。曾發(fā)現(xiàn)在IOS手機上有個應(yīng)用安裝時未完全安裝窘游,終止安裝后,未完成安裝的應(yīng)用圖標一直顯示在手機上跳纳,并且無法成功刪除),卸載是否支持取消功能忍饰,單擊取消后軟件卸載功能是否正常,卸載后文件是否全部刪除所有的安裝文件夾,從不同的應(yīng)用市場下載進行安裝測試,比如測試小米市場寺庄,華為市場艾蓝,應(yīng)用寶力崇,安卓市場,安智市場的安裝測試赢织。
1.1.4. 軟件升級測試
當客戶端有新版本時亮靴,是否有更新提示,當版本為非強制升級版時于置,用戶可以取消更新茧吊,老版本能正常使用,用戶在下次啟動app時八毯,仍能出現(xiàn)更新提示搓侄;當版本為強制升級版時,當給出強制更新后用戶沒有做更新時话速,退出客戶端休讳,下次啟動app時,仍出現(xiàn)強制升級提示尿孔,當然現(xiàn)在強更已經(jīng)很少出現(xiàn)了。檢查更新后各個功能是否能正常使用筹麸;在線跨版本升級后能否正常使用活合,當然現(xiàn)在主流的安裝更新方式開始向熱更新熱部署方式轉(zhuǎn)變,就是在用戶不需要手動更新的情況下物赶,完成版本的靜默更新白指,這個技術(shù)是有難度的,需要看公司中程序員的技術(shù)能力還有就是是否有這樣的產(chǎn)品需求酵紫。
1.1.5. 登錄測試
對于登錄測試告嘲,基本上每一款app都有登錄注冊功能,所以在測試App的時候奖地,登錄測試是必不可少的一項橄唬。
我們做登錄測試的時候,往往包含這么些項:
登錄用戶名和密碼錯誤時参歹,界面有提示信息仰楚;
用戶主動退出登陸后,下次進入app時犬庇,應(yīng)該進入登陸界面僧界;
密碼更改后,登錄時是否做到了有效數(shù)據(jù)的校驗臭挽,對于未登錄狀態(tài)時捂襟,一些頁面的操作,是否做了控制欢峰;
切換賬號登錄葬荷,檢驗登錄的信息是否做到及時更新涨共,對于多個端(web、iso闯狱、android等)進行操作時煞赢,確保數(shù)據(jù)庫操作無誤,且每個端可以及時看到數(shù)據(jù)的更新,一個賬號只允許一臺機器登陸的軟件哄孤,需要賬號登錄多個手機時照筑,是否將原用戶踢下線,且能夠給出提示信息,用戶登錄狀態(tài)太久瘦陈,session會過期凝危,會出現(xiàn)“雖然是登錄狀態(tài),系統(tǒng)會提示用戶沒有登陸”
1.1.6.安全性測試 - 權(quán)限測試
對于手機權(quán)限晨逝,如果我們是剛開發(fā)不知名的app蛾默,權(quán)限這塊盡量少一些,這些權(quán)限在安裝的時候都必須用戶同意捉貌。在Android 6.0之后支鸡,權(quán)限需要動態(tài)的申請,我們測試的時候,需要測試在使用到這些權(quán)限的時候趁窃,程序員是否做邏輯判斷牧挣,用戶同意權(quán)限應(yīng)該怎么操作,不同意權(quán)限又應(yīng)該怎么操作醒陆。
1.1.7.消息推送測試
消息推送瀑构,是移動端的一大特色。我就說一下消息推送我們所做的這些方面吧刨摩,
未鎖屏時寺晌,應(yīng)用后臺運行,消息推送是否可正常接收澡刹,未鎖屏時呻征,APP客戶端使用過程中,可以收到消息提醒罢浇,且點擊可查看怕犁。
鎖屏時,手機消息欄是否可以接收到消息提醒己莺。且點擊可查看奏甫。點擊后消息欄中消失。
精準推送
當推送消息是針對登錄用戶的時候凌受,需要檢查收到的push與用戶身份是否相符阵子,沒有錯誤的將其他人的消息推送過來
push推送消息是是否能有針對性的推送,如相應(yīng)內(nèi)容推送給相應(yīng)用戶(精準推送)
退出登錄后胜蛉,是否接受push推送(根據(jù)需求來)
1.1.8.前后臺切換測試(鎖屏)
APP切換到后臺挠进,再回到APP色乾,檢查是否停留在上一次操作界面;檢查功能及應(yīng)用狀態(tài)是否正常领突;程序是否崩潰暖璧,功能狀態(tài)是否正常,尤其是對于從后臺切換回前臺數(shù)據(jù)有自動更新的時候
手機鎖屏解屏后進入app注意是否會崩潰君旦,功能狀態(tài)是否正常
當APP使用過程中有電話進來中斷后再切換到APP澎办,功能狀態(tài)是否正常
當關(guān)閉APP進程后,在開啟APP金砍,APP能否正常啟動
對于有數(shù)據(jù)交換的頁面局蚀,尤其是有視頻圖片之類的頁面,每個頁面都必須要進行前后臺切換恕稠、鎖屏的測試琅绅,這種頁面最容易出現(xiàn)崩潰
1.1.9.UI測試(界面測試)
確保產(chǎn)品UI符合產(chǎn)品經(jīng)理制定的原型圖與效果圖
一般涉及界面(如菜單、對話框鹅巍、窗口和其他可視控件)布局千扶、風格、文字是否正確骆捧,頁面是否美觀澎羞,操作是否友好。
如:安裝app后的加載頁顯示凑懂,分享頁面的產(chǎn)品logo顯示
1.1.10.兼容性測試
我再說一下兼容性測試吧,兼容性測試主要考慮手機的版本梧宫,型號接谨,分辨率,就像我說的塘匣,現(xiàn)在手機碎片化比較嚴重脓豪,各個版本,比如Android忌卤,從Android4.0到Android8.0的版本它是不一樣的扫夜,然后現(xiàn)在各大手機廠商像華為,三星驰徊,小米笤闯,錘子,魅族棍厂,vivo這些廠商都修改android源代碼颗味,也是給我們增加和好多工作量,好多時候開發(fā)的軟件在三星上沒問題牺弹,但是華為浦马,小米就不行时呀。還有手機分辨率,現(xiàn)在主流的可能是19201080晶默,但是還有好多其他分辨率谨娜,比如7201280,還有一些更大分辨率的手機磺陡,都要考慮這些分辨率的兼容趴梢,不然用戶視覺體驗就不好。
兼容測試仅政,公司中會買好多測試機來太讓我們進行測試垢油,一般是不同廠商的手機,當然還有第三方云測平臺圆丹,比如testin還有騰訊wetest滩愁,就可以做兼容性測試”璺猓可以一次性測試100臺測試機硝枉,同時會有相應(yīng)的兼容報告,bug報告倦微。
對于IOS妻味,ISO版本有7.1.2、8.3欣福、9.1等责球;能否適配各種屏幕尺寸。
1.1.11.網(wǎng)絡(luò)環(huán)境測試
測試2G拓劝、3G雏逾、4G、wifi郑临、有網(wǎng)栖博、無網(wǎng)、弱網(wǎng)情況下應(yīng)用的運行
網(wǎng)絡(luò)不好時厢洞,提交數(shù)據(jù)是否一直處理提交中仇让,是否會有延遲,數(shù)據(jù)交換失敗是否會有提醒
有網(wǎng)到無網(wǎng)再到有網(wǎng)環(huán)境時躺翻,數(shù)據(jù)是否可以自動恢復丧叽,正常加載
無網(wǎng)絡(luò)時,各種提示信息是否友好公你,數(shù)據(jù)本地化是否正確(比如提示當前已斷開網(wǎng)絡(luò)蠢正,請檢查網(wǎng)絡(luò)設(shè)置;還有從wifi環(huán)境切換到4G環(huán)境提示是否啟用4G網(wǎng)絡(luò)省店,會產(chǎn)生扣費嚣崭。
1.1.12.mokey測試 (monkey壓力測試 測試為1000-2000)
對于手機測試笨触,除了我們一些常規(guī)的功能測試,我們還會做壓力測試雹舀,比如對于Android手機芦劣,我會使用adb指令進行一些相應(yīng)的操作,比如通過adb查看設(shè)置说榆,進入設(shè)備虚吟,抓取log,我們測試的時候签财,會使用adb logcat所抓出來的log日志存到電腦串慰,發(fā)給開發(fā),方便他們快速解決bug唱蒸。
另外邦鲫,我還會使用monkey對app進行測試,可以使用monkey對app做壓力測試神汹,主要就是測試操作app的時候庆捺,程序是否會崩潰。
我們使用adb shell monkey 指定對應(yīng)的app屁魏,執(zhí)行要測試的次數(shù)滔以,指定要觸摸的比率,超時時間和忽略崩潰信息氓拼,就可以執(zhí)行測試你画,將測試log存到某個位置,然后把測試出的bug 日志發(fā)送給開發(fā)桃漾。300000
我就簡單的說一下測試的指令吧坏匪,比如我上邊所說的邏輯,我們用 adb shell mokey -p 指定要測試的包名 --ignore-crashs 忽略崩潰 --ignore-timeout 忽略超時 --throttle 38指定延遲時間毫秒 -s 指定測試種子 指定測試次數(shù)呈队,然后將文件 >輸出到磁盤中剥槐。
1.1.13.性能測試
對于性能測試唱歧,(eclipse和Android studio中本身有檢測cpu和內(nèi)存的工具宪摧,也有檢測手機內(nèi)存泄漏的工具)靠工具來測試手機cpu占用,內(nèi)存占用颅崩,電池溫度等几于,以及測試我們的app在后臺持續(xù)運行的流量消耗和電量消耗問題。
三沿后、Android介紹
Android是一種基于Linux的自由及開放源代碼的操作系統(tǒng)沿彭,主要使用于移動設(shè)備,如智能手機和平板電腦尖滚,由Google公司和開放手機聯(lián)盟領(lǐng)導及開發(fā)喉刘。尚未有統(tǒng)一中文名稱瞧柔,中國大陸地區(qū)較多人使用“安卓”或“安致”。
Android操作系統(tǒng)最初由Andy Rubin開發(fā)睦裳,主要支持手機造锅。2005年8月由Google收購注資。2007年11月廉邑,Google與84家硬件制造商哥蔚、軟件開發(fā)商及電信營運商組建開放手機聯(lián)盟共同研發(fā)改良Android系統(tǒng)。隨后Google以Apache開源許可證的授權(quán)方式蛛蒙,發(fā)布了Android的源代碼糙箍。第一部Android智能手機發(fā)布于2008年10月。Android逐漸擴展到平板電腦及其他領(lǐng)域上牵祟,如電視深夯、數(shù)碼相機、游戲機等课舍。2011年第一季度塌西,Android在全球的市場份額首次超過塞班系統(tǒng),躍居全球第一筝尾。 2013年的第四季度捡需,Android平臺手機的全球市場份額已經(jīng)達到78.1%。 [1] 2013年09月24日谷歌開發(fā)的操作系統(tǒng)Android在迎來了5歲生日筹淫,全世界采用這款系統(tǒng)的設(shè)備數(shù)量已經(jīng)達到10億臺站辉。
安卓版本:
Android在正式發(fā)行之前,最開始擁有兩個內(nèi)部測試版本损姜,并且以著名的機器人名稱來對其進行命名饰剥,它們分別是:阿童木(AndroidBeta),發(fā)條機器人(Android 1.0)摧阅。后來由于涉及到版權(quán)問題汰蓉,谷歌將其命名規(guī)則變更為用甜點作為它們系統(tǒng)版本的代號的命名方法。甜點命名法開始于Android 1.5發(fā)布的時候棒卷。
作為每個版本代表的甜點的尺寸越變越大顾孽,然后按照26個字母數(shù)序:紙杯蛋糕(Android 1.5),甜甜圈(Android 1.6)比规,松餅(Android 2.0/2.1)若厚,凍酸奶(Android 2.2),姜餅(Android 2.3)蜒什,蜂巢(Android 3.0)测秸,冰激凌三明治(Android 4.0),果凍豆(Jelly Bean,Android4.1和Android 4.2)霎冯,奇巧(KitKat铃拇,Android 4.4),棒棒糖(Lollipop沈撞,Android 5.0)锚贱,棉花糖(Marshmallow,Android 6.0)关串,牛軋?zhí)牵∟ougat拧廊,Android 7.0),奧利奧(Oreo晋修,Android 8.0)吧碾,餡餅(Pie,Android 9.0)墓卦,Q(未命名倦春,Android10.0),R(未命名落剪,Android11.0)
Android的系統(tǒng)架構(gòu)和其操作系統(tǒng)一樣睁本,采用了分層的架構(gòu)。
從架構(gòu)圖看忠怖,Android分為四個層呢堰,從高層到低層分別是應(yīng)用程序?qū)印?yīng)用程序框架層凡泣、系統(tǒng)運行庫層和Linux內(nèi)核層
image.png
3.1. Android SDK(Software Development Kit)的安裝和配置
Android SDK枉疼,即Android Software Development Kit,軟件開發(fā)工具包鞋拟。
它提供了在Windows/Linux/Mac平臺上開發(fā)Android應(yīng)用的開發(fā)組件骂维。包含了在Android平臺上開發(fā)移動應(yīng)用程序的各種工具集。
3.2.安裝java環(huán)境
image.png
3.3.啟動配置好SDK的Android版本eclipse Android Studio(類似Idea)
3.3.1. 檢查是否成功:
cmd → java -version
image.png
3.3.2. Android studio安裝
3.3.3. 創(chuàng)建虛擬機
image.png
Android App開發(fā)一般需要模擬器來測試程序的正確性
Android Virtual Device贺纲,就是Android運行的虛擬設(shè)備航闺,是Android的模擬器識別。建立的Android App要運行猴誊,必須創(chuàng)建AVD潦刃,每個AVD上可以配置很多的運行項目。
簡而言之:AVD即用于Android開發(fā)調(diào)試的模擬機稠肘。
AVD name:填寫的虛擬機名稱福铅,純英文和數(shù)字組成萝毛。
Device:設(shè)定模擬的設(shè)備项阴,一般選擇手機型號:3.2QVGA(ADP2)(320480: mdpi)。
Target:安裝Android的版本,目前4.0是主流环揽,即可選Android4.0.3 API 15略荡。
CPI/ABi:模擬的CPU型號,這里的ARM是手機的CPU型號歉胶。
Keyboard:務(wù)必勾選“Hardware keyboard present”汛兜。
Skin:務(wù)必勾選“Display a skin with hardware controls”。
Front camera/Back camera:是否模擬前置和后置攝像頭通今,裝有Cam的讀者可以考慮粥谬。
RAM:設(shè)置模擬器內(nèi)存,一般在512~1024M辫塌。 VM Heap:每一個應(yīng)用的最大內(nèi)存空間分配漏策,默認即可。
SD Card:選在size上,這個就是在默認目錄里自動建立一個模擬SD卡的文件,SD卡的大小隨意,也可以不填,不填代表不適用SD卡臼氨。
3.3.4. 啟動虛擬機
四掺喻、ADB
4.1.ADB介紹
ADB全稱Android Debug Bridge, 是android sdk里的一個工具, 用這個工具可以直接操作管理android模擬器或者真實的andriod設(shè)備(如G1手機)
它的主要功能有:
運行設(shè)備的shell(命令行)
管理模擬器或設(shè)備的端口映射
計算機和設(shè)備之間上傳/下載文件
將本地apk軟件安裝至模擬器或android設(shè)備
4.2.配置ADB環(huán)境變量
打開:adt-bundle-windows-x86_64_20140101文件
找到adb.exe所在路徑
配置ADB_HOME環(huán)境變量
image.png
參考java環(huán)境變量配置
image.png
顯示成功:
image.png
4.3.ADB常用指令
查看設(shè)備:adb devices
這個命令是查看當前連接的設(shè)備, 連接到計算機的android設(shè)備或者模擬器將會列出顯示
安裝軟件:adb install -r (APK路徑)
-r 代表如果apk已安裝,重新安裝apk并保留數(shù)據(jù)和緩存文件储矩。apk路徑則可以直接將apk文件拖進cmd窗口感耙,記得加空格。
卸載軟件
adb uninstall <軟件名>
adb uninstall -k <軟件名>
如果加 -k 參數(shù),為卸載軟件但是保留配置和緩存文件
問程序員–com.example.test
登錄設(shè)備shell
adb shell
adb shell <command命令>
image.png
這個命令將登錄設(shè)備的shell.
后面加<command命令>將是直接運行設(shè)備命令, 相當于執(zhí)行遠程命令
查看手機內(nèi)存情況
adb shell dumpsys cpuinfo
image.png
查看內(nèi)存情況
adb shell getprop | findstr dalvik 本機內(nèi)存的使用情況
image.png
查看應(yīng)用內(nèi)存使用情況
adb shell dumpsys meminfo +包名:應(yīng)用的內(nèi)存使用情況
image.png
列出手機裝的所有app的包名:
adb shell pm list packages
image.png
列出系統(tǒng)應(yīng)用的所有包名:
adb shell pm list packages -s
image.png
列出除了系統(tǒng)應(yīng)用的第三方應(yīng)用包名:
adb shell pm list packages -3
image.png
4.4.adb logcat 查看手機日志
adb logcat 命令格式 : adb logcat [選項] [過濾項], 其中 選項 和 過濾項 在 中括號 [] 中, 說明這是可選的;
在命令行中輸入 adb logcat --help 命令, 就可以顯示該命令的幫助信息;
">"輸出 : “>” 后面跟著要輸出的日志文件, 可以將 logcat 日志輸出到文件中, 使用adb logcat > log 命令
指定 logcat 的日志輸出格式 :
– "-v"選項 : 使用adb logcat -v time 命令, 可以查看日志的輸出時間;
"process"格式 : " 優(yōu)先級 (進程ID) : 日志信息 ", 使用adb logcat -v process 命令;
將手機日志輸出到本地文件中
adb logcat -v time process > C:/log/aa.txt
有多臺設(shè)備是adb選擇設(shè)備
adb -s 設(shè)備名稱 logcat -v time process >C:/log/aa.txt
Android 的日志分為如下幾個級別:
V —— Verbose(最低持隧,輸出得最多)
D —— Debug
I —— Info
W —— Warning
E —— Error
F —— Fatal
S —— Silent(最高即硼,啥也不輸出)
按某級別過濾日志則會將該級別及以上的日志輸出。
比如屡拨,命令:adb logcat *:W 將 Warning谦絮、Error、Fatal 和 Silent 日志輸出
顯示所有優(yōu)先級大于等于“warning”的日志
五洁仗、APK牢固性(加密)
應(yīng)用加固
防篡改:通過完整性保護和簽名校驗保護层皱,能有效避免應(yīng)用被二次打包,杜絕盜版應(yīng)用的產(chǎn)生赠潦;
防逆向:通過對代碼進行隱藏以及加密處理叫胖,使攻擊者無法對二進制代碼進行反編譯,獲得源代碼或代碼運行邏輯她奥;
防調(diào)試:通過反調(diào)試技術(shù)瓮增,使攻擊者無法調(diào)試原生代碼或Java代碼,阻止攻擊者獲取代碼里的敏感數(shù)據(jù)哩俭。
網(wǎng)上有很多Apk加固的第三方平臺绷跑,最有名的應(yīng)當屬于:愛加密和梆梆加固了。其實加固說的簡單點就是對源Apk進行加密凡资,然后在套上一層殼即可
六砸捏、Monkey測試
6.1.參考資料
http://blog.csdn.net/jlminghui/article/details/38238443
6.2.Money介紹
顧名思義,Monkey就是猴子, Monkey測試垦藏,就像一只猴子梆暖, 在電腦面前,亂敲鍵盤在測試掂骏。
通過Monkey程序模擬用戶觸摸屏幕轰驳、滑動Trackball、 按鍵等操作來對設(shè)備上的程序進行壓力測試弟灼,檢測程序多久的時間會發(fā)生異常级解。
6.3.Monkey用來做什么
Monkey 主要用于Android 的壓力測試自動的一個壓力測試小工具, 主要目的就是為了測試app 是否會Crash(崩潰)田绑。
6.4. Monkey 前提條件
環(huán)境配置:把adb加入系統(tǒng)環(huán)境蠕趁,手機開啟開發(fā)者模式
連接手機,獲取測試的包名辛馆。獲取包名的方法
Monkey編寫測試命令,并運行俺陋。monkey操作命令
如果要提前中結(jié)束測試,中斷運行中的monkey
CTRL+C
adb shell ps | grep monkey 返回進程號
adb shell kill [剛才查到的進程號]
6.5Monkey程序介紹
Monkey程序由Android系統(tǒng)自帶昙篙,使用Java語言寫成腊状,在Android文件系統(tǒng)中的存放路徑是: /system/framework/monkey.jar;
Monkey.jar程序是由一個名為“monkey”的Shell腳本來啟動執(zhí)行苔可,shell腳本在Android文件系統(tǒng)中 的存放路徑是:/system/bin/monkey缴挖;
Monkey 命令啟動方式:
a)可以通過PC機CMD窗口中執(zhí)行: adb shell monkey {+命令參數(shù)}來進行Monkey測試
b)在PC上adb shell 進入Android系統(tǒng),通過執(zhí)行 monkey {+命令參數(shù)} 來進行Monkey 測試
c ) 在Android機或者模擬器上直接執(zhí)行monkey 命令焚辅,可以在Android機上安裝Android終端模擬器
七映屋、Monkey 命令 基本參數(shù)介紹
7.1.使用monkey測試手機所有程序
adb shell monkey 100 執(zhí)行monkey測試100次 針對rom測試或者
image.png
使用adb指令,安裝Login.apk
image.png
7.2.-p <允許的包名列表>
adb shell monkey -p com.example.login 100
用此參數(shù)指定一個或多個包同蜻。指定包之后棚点,monkey將只允許系統(tǒng)啟動指定的app。如果不指定包湾蔓, monkey將允許系統(tǒng)啟動設(shè)備中的所有app瘫析。
指定一個包:
image.png
7.3.顯示日志詳細程度
用于指定反饋信息級別(信息級別就是日志的詳細程度),總共分3個級別默责,分別對應(yīng)的參數(shù)如下 表所示:
Level 0 : adb shell monkey -p com.example.login -v 100 // 缺省值贬循,僅提供啟動提示、測試完成和最終結(jié)果等少量信息
image.png
Level 1 : adb shell monkey -p com.example.login -v -v 100 // 提供較為詳細的日志桃序,包括每個發(fā)送到Activity的事件信息
Level 2 : adb shell monkey -p com.example.login -v -v -v 100 // 最詳細的日志杖虾,包括了測試中選中/未選中的Activity信息
image.png
7.4.Monkey日志分析
將log信息寫到文檔中
adb shell monkey 100 >c:/log/b.txt
image.png
正常情況, 如果Monkey測試順利執(zhí)行完成媒熊, 在log的最后奇适, 會打印出當前執(zhí)行事件的次數(shù)和所花費的時間坟比; // Monkey finished 代表執(zhí)行完成
隨機數(shù)種子
用亍指定偽隨機數(shù)生成器的seed值,如果seed相同滤愕,則兩次Monkey測試所產(chǎn)生的事件序列也相同的。 示例:
monkey測試1:adb shell monkey -p com.shjt.map –s 10 100
monkey測試2:adb shell monkey -p com.shjt.map –s 10 100
image.png
7.5.–throttle <毫秒>
用亍指定用戶操作(即事件)間的時延怜校,單位是毫秒间影;如果不指定這個參數(shù),monkey會盡可能快的 生成和發(fā)送消息茄茁。
例:adb shell monkey -p com.example.login --throttle 300 100
表示執(zhí)行100個偽隨機用戶事件流魂贬,事件間隔為300毫秒。
注:一般設(shè)置為300毫秒裙顽,原因是實際用戶操作的最快300毫秒左右一個動作事件付燥。
image.png
7.6.–pct-touch
調(diào)整觸摸事件的百分比。(觸摸事件是指在屏幕中的一個down-up事件愈犹,即在屏幕某處按下并抬起的操作)
–pct-touch:觸摸事件键科。即在某一位置的Down-Up(手指的放下和抬起)事件。Down(ACTION_DOWN)和Up(ACTION_UP)的坐標臨近漩怎,但并非相同勋颖。
如:adb shell monkey -pct-touch 67 -v 10
表示執(zhí)行10個偽隨機用戶事件流,并調(diào)整其中觸摸事件的百分比為67%勋锤。
注:此參數(shù)設(shè)置要適應(yīng)當前被測應(yīng)用程序的操作饭玲,比如一個應(yīng)用80%的操作都是觸摸,那就可以將此參數(shù)的百分比設(shè)置成相應(yīng)較高的百分比叁执。
7.7.–pct-motion
調(diào)整motion事件百分比茄厘。(motion事件是由屏幕上某處一個down事件、一系列偽隨機的移動事件和一個up事件組成)
–pct-motion:動作事件谈宛。以Down(ACTION_DOWN)開始次哈,Up(ACTION_UP)結(jié)尾,中間至少有一次Move(ACTION_MOVE)吆录。
如:adb shell monkey -pct-motion 67 -v 10
表示執(zhí)行10個偽隨機用戶事件流亿乳,并調(diào)整其中動作事件的百分比為67%。
注:這里的移動是直線滑動
7.8.–ignore-crashes
作用:通常径筏,應(yīng)用發(fā)生崩潰或異常時Monkey會停止運行葛假。如果設(shè)置此項,Monkey將繼續(xù)發(fā)送事件給系統(tǒng)滋恬,直到事件計數(shù)完成聊训。
正常操作,不忽略異常
————————————————
版權(quán)聲明:本文為CSDN博主「小維不怕吃苦」的原創(chuàng)文章恢氯,遵循CC 4.0 BY-SA版權(quán)協(xié)議带斑,轉(zhuǎn)載請附上原文出處鏈接及本聲明鼓寺。
原文鏈接:https://blog.csdn.net/haowei6666/article/details/119520378