Android Monkey壓力測試

一. JAVA環境的搭建

  1. 安裝jdk-8u151-windows-x64,能夠到官網或者應用中心下載.
  2. JAVA環境變量的搭建:
    • 在"個人電腦"-"屬性"-"高級"-"環境變量"中,點擊新建,填寫變量名爲JAVA_HOME,變量值爲JAVA安裝的路徑.
      ALT
    • 在系統變量中找到Path,點擊編輯,添加%JAVA_HOME%\bin;後點擊肯定.
      ALT
    • 而後完成後,按win+r健打開運行,輸入cmd,在cmd運行界面輸入Java -version或Java檢查是否有安裝成功.
C:\Users\Administrator>java -version
java version "1.8.0_91"
Java(TM) SE Runtime Environment (build 1.8.0_91-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.91-b14, mixed mode)
C:\Users\Administrator>java
用法: java [-options] class [args...]
           (執行類)
   或  java [-options] -jar jarfile [args...]
           (執行 jar 文件)
其中選項包括:
    -d32          使用 32 位數據模型 (若是可用)
    -d64          使用 64 位數據模型 (若是可用)
    -server       選擇 "server" VM
                  默認 VM 是 server.
    -cp <目錄和 zip/jar 文件的類搜索路徑>
    -classpath <目錄和 zip/jar 文件的類搜索路徑>
                  用 ; 分隔的目錄, JAR 檔案
                  和 ZIP 檔案列表, 用於搜索類文件。
    -D<名稱>=<值>

二. Android SDK工具安裝

  1. 下載GoogleAndroidSDK,而且安裝
  2. 配置Android環境變量,與JAVA同樣,新建ANDROID_HOME環境變量,在Path編輯加入%ANDROID_HOME%\tools;%ANDROID_HOME%\platform-tools;
    ALT
    ALT
  3. 打開Android SDK Manager,選擇默認下載的工具包
    通常默認是選擇Tools底下前3個,而後是Android最新的SDK Platform,Android TV Intel x86 Atom System Image,Google Play Intel x86 Atom System Image,Google APIs Intel x86 Atom System Image(而後悲劇的發現這幾個是訪問dll.google.com的,而後華麗麗的被牆了,無奈就選擇低版本的Intel x86 Atom System Image下載,能夠順利下載而且能打開avd...)
    因此,能夠按需選擇要下載的api,不必定下載最新的Android版本
    ALT
    ALT
  4. SDK環境變量檢查
    上面的tool下載完後,打開cmd界面,輸入adb,若是可以成功返回,則說明安裝和配置成功
    ALT

三. 啓動一個Android環境

  • 打開AVD manager,,在Device Definitions,選擇其中一臺設備,點擊create AVD
    ALT
  • 而後按照提示操做後,在Android Virtual Device中生成設備後,點擊右邊的start
    ALT
  • 而後生成模擬器
    ALT
    注意:若是在生成模擬器的時候,報錯emulator: ERROR: x86 emulation currently requires hardware acceleration ?能夠在SDK manager最下面的extras中找到intel x86 emulator accelerator(HAXM installer)來安裝.而後若是在sdk manager中顯示haxm installer not compatible with windows,則須要在intel官網下載,地址:https://software.intel.com/sites/default/files/managed/c8/be/haxm-windows_v6_2_1.zip ,而後解壓後放在 sdk\extras\intel\Hardware_Accelerated_Execution_Manager 文件夾中安裝,則能夠打開模擬器.

四. Android Monkey壓力測試

  • 打開模擬器中,打開cmd界面,輸入adb devices,看是否鏈接了模擬器設備
C:\Users\Administrator>adb devices
List of devices attached
emulator-5554   device
  • 而後輸入adb shell進入到shell界面
C:\Users\Administrator>adb shell
root@generic_x86:/ \#
  • 選擇com.android.email這個程序做爲對象進行MonkeyTest,在shell界面中輸入
\#monkey -p com.android.email -v 100
其中,-p表示指定一個或者多個包,沒有這個參數則不指定包;-v表示指定反饋信息級別,100表示啓動該app併發送100個隨機事件
root@generic\_x86:/ \# monkey -p com.android.email -v 100
WARNING: linker: libdvm.so has text relocations. This is wasting memory and is a
 security risk. Please fix.
:Monkey: seed=1518372908154 count=100
:AllowPackage: com.android.email
:IncludeCategory: android.intent.category.LAUNCHER
:IncludeCategory: android.intent.category.MONKEY
// Event percentages:
//   0: 15.0%                      觸摸事件百分比,即參數–pct-touch
//   1: 10.0%                      滑動事件百分比,即參數–pct-motion
//   2: 2.0%                        縮放事件百分比,即參數–pct-pinchzoom 
//   3: 15.0%                      軌跡球事件百分比,即參數–pct-trackball 
//   4: -0.0%                       屏幕旋轉事件百分比,即參數–pct-rotation 
//   5: 25.0%                      基本導航事件百分比,即參數–pct-nav 
//   6: 15.0%                      主要導航事件百分比,即參數–pct-majornav 
//   7: 2.0%                        系統事件百分比,即參數–pct-syskeys 
//   8: 2.0%                        Activity啓動事件百分比,即參數–pct-appswitch 
//   9: 1.0%                        鍵盤翻轉事件百分比,即參數–pct-flip 
//   10: 13.0%                    其餘事件百分比,即參數–pct-anyevent
:Switch: \#Intent;action=android.intent.action.MAIN;category=android.intent.categ
ory.LAUNCHER;launchFlags=0x10200000;component=com.android.email/.activity.Welcom
e;end
    // Allowing start of Intent { act=android.intent.action.MAIN cat=[android.in
tent.category.LAUNCHER] cmp=com.android.email/.activity.Welcome } in package com
.android.email
:Sending Touch (ACTION\_DOWN): 0:(176.0,915.0)
:Sending Touch (ACTION\_UP): 0:(172.51561,943.72437)
:Sending Trackball (ACTION\_MOVE): 0:(-2.0,1.0)
    // Allowing start of Intent { act=android.intent.action.EDIT dat=content://u
i.email.android.com/settings cmp=com.android.email/.activity.setup.AccountSettin
gs } in package com.android.email
    // Allowing start of Intent { cmp=com.android.email/.activity.setup.AccountS
etupBasics } in package com.android.email
    // activityResuming(com.android.email)
:Sending Touch (ACTION\_DOWN): 0:(559.0,844.0)
:Sending Touch (ACTION\_UP): 0:(494.87607,782.93036)
:Sending Touch (ACTION\_DOWN): 0:(717.0,136.0)
:Sending Touch (ACTION\_UP): 0:(705.3432,121.778885)
:Sending Trackball (ACTION\_MOVE): 0:(-4.0,4.0)
:Sending Touch (ACTION\_DOWN): 0:(658.0,1007.0)
:Sending Touch (ACTION\_UP): 0:(638.68384,998.59467)
:Sending Touch (ACTION\_DOWN): 0:(443.0,542.0)
:Sending Touch (ACTION\_UP): 0:(419.82828,558.96)
:Sending Touch (ACTION\_DOWN): 0:(280.0,666.0)
:Sending Touch (ACTION\_UP): 0:(275.95532,654.7703)
:Sending Touch (ACTION\_DOWN): 0:(18.0,979.0)
:Sending Touch (ACTION\_UP): 0:(14.776767,980.841)
:Sending Trackball (ACTION\_MOVE): 0:(0.0,-3.0)
:Sending Touch (ACTION\_DOWN): 0:(253.0,1043.0)
:Sending Touch (ACTION\_UP): 0:(255.71083,1034.4076)
:Sending Trackball (ACTION_MOVE): 0:(2.0,3.0)
:Sending Trackball (ACTION\_UP): 0:(0.0,0.0)
:Sending Touch (ACTION\_DOWN): 0:(388.0,699.0)
:Sending Touch (ACTION\_UP): 0:(396.3903,699.357)
:Sending Trackball (ACTION\_MOVE): 0:(0.0,-1.0)
Events injected: 100
:Sending rotation degree=0, persist=false
:Dropped: keys=0 pointers=5 trackballs=0 flips=0 rotations=0
\## Network stats: elapsed time=2857ms (0ms mobile, 0ms wifi, 2857ms not connected)
// Monkey finished
  • com.android.email最後停留的頁面
    ALT
    注意:也能夠退出shell界面後,能夠直接輸入adb shell monkey -p com.android.email -v 100 > d:\monkeytest.txt將結果導入到txt文件中

五. 分析測試報告

  1. 注意seed值
    :Monkey: seed=1518372908154 count=100 沒有指定seed值是,會隨機生成,能夠經過設定seed值使得測試產生的隨機操做序列徹底相同java

  2. 查找有無日誌中的無響應問題和崩潰問題android

    • 無響應問題搜索"ANR"
    • 奔潰問題搜索"CRASH"
    • 內存泄漏問題搜索"GC",並進一步分析
    • 異常問題搜索"Exception",如出現NullpointerException,則出現空指針,須要重視

    有這類的狀況再進行具體分析shell

相關文章
相關標籤/搜索