實用測試技能分享:APP壓力穩定性測試之Monkey入門實戰

博為峰網校發表於2019-01-23

Monkey測試簡介

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

monkey測試的相關的原理

monkey測試的原理就是利用socket通訊的方式來模擬使用者的按鍵輸入,觸控式螢幕輸入,手勢輸入等,看裝置多長時間會出異常。當Monkey程式在模擬器或裝置執行的時候,如果使用者出發了比如點選,觸控,手勢或一些系統級別的事件的時候,它就會產生隨機脈衝,所以可以用Monkey用隨機重複的方法去負荷測試你開發的軟體。

實用測試技能分享:APP壓力穩定性測試之Monkey入門實戰

Monkey的一般使用步驟

1.先確認裝置(模擬器或者真機)是否連線成功。命令:adb devices,出現裝置號則表示連線成功。

2.確定待測應用的包名。參考如下

1)開啟CMD命令列

2)adb shell進入shell介面,透過檢視data/data下的程式包,根據關鍵字查詢包名

3.執行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:常用選項

--help:列印幫助資訊

-v:指定列印資訊的詳細級別,一個 -v增加一個級別 , 預設級別為 0 。-v -v -v 為最詳細日誌。

2:事件選項

-s:指定產生隨機事件種子值,相同的種子值產生相同的事件序列。如: -s 200

--throttle:每個事件結束後的間隔時間——降低系統的壓力(如不指定,系統會盡快的傳送事件序列)。如:--throttle 100

--pct-touch:指定觸控事件的百分比,如:--pct-touch 5% , 相關的還有以下option:

--pct-motion <percent> (滑動事件)

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

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

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

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

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

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

3:約束選項

-p:指定有效的package(如不指定,則對系統中所有package有效),一個-p 對應一個有效package, 如:-p com.ckt -p com.ckt.asura;

-c:activity必須至少包含一個指定的category,才能被啟動,否則啟動不了;

4:除錯選項

--dbg-no-events:初始化啟動的activity,但是不產生任何事件。

--hprof:指定該項後在事件序列傳送前後會立即生成分析報告  —— 一般建議指定該項。

--ignore-crashes:忽略崩潰

--ignore-timeouts:忽略超時

--ignore-security-exceptions:忽略安全異常

--kill-process-after-error:發生錯誤後直接殺掉程式

--monitor-native-crashes:跟蹤本地方法的崩潰問題

--wait-dbg:知道連線了偵錯程式才執行monkey測試。

Monkey實戰

一、monkey測試環境搭建:

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

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

實用測試技能分享:APP壓力穩定性測試之Monkey入門實戰
實用測試技能分享:APP壓力穩定性測試之Monkey入門實戰

2.手機透過usb連線電腦,自動安裝usb驅動,連線成功

3.驗證adb命令能否執行

pc端進入cmd命令列---進入C:\tmg目錄下--執行adb shell,出現$符號證明adb命令執行成功,進入shell模式

實用測試技能分享:APP壓力穩定性測試之Monkey入門實戰

二、手機設定

手機螢幕超時設定為從不關閉,防止手機進入鎖屏狀態。

以htc手機為例:進入設定-顯示--螢幕待機--設定為從不關閉。

實用測試技能分享:APP壓力穩定性測試之Monkey入門實戰

三、執行monkey

執行方式有三種:a.pc機上 adb shell monkey +引數  b pc機輸入adb shell進入到手機的安卓裝置後再monkey+引數 C手機裝置上安裝一個模擬器手機執行monkey+引數(手機模擬器可以透過百度搜尋或360手機助手搜android terminal,安裝即可,可以在模擬器的命令列中輸入mokey +引數)

下面是第一種方法:

1.檢視包名:檢視電腦中某一位置的apk檔案的包名:PC開啟CMD-進入TMG目錄-執行裝置--檢視包名aapt dump badging *.apk(apk檔案的路徑,可以直接拖拽)。

實用測試技能分享:APP壓力穩定性測試之Monkey入門實戰

或者直接檢視手機中存在的apk包,進入adb shell 命令後---手機的data/data資料夾--ls檢視所有包名 找到要測apk的包名

實用測試技能分享:APP壓力穩定性測試之Monkey入門實戰

2.執行monkey,對此包進行300次無規律點選。

實用測試技能分享:APP壓力穩定性測試之Monkey入門實戰

或者執行monkey,對此包進行300次無規律點選後將日誌匯出到電腦的某一位置

adb shell -p 包名 -v 點選數 >電腦某一位置

實用測試技能分享:APP壓力穩定性測試之Monkey入門實戰

3、測試停止後,檢視匯出的monkey日誌,發現問題。

實用測試技能分享:APP壓力穩定性測試之Monkey入門實戰

在log的最開始都會顯示Monkey執行的seed值、執行次數和測試的包名。

首先我們需要檢視Monkey測試中是否出現了ANR或者異常,無響應問題(ANR問題):在日誌中搜尋“ANR ”(此處有空格), 崩潰問題:在日誌中搜尋“Exception”,快速定位到關鍵事件資訊 。然後檢視Monkey裡面出錯前的一些事件動作,並手動執行該動作,找出重現步驟,給開發。

實用測試技能分享:APP壓力穩定性測試之Monkey入門實戰

四、補充小知識:

1.如何安裝apk?

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

2.如何將本地檔案上傳到手機端?

adb push <本機路徑> <手機路徑>

例,將本地的白名單上傳到手機端,adb push F:\whitelist.txt data/local/tmp

3.如何將日誌儲存到PC端?

adb shell monkey -v -v -v 1000 > 本機地址

例:adb shell monkey -v -v -v 1000 > d:\monkey.txt

4.日誌檢視補充

---->先把日誌輸出到本地

---->注意觀察switch後面的內容,一般錯誤都會顯示在這個後面

---->ANR問題:日誌中搜尋ANR關鍵字

---->奔潰問題:在日誌中搜尋Exception問題

歡迎加入  51軟體測試大家庭,在這裡你將獲得【最新行業資訊】,【免費測試工具安裝包】,【軟體測試技術乾貨】,【面試求職技巧】... 51與你共同學習,一起成長!期待你的加入: QQ                     群:                    755431660


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31407649/viewspace-2564596/,如需轉載,請註明出處,否則將追究法律責任。

相關文章