㈠ android測試monkey什麼意思
Monkey是Android中自帶的用來進行壓力測試的一個命令行工具。
用Monkey進行App壓力測試的結果有三種。
1、正常。
2、Crash :程序崩潰。
3、ANR:程序無響應。
第一步:搭建環境:主要是安裝和搭建java和sdk環境,說白了,對我們安卓開發來說,只要搭建好了Android開發環境,Monkey測試環境基本就是OK的了。
第二步:准備好要測試的項目,比如可以是一個.apk安裝包,也可以是已經安裝到手機上的軟體 。
第三步:連接上Android測試設備,可以是模擬器,當然也可以是手機,通過adb 命令對測試項目進行Monkey測試。
當然這一測試也是存在著優缺點的。
優點:功能強大, 主要用於壓力和穩定性測試。缺點:本身不提供截屏功能,本身無法完成錄制、回放的功能(不過都可以借用其他的開源工具來實現Monkey的截屏和錄制等功能)。
㈡ adb命令和monkey總結
移動動測測試試基基礎礎
adb常常用用命命令令總總結結
1. adb / adb -help 使用幫助
2. adb devices 查看連接到電腦的設備
3. adb install example.apk 安裝程序
4. adb -s emulator-5554 install example.apk 安裝程序到指定的設備上(模擬器)
5. adb pull <remote> <local> 將設備上文件保存到電腦上
6. adb push <local> <remote> 將本地的文件上傳到設備上
7. adb start-server 重啟adb服務
8. adb kill-server 殺掉adb服務
9. adb shell 進入命令行交互模式,進入之後可以像在linux輸入shell命令一樣來操作手機設備(android本來就是基於linux的)
10. adb logcat <信息顯示優先順序參數> 顯示日誌信息 優先順序從低到高順序排
11.adb shell cat /proc/cpuinfo 查看手機CPU,
12.adb shell ps 查看進程信息
Monkey命令實戰
1.Monkey是什麼?
Monkey是Android中的一個命令行工具,可以運行在模擬器或者實際設備中
向系統發送偽隨機的用戶事件流(按鍵輸入、觸摸屏輸入、手勢輸入等)
實現對正在開發的應用程序進行測試
Monkey測試之一種為了測試軟體的穩定性、健壯性的快速有效的方式
2.Monkey的特徵
測試對象僅為應用程序包,有一定的局限性(不能對源碼進行測試)
Monkey測試使用的事件流數據是隨機的,不能進行自定義
可以對MonkeyTest對象,事件數量,類型、頻率等進行設置
3. Monkey使用
adb shell monkey [options]
adb shell monkey -p 包名 -v 500
-p 指定測試程序包名
-v 顯示默認程度的信息
500 事件數設定為500
例如: adb shell monkey -p com.android.calculator2 -v 500
4. Monkey命命令令結結果果分分析析
1. 找monkey裡面那個出錯的地方
2. 查看monkey裡面出錯前的一些事件動作,並手動執行該動作
3. 若以上步驟還不能找出,使用之前執行的monkey命令再執行一遍,seed值要一樣(seed值一樣,發送的偽隨機事件流也一樣)
4. 注意第一個switch以及其他信息
seed值和,不同event類型比例
5.Monkey測試的目的
1. ANR問題:在日誌中搜索「ANR」
2. 崩潰的問題:在日誌中搜索「Exception」
3. ANR:Application Not Responding,在Android中,如果應該程序有一段時間響應不夠靈敏,系統會向用戶顯示一個對話框,這個對話框稱作應
用程序無響應對話框。用戶可以選擇「等待」而讓程序繼續運行,也可以選擇「強制關閉」應用。 好的程序應該能流暢運行,不能出現ANR問題
Monkey命令進階
1.運行時機
產品功能穩定之後進行
2. monkey更更復復雜雜的的命命令令
adb shell monkey -p packagename -v -v -- throttle 600 88
-v :代表整個Monkey運行的次數,多個 -v 可以定製Monkey報告的等級
--throttle 600 : 每個操作都間隔時間600ms
88 :執行的事件數
adb shell monkey -p packagename -v -v --pct-touch 50 --pct-trackball 30 --throttle 600 88
adb shell monkey -p packagename -v -v --pct-touch 50 --pct-trackball 30 -s 1234 --throttle 600 88
--pct-touch :設置在整個過程中點擊操作所佔的百分比
--pct-trackball: 設置滾輪在所用操作中的百分比
--ignore-crashes:崩潰之後繼續測試,重新啟動程序
--ignore-timeouts:遇到超時,也繼續執行
-v:
命令行的每一個-v將增加反饋信息的級別
Level 0(預設值)除啟動提示、測試完成和最終結果之外,提供較少信息
Level 1提供較為詳細的測試信息,如逐個發送到Activity的事件
Level 2提供更加詳細的設置信息,如測試中被選中的或未被選中的Activity
更多monkey命令:http://xqtesting.blog.51cto.com/4626073/1430654
實測命令(經常用到的,可以參考):
adb shell monkey -p com.xx.xxx(包名)--throttle 500 --ignore-crashes --igonre-timeouts --ignore-security-exceptions --igonre-native-crashes --
monitor-native-crashes -v -v -v 1000000 >> D:\monkeyScreenLog.log
說明:忽略crashes、timeout等是為了出問題是monkey繼續運行下去,希望能抓取更多的出錯信息
3.可可以以練練習習使使用用的的apk包名
com.android.calculator2
com.android.browser
com.android.music
com.android.email
com.android.contacts
monkey也可以進行壓力測試。
可靠性測試
穩定性測試:長時間使用軟體不會出現無響應
monkey:安卓系統常用穩定性和壓力測試工具
語法:monkey -p 包名 --throttle 數值(間隔時間,單位ms) -v 數值(操作次數)
monkey -p com.emicro.emicrophone --throttle 500 -v 300
百分比事件
0:點擊事件 參數--pct-touch
1:滑動事件 --pct-motion
2:縮放事件 --pct-pinchzoom
3:軌跡球事件 --pct-trackball
4:屏幕旋轉 --pct-rotation
5:基本導航事件 --pct-nav
6:主要導航事件 --pct-majornav
7:系統按鍵事件 --pct-syskeys
8:activity啟動事件 --pct-appswitch
9:鍵盤喚出隱藏事件 --pct-flip
10:其他事件 --pct-anyevent
異常測試 :斷電,斷網,異常退出。。。
adb 調試橋
adb devices 檢查設備是否連接
adb install apk文件路徑文件名
adb uninstall 包名 卸載
aapt d badging apk文件路徑文件名
adb shell 進入安卓系統
㈢ ADB工作原理
Android 調試橋 (adb) 是一種功能多樣的命令行工具。它可以讓你與設備進行通信,adb 命令可用於執行各種設備操作(例如安裝和調試應用),並提供對 Unix shell(可用來在設備上運行各種命令)的訪問許可權,它是一種C/S架構的程序,包括以下三個組件:
客戶端: 主要用於發送命令,adb client在開發機器上運行,你可以通過發出 adb 命令從命令行終端調用客戶端,它主要的工作是:解析像:push、shell、install等命令的參數,做必要預處理,然後轉移為指令或數據,發送給adb server。
守護程序 (adbd): 是運行在Android設備(真機/模擬器)後台的一個進程,它是由init進程啟動的,並且系統一開機就已經啟動,它的主要作用是處理來自 adb server的命令行請求,然後獲取對應Android設備的信息,再將結果返回給adb server。
伺服器 (adb server): 是運行在PC上的一個後台進程,它有兩個作用:
當啟動某個 adb 客戶端時,該客戶端會先檢查是否有 adb 伺服器進程正在運行,如果沒有,它會先啟動伺服器進程,伺服器在啟動後會與綁定和監聽PC上的 TCP 埠 5037 ,並處理 adb 客戶端發出的命令(所有 adb 客戶端通信均通過與PC上埠 5037 建立TCP連接通信)如下圖:
然後,adb server會與所有正在運行的設備建立連接,TCP連接方式下,它通過掃描 5555 到 5585 之間(該范圍供前 16 個模擬器使用)的奇數號埠查找模擬器,伺服器一旦發現 adb 守護程序 (adbd),便會與相應的埠建立連接,請注意,每個模擬器都使用一對按順序排列的埠(用於控制台連接的偶數號埠和用於 adb 連接的奇數號埠)
通過查看埠,可以看到adb server已在 5037 埠監聽 'LISTENING' 。
Client通過發送指令的方式,給到adb server端,adb server端進行判定,是否需要轉發到adbd進行處理。
㈣ android壓力測試工具有哪些,各有什麼特點。有文檔更好,兄弟我想研究下。
最近在Android程序測試過程中接觸到了自動化測試方法,對其中的一些工具、方法和框架做了一些簡單的整理,其中包括android測試框架、CTS、Monkey、Monkeyrunner其它test tool等等。因接觸時間很短,很多地方有不足之處,希望能和大家多多交流和指點在這里簡單對monkey做簡單的介紹吧。
一、 什麼是Monkey
Monkey是Android中的一個命令行工具,可以運行在模擬器里或實際設備中。它向系統發送偽隨機的用戶事件流(如按鍵輸入、觸摸屏輸入、手勢輸入等),實現對正在開發的應用程序進行壓力測試。Monkey測試是一種為了測試軟體的穩定性、健壯性的快速有效的方法。
二、 Monkey的特徵
1、測試的對象僅為應用程序包,有一定的局限性。
2、 Monky測試使用的事件流數據流是隨機的,不能進行自定義。
3、可對MonkeyTest的對象,事件數量,類型,頻率等進行設置。
三、Monkey的基本用法
基本語法如下:
$ adb shell monkey [options]
如果不指定options,Monkey將以無反饋模式啟動,並把事件任意發送到安裝在目標環境中的全部包。下面是一個更為典型的命令行示例,它啟動指定的應用程序,並向其發送1500個偽隨機事件:
$ adb shell monkey -p your.package.name -v 1500
$ monkey -p(package的意思) 指定文件名 -v(測試的次數和頻率) number(次數)
四、Monkey測試的一個實例
通過這個實例,我們能理解Monkey測試的步驟以及如何知道哪些應用程序能夠用Monkey進行測試。
Windows下(註:2—4步是為了查看我們可以測試哪些應用程序包,可省略):
1、 通過eclipse啟動一個Android的emulator
2、 在命令行中輸入:adb devices查看設備連接情況
C:\Documents and Settings\Administrator>adb devices
List of devices attached
emulator-5554 device
3、 在有設備連接的前提下,在命令行中輸入:adb shell 進入shell界面
C:\Documents and Settings\Administrator>adb shell
#
4、 查看data/data文件夾下的應用程序包。註:我們能測試的應用程序包都在這個目錄下面
C:\Documents and Settings\Administrator>adb shell
# ls data/data
ls data/data
com.google.android.btrouter
com.android.providers.telephony
com.android.mms
com.android.providers.downloads
com.android.deskclock
com.android.email
com.android.providers.media
com.android.settings
jp.co.omronsoft.openwnn
com.android.providers.userdictionary
com.android.quicksearchbox
com.android.protips
com.android.browser
com.android.launcher
com.android.term
com.android.speechrecorder
com.android.server.vpn
com.android.defcontainer
com.svox.pico
com.android.customlocale
com.android.development
com.android.soundrecorder
com.android.providers.drm
com.android.spare_parts
com.android.providers.downloads.ui
com.android.fallback
com.android.providers.applications
com.android.netspeed
com.android.wallpaper.livepicker
android.tts
com.android.htmlviewer
com.android.music
com.android.certinstaller
com.android.inputmethod.pinyin
com.android.providers.subscribedfeeds
com.android.inputmethod.latin
com.android.gallery
com.android.systemui
com.android.contacts
com.android.phone
com.android.sdksetup
com.android.calculator2
com.android.packageinstaller
com.android.camera
com.android.providers.settings
com.thestore.main
com.android.providers.contacts
5、 以com.android.camera作為對象進行MonkeyTest
#monkey -p com.android.camera -v 500
其中-p表示對象包 –v 表示事件數量
運行過程中,Emulator中的應用程序在不斷地切換畫面。
按照選定的不同級別的反饋信息,在Monkey中還可以看到其執行過程報告和生成的事件。
註:具體參數的設定可參考:
http://developer.android.com/guide/developing/tools/monkey.html
五、關於Monkey測試的停止條件
Monkey Test執行過程中在下列三種情況下會自動停止:
1、如果限定了Monkey運行在一個或幾個特定的包上,那麼它會監測試圖轉到其它包的操作,並對其進行阻止。
2、如果應用程序崩潰或接收到任何失控異常,Monkey將停止並報錯。
3、如果應用程序產生了應用程序不響應(application not responding)的錯誤,Monkey將會停止並報錯。
通過多次並且不同設定下的Monkey測試才算它是一個穩定性足夠的程序。