adb monkey

一沦疾、 手機測試概念

傳統(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

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市勋磕,隨后出現(xiàn)的幾起案子妈候,更是在濱河造成了極大的恐慌,老刑警劉巖挂滓,帶你破解...
    沈念sama閱讀 207,113評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件苦银,死亡現(xiàn)場離奇詭異,居然都是意外死亡赶站,警方通過查閱死者的電腦和手機幔虏,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評論 2 381
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來贝椿,“玉大人想括,你說我怎么就攤上這事±硬” “怎么了瑟蜈?”我有些...
    開封第一講書人閱讀 153,340評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長渣窜。 經(jīng)常有香客問我踪栋,道長,這世上最難降的妖魔是什么图毕? 我笑而不...
    開封第一講書人閱讀 55,449評論 1 279
  • 正文 為了忘掉前任夷都,我火速辦了婚禮,結(jié)果婚禮上予颤,老公的妹妹穿的比我還像新娘诀黍。我一直安慰自己总放,他們只是感情好猪钮,可當我...
    茶點故事閱讀 64,445評論 5 374
  • 文/花漫 我一把揭開白布涂滴。 她就那樣靜靜地躺著,像睡著了一般驳庭。 火紅的嫁衣襯著肌膚如雪刑顺。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,166評論 1 284
  • 那天饲常,我揣著相機與錄音蹲堂,去河邊找鬼。 笑死贝淤,一個胖子當著我的面吹牛柒竞,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播播聪,決...
    沈念sama閱讀 38,442評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼朽基,長吁一口氣:“原來是場噩夢啊……” “哼布隔!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起稼虎,我...
    開封第一講書人閱讀 37,105評論 0 261
  • 序言:老撾萬榮一對情侶失蹤衅檀,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后霎俩,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體哀军,經(jīng)...
    沈念sama閱讀 43,601評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,066評論 2 325
  • 正文 我和宋清朗相戀三年茸苇,在試婚紗的時候發(fā)現(xiàn)自己被綠了排苍。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片沦寂。...
    茶點故事閱讀 38,161評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡学密,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出传藏,到底是詐尸還是另有隱情腻暮,我是刑警寧澤,帶...
    沈念sama閱讀 33,792評論 4 323
  • 正文 年R本政府宣布毯侦,位于F島的核電站哭靖,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏侈离。R本人自食惡果不足惜试幽,卻給世界環(huán)境...
    茶點故事閱讀 39,351評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望卦碾。 院中可真熱鬧铺坞,春花似錦、人聲如沸洲胖。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽绿映。三九已至擒滑,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間叉弦,已是汗流浹背丐一。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評論 1 261
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留淹冰,地道東北人钝诚。 一個月前我還...
    沈念sama閱讀 45,618評論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像榄棵,于是被迫代替她去往敵國和親凝颇。 傳聞我的和親對象是個殘疾皇子潘拱,可洞房花燭夜當晚...
    茶點故事閱讀 42,916評論 2 344

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