日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

android monkey压力测试(二)

發(fā)布時間:2025/3/21 编程问答 59 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android monkey压力测试(二) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一、什么是Monkey

顧名思義,Monkey就是猴子,? Monkey測試,就像一只猴子,?在電腦面前,亂敲鍵盤在測試。? 猴子什么都不懂, 只知道亂敲

通過Monkey程序模擬用戶觸摸屏幕、滑動Trackball、 按鍵等操作來對設(shè)備上的程序進行壓力測試,檢測程序多久的時間會發(fā)生異常

二、Monkey用來做什么

Monkey 主要用于Android 的壓力測試? 自動的一個壓力測試小工具,?主要目的就是為了測試app?是否會Crash.

三、Monkey簡介

  • monkey官方文檔(需要FQ)
  • monkey源碼
  • monkey是一個命令行工具,可以運行在Android模擬器或真實設(shè)備中。它可以向系統(tǒng)發(fā)送偽隨機(pseudo-random)的用戶事件流(如按鍵輸入、觸摸屏輸入、手勢輸入等),可以對待測的目標應(yīng)用或整個Android系統(tǒng)進行壓力測試。因為monkey測試是一種為了測試軟件的穩(wěn)定性、健壯性的快速有效方法
  • 基本語法
$adb shell monkey [option] <event-count>

如果不指定options,即類似于使用adb shell monkey 1000,那么將會對整個系統(tǒng)中安裝的package發(fā)送事件流,換種說法就是對整個Android系統(tǒng)進行monkey壓力測試

這是一個對指定應(yīng)用(Android自帶的系統(tǒng)設(shè)置應(yīng)用)進行monkey測試的栗子,發(fā)送的事件流數(shù)量為1000:

?四、Monkey程序介紹

  • 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 命令啟動方式:
    • 可以通過PC機CMD窗口中執(zhí)行: adb shell monkey {+命令參數(shù)}來進行Monkey測試
    • 在PC上adb shell 進入Android系統(tǒng),通過執(zhí)行 monkey {+命令參數(shù)} 來進行Monkey 測試
    • 在Android機或者模擬器上直接執(zhí)行monkey 命令,可以在Android機上安裝Android終端模擬器?

五、Monkey架構(gòu)

Monkey 運行在設(shè)備或模擬器上面,可以脫離PC運行(普遍做法是將monkey作為一個像待測應(yīng)用發(fā)送 隨機按鍵消息的測試工具。驗證待測應(yīng)用在這些隨機性的輸入面前是否會閃退或者崩潰)

六、Monkey到弱點

Monkey雖然可以根據(jù)一個指定的命令腳本發(fā)送按鍵消息,但其丌支持條件判斷,也丌支持讀取待測界 面的信息來執(zhí)行驗證操作。

七、參數(shù)大全

?

八、monkey命令選項

  • 獲取選項列表,Android9版本中輸入adb shell monkey,會顯示選項列表如下:

常用選項及參數(shù)說明

  • -p?允許的包名列表,可同時指定多個包名,每個包都需要使用“-p”參數(shù)指定。包名的獲取,可參考 python 腳本get_package_name.py
  • —ignore-crashes?忽視應(yīng)用 crash 報錯,不指定該參數(shù)時,應(yīng)用出現(xiàn) crash,monkey 會自動停止發(fā)送事件,指定該參數(shù)后,mongkey 會在 crash 后也一直發(fā)送事件,知道所有事件發(fā)送完成
  • —ignore-timeouts?忽視超時導(dǎo)致的錯誤,即ANR的錯誤
  • —ignore-security-exceptions?忽視權(quán)限方面的錯誤
  • —monitor-native-crashes?監(jiān)控由 C/C++ 代碼引起的 crash
  • —ignore-native-crashes?忽視由 C/C++ 代碼引起的 crash
  • —kill-process-after-error?當(dāng)出現(xiàn)錯誤后殺掉應(yīng)用的進程
  • —hprof?指定該選項后,monkey會在發(fā)送事件完成后生成性能報告,報告一般存放于/data/misc目錄下,對報告的分析,需要使用Traceview
  • —pct-touch?設(shè)定 touch 事件比例
  • —pct-motion?設(shè)定手勢事件比例,例如滑動事件
  • —pct-trackball?設(shè)定跟蹤球事件的比例
  • —pct-syskeys?設(shè)定系統(tǒng)按鍵事件的比例,如 Home、Back、音量+/-等
  • —pct-nav?設(shè)定”基本”導(dǎo)航事件的比例
  • —pct-majornav?設(shè)定”主要”導(dǎo)航事件比例
  • —pct-appswitch?設(shè)定啟動 Activity 的事件比例
  • —pct-pinchzoom?設(shè)定縮放事件比例
  • —pct-anyevent?設(shè)定其他事件比例
  • -s?設(shè)定種子數(shù),方便用于重現(xiàn) bug
  • -v?設(shè)定輸出信息的詳細級別,1個 -v 表示級別為1,2個 -v 表示級別為2
  • —throttle?設(shè)定事件之間的延時,單位為毫秒
    • 如果不指定這個參數(shù),monkey會盡可能快的生成和發(fā)送消息
    • 命令:adb shell monkey -p?包名 --throttle 3000
  • COUNT?事件數(shù)目

九、Monkey實例 

場景1:在PC端執(zhí)行monkey命令,將日志保存至D盤monkey.log $adb shell monkey -p com.android.settings 1000 > d:\monkey.log 場景2:在PC端執(zhí)行monkey命令,將日志保存至手機sdcard
注意:雙引號 $adb shell
"monkey -p com.android.settings 1000 > sdcard/monkey.log" 場景3:實際工作中在PC端執(zhí)行mongkey命令,并將日志保存至F盤monkey.log
adb shell monkey -p com.hfjy.learningparentphone -v --throttle 300 --pct-touch 50 --pct-motion 50 --ignore-timeouts --ignore-crashes 100000 > F:/monkey.log

十、日志分析

當(dāng)日志生成后,我們需要進入日志當(dāng)中查看是否有APP崩潰記錄或者無響應(yīng)記錄。崩潰記錄查找”CRASH”,無響應(yīng)記錄查找”ANR”,內(nèi)存泄露問題搜索"GC"(需進一步分析),異常問題搜索“Exception”(如果出現(xiàn)空指針,NullPointerException,需格外重視)。

為了進一步分析問題的來源,可以找到Log中出現(xiàn)問題處的前一次Switch,隨后根據(jù)Log主要是查看相關(guān)的Activity

?

十一、必須重視Crash

雖然Monkey測試有部分缺陷,我們無法準確地得知重現(xiàn)步驟, Monkey測試所出現(xiàn)的NullPointException,??都是可以在用戶使用時出現(xiàn)的,?何時出現(xiàn)只是時間問題

理論上來說,? Monkey所有的Crash?都需要在發(fā)布前修復(fù)掉

結(jié)束Monkey進程

執(zhí)行 Monkey 的過程中如果想中途停止 Monkey 程序的運行,需要將 Monkey 的進程殺掉。

1.ps命令查找monkey進程

  $adb shell ps | grep monkey 返回到第一個數(shù)字,即monkey進程號

2.kill命令結(jié)束進程繼

  $adb shell kill -9 進程ID

?最后

?對這些命令都熟悉之后,那么接下來就是綜合對編程語言的應(yīng)用,思考如何用語言去處理這些命令,使得這些命令更加的方便于測試工作。github

?

轉(zhuǎn)載于:https://www.cnblogs.com/helloTerry1987/p/11029190.html

總結(jié)

以上是生活随笔為你收集整理的android monkey压力测试(二)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。