溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

APP壓力穩(wěn)定性測試中如何進(jìn)行Monkey入門實(shí)戰(zhàn)

發(fā)布時(shí)間:2021-12-24 16:28:06 來源:億速云 閱讀:114 作者:柒染 欄目:網(wǎng)絡(luò)管理

APP壓力穩(wěn)定性測試中如何進(jìn)行Monkey入門實(shí)戰(zhàn),針對(duì)這個(gè)問題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問題的小伙伴找到更簡單易行的方法。

Monkey測試簡介

在android手機(jī)上做自動(dòng)化測試,monkey比cts,Android UnitTest 好用多了,他其實(shí)是繼承與adb shell中的一段的shell指令。

monkey測試的相關(guān)的原理

monkey測試的原理就是利用socket通訊的方式來模擬用戶的按鍵輸入,觸摸屏輸入,手勢輸入等,看設(shè)備多長時(shí)間會(huì)出異常。當(dāng)Monkey程序在模擬器或設(shè)備運(yùn)行的時(shí)候,如果用戶出發(fā)了比如點(diǎn)擊,觸摸,手勢或一些系統(tǒng)級(jí)別的事件的時(shí)候,它就會(huì)產(chǎn)生隨機(jī)脈沖,所以可以用Monkey用隨機(jī)重復(fù)的方法去負(fù)荷測試你開發(fā)的軟件。

Monkey的一般使用步驟

1.先確認(rèn)設(shè)備(模擬器或者真機(jī))是否連接成功。命令:adb devices,出現(xiàn)設(shè)備號(hào)則表示連接成功。

2.確定待測應(yīng)用的包名。參考如下

1)打開CMD命令行

2)adb shell進(jìn)入shell界面,通過查看data/data下的程序包,根據(jù)關(guān)鍵字查找包名

3.執(zhí)行monkey測試命令

adb shell monkey -p your.package.name --pct-touch 30 --ignore-crashes  --ignore-timeouts--throttle 250 -s 2  -v -v -v 5000000

Monkey的常見命令

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 <percent> (滑動(dòng)事件)

--pct-trackball <percent> (軌跡球事件)

--pct-nav <percent> (導(dǎo)航事件 up/down/left/right)

--pct-majornav <percent> (主要導(dǎo)航事件 back key 、 menu key)

--pct-syskeys <percent> (系統(tǒng)按鍵事件 Home 、Back 、startCall 、 endCall 、 volumeControl)

--pct-appswitch <percent> (activity之間的切換)

--pct-anyevent <percent>(任意事件)

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:跟蹤本地方法的崩潰問題

--wait-dbg:知道連接了調(diào)試器才執(zhí)行monkey測試。

Monkey實(shí)戰(zhàn)

一、monkey測試環(huán)境搭建:

運(yùn)行前安裝adb(MONKEY測試使用的是ADB命令,因此只需要配置ADB環(huán)境即可。)

1.pc端下載adb命令包,解壓后放到C盤目錄下(也就是jdk,sdk,jdk安裝,sdk解壓即可,并配置環(huán)境變量,path加上platform-tools和tools的目錄路徑)

APP壓力穩(wěn)定性測試中如何進(jìn)行Monkey入門實(shí)戰(zhàn)

APP壓力穩(wěn)定性測試中如何進(jìn)行Monkey入門實(shí)戰(zhàn)

2.手機(jī)通過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模式

APP壓力穩(wěn)定性測試中如何進(jìn)行Monkey入門實(shí)戰(zhàn)

二、手機(jī)設(shè)置

手機(jī)屏幕超時(shí)設(shè)置為從不關(guān)閉,防止手機(jī)進(jìn)入鎖屏狀態(tài)。

以htc手機(jī)為例:進(jìn)入設(shè)置-顯示--屏幕待機(jī)--設(shè)置為從不關(guān)閉。

APP壓力穩(wěn)定性測試中如何進(jìn)行Monkey入門實(shí)戰(zhà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ī)模擬器可以通過百度搜索或360手機(jī)助手搜a(bǔ)ndroid terminal,安裝即可,可以在模擬器的命令行中輸入mokey +參數(shù))

下面是第一種方法:

1.查看包名:查看電腦中某一位置的apk文件的包名:PC打開CMD-進(jìn)入TMG目錄-運(yùn)行設(shè)備--查看包名aapt dump badging *.apk(apk文件的路徑,可以直接拖拽)。

APP壓力穩(wěn)定性測試中如何進(jìn)行Monkey入門實(shí)戰(zhàn)

或者直接查看手機(jī)中存在的apk包,進(jìn)入adb shell 命令后---手機(jī)的data/data文件夾--ls查看所有包名 找到要測apk的包名

APP壓力穩(wěn)定性測試中如何進(jìn)行Monkey入門實(shí)戰(zhàn)

2.運(yùn)行monkey,對(duì)此包進(jìn)行300次無規(guī)律點(diǎn)擊。

APP壓力穩(wěn)定性測試中如何進(jìn)行Monkey入門實(shí)戰(zhàn)

或者運(yùn)行monkey,對(duì)此包進(jìn)行300次無規(guī)律點(diǎn)擊后將日志導(dǎo)出到電腦的某一位置

adb shell -p 包名 -v 點(diǎn)擊數(shù) >電腦某一位置

APP壓力穩(wěn)定性測試中如何進(jìn)行Monkey入門實(shí)戰(zhàn)

3、測試停止后,查看導(dǎo)出的monkey日志,發(fā)現(xiàn)問題。

APP壓力穩(wěn)定性測試中如何進(jìn)行Monkey入門實(shí)戰(zhàn)

在log的最開始都會(huì)顯示Monkey執(zhí)行的seed值、執(zhí)行次數(shù)和測試的包名。

首先我們需要查看Monkey測試中是否出現(xiàn)了ANR或者異常,無響應(yīng)問題(ANR問題):在日志中搜索“ANR ”(此處有空格), 崩潰問題:在日志中搜索“Exception”,快速定位到關(guān)鍵事件信息 。然后查看Monkey里面出錯(cuò)前的一些事件動(dòng)作,并手動(dòng)執(zhí)行該動(dòng)作,找出重現(xiàn)步驟,給開發(fā)。

APP壓力穩(wěn)定性測試中如何進(jìn)行Monkey入門實(shí)戰(zhàn)

四、補(bǔ)充小知識(shí):

1.如何安裝apk?

adb install xxx.apk -----為了獲取apk的安裝包所在地址,可以直接把a(bǔ)pk拖到cmd的窗口獲取,返回success就說明安裝成功了!

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問題:日志中搜索ANR關(guān)鍵字

---->奔潰問題:在日志中搜索Exception問題

關(guān)于APP壓力穩(wěn)定性測試中如何進(jìn)行Monkey入門實(shí)戰(zhàn)問題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注億速云行業(yè)資訊頻道了解更多相關(guān)知識(shí)。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI