新聞中心
APP壓力穩(wěn)定性測(cè)試中如何進(jìn)行Monkey入門(mén)實(shí)戰(zhàn),針對(duì)這個(gè)問(wèn)題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問(wèn)題的小伙伴找到更簡(jiǎn)單易行的方法。
Monkey測(cè)試簡(jiǎn)介
在android手機(jī)上做自動(dòng)化測(cè)試,monkey比cts,Android UnitTest 好用多了,他其實(shí)是繼承與adb shell中的一段的shell指令。
monkey測(cè)試的相關(guān)的原理
monkey測(cè)試的原理就是利用socket通訊的方式來(lái)模擬用戶的按鍵輸入,觸摸屏輸入,手勢(shì)輸入等,看設(shè)備多長(zhǎng)時(shí)間會(huì)出異常。當(dāng)Monkey程序在模擬器或設(shè)備運(yùn)行的時(shí)候,如果用戶出發(fā)了比如點(diǎn)擊,觸摸,手勢(shì)或一些系統(tǒng)級(jí)別的事件的時(shí)候,它就會(huì)產(chǎn)生隨機(jī)脈沖,所以可以用Monkey用隨機(jī)重復(fù)的方法去負(fù)荷測(cè)試你開(kāi)發(fā)的軟件。
Monkey的一般使用步驟
1.先確認(rèn)設(shè)備(模擬器或者真機(jī))是否連接成功。命令:adb devices,出現(xiàn)設(shè)備號(hào)則表示連接成功。
2.確定待測(cè)應(yīng)用的包名。參考如下
1)打開(kāi)CMD命令行
2)adb shell進(jìn)入shell界面,通過(guò)查看data/data下的程序包,根據(jù)關(guān)鍵字查找包名
3.執(zhí)行monkey測(cè)試命令
adb shell monkey -p your.package.name --pct-touch 30 --ignore-crashes --ignore-timeouts--throttle 250 -s 2 -v -v -v 5000000
Monkey的常見(jiàn)命令
1:常用選項(xiàng)
--help:打印幫助信息
-v:指定打印信息的詳細(xì)級(jí)別,一個(gè) -v增加一個(gè)級(jí)別 , 默認(rèn)級(jí)別為 0 。-v -v -v 為最詳細(xì)日志。
2:事件選項(xiàng)
-s:指定產(chǎn)生隨機(jī)事件種子值,相同的種子值產(chǎn)生相同的事件序列。如: -s 200
--throttle:每個(gè)事件結(jié)束后的間隔時(shí)間——降低系統(tǒng)的壓力(如不指定,系統(tǒng)會(huì)盡快的發(fā)送事件序列)。如:--throttle 100
--pct-touch:指定觸摸事件的百分比,如:--pct-touch 5% , 相關(guān)的還有以下option:
--pct-motion
--pct-trackball
--pct-nav
--pct-majornav
--pct-syskeys
--pct-appswitch
--pct-anyevent
3:約束選項(xiàng)
-p:指定有效的package(如不指定,則對(duì)系統(tǒng)中所有package有效),一個(gè)-p 對(duì)應(yīng)一個(gè)有效package, 如:-p com.ckt -p com.ckt.asura;
-c:activity必須至少包含一個(gè)指定的category,才能被啟動(dòng),否則啟動(dòng)不了;
4:調(diào)試選項(xiàng)
--dbg-no-events:初始化啟動(dòng)的activity,但是不產(chǎn)生任何事件。
--hprof:指定該項(xiàng)后在事件序列發(fā)送前后會(huì)立即生成分析報(bào)告 —— 一般建議指定該項(xiàng)。
--ignore-crashes:忽略崩潰
--ignore-timeouts:忽略超時(shí)
--ignore-security-exceptions:忽略安全異常
--kill-process-after-error:發(fā)生錯(cuò)誤后直接殺掉進(jìn)程
--monitor-native-crashes:跟蹤本地方法的崩潰問(wèn)題
--wait-dbg:知道連接了調(diào)試器才執(zhí)行monkey測(cè)試。
Monkey實(shí)戰(zhàn)
一、monkey測(cè)試環(huán)境搭建:
運(yùn)行前安裝adb(MONKEY測(cè)試使用的是ADB命令,因此只需要配置ADB環(huán)境即可。)
1.pc端下載adb命令包,解壓后放到C盤(pán)目錄下(也就是jdk,sdk,jdk安裝,sdk解壓即可,并配置環(huán)境變量,path加上platform-tools和tools的目錄路徑)
2.手機(jī)通過(guò)usb連接電腦,自動(dòng)安裝usb驅(qū)動(dòng),連接成功
3.驗(yàn)證adb命令能否運(yùn)行
pc端進(jìn)入cmd命令行---進(jìn)入C:\tmg目錄下--運(yùn)行adb shell,出現(xiàn)$符號(hào)證明adb命令運(yùn)行成功,進(jìn)入shell模式
二、手機(jī)設(shè)置
手機(jī)屏幕超時(shí)設(shè)置為從不關(guān)閉,防止手機(jī)進(jìn)入鎖屏狀態(tài)。
以htc手機(jī)為例:進(jìn)入設(shè)置-顯示--屏幕待機(jī)--設(shè)置為從不關(guān)閉。
三、運(yùn)行monkey
運(yùn)行方式有三種:a.pc機(jī)上 adb shell monkey +參數(shù) b pc機(jī)輸入adb shell進(jìn)入到手機(jī)的安卓設(shè)備后再monkey+參數(shù) C手機(jī)設(shè)備上安裝一個(gè)模擬器手機(jī)執(zhí)行monkey+參數(shù)(手機(jī)模擬器可以通過(guò)百度搜索或360手機(jī)助手搜a(bǔ)ndroid terminal,安裝即可,可以在模擬器的命令行中輸入mokey +參數(shù))
下面是第一種方法:
1.查看包名:查看電腦中某一位置的apk文件的包名:PC打開(kāi)CMD-進(jìn)入TMG目錄-運(yùn)行設(shè)備--查看包名aapt dump badging *.apk(apk文件的路徑,可以直接拖拽)。
或者直接查看手機(jī)中存在的apk包,進(jìn)入adb shell 命令后---手機(jī)的data/data文件夾--ls查看所有包名 找到要測(cè)apk的包名
2.運(yùn)行monkey,對(duì)此包進(jìn)行300次無(wú)規(guī)律點(diǎn)擊。
或者運(yùn)行monkey,對(duì)此包進(jìn)行300次無(wú)規(guī)律點(diǎn)擊后將日志導(dǎo)出到電腦的某一位置
adb shell -p 包名 -v 點(diǎn)擊數(shù) >電腦某一位置
3、測(cè)試停止后,查看導(dǎo)出的monkey日志,發(fā)現(xiàn)問(wèn)題。
在log的最開(kāi)始都會(huì)顯示Monkey執(zhí)行的seed值、執(zhí)行次數(shù)和測(cè)試的包名。
首先我們需要查看Monkey測(cè)試中是否出現(xiàn)了ANR或者異常,無(wú)響應(yīng)問(wèn)題(ANR問(wèn)題):在日志中搜索“ANR ”(此處有空格), 崩潰問(wèn)題:在日志中搜索“Exception”,快速定位到關(guān)鍵事件信息 。然后查看Monkey里面出錯(cuò)前的一些事件動(dòng)作,并手動(dòng)執(zhí)行該動(dòng)作,找出重現(xiàn)步驟,給開(kāi)發(fā)。
四、補(bǔ)充小知識(shí):
1.如何安裝apk?
adb install xxx.apk -----為了獲取apk的安裝包所在地址,可以直接把a(bǔ)pk拖到cmd的窗口獲取,返回success就說(shuō)明安裝成功了!
2.如何將本地文件上傳到手機(jī)端?
adb push <本機(jī)路徑> <手機(jī)路徑>
例,將本地的白名單上傳到手機(jī)端,adb push F:\whitelist.txt data/local/tmp
3.如何將日志保存到PC端?
adb shell monkey -v -v -v 1000 > 本機(jī)地址
例:adb shell monkey -v -v -v 1000 > d:\monkey.txt
4.日志查看補(bǔ)充
---->先把日志輸出到本地
---->注意觀察switch后面的內(nèi)容,一般錯(cuò)誤都會(huì)顯示在這個(gè)后面
---->ANR問(wèn)題:日志中搜索ANR關(guān)鍵字
---->奔潰問(wèn)題:在日志中搜索Exception問(wèn)題
關(guān)于APP壓力穩(wěn)定性測(cè)試中如何進(jìn)行Monkey入門(mén)實(shí)戰(zhàn)問(wèn)題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒(méi)有解開(kāi),可以關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道了解更多相關(guān)知識(shí)。
本文標(biāo)題:APP壓力穩(wěn)定性測(cè)試中如何進(jìn)行Monkey入門(mén)實(shí)戰(zhàn)-創(chuàng)新互聯(lián)
網(wǎng)頁(yè)地址:http://fisionsoft.com.cn/article/dsejed.html