一. JAVA環境的搭建
- 安裝jdk-8u151-windows-x64,可以到官網或者應用中心下載.
- JAVA環境變量的搭建:
- 在"我的電腦"-"屬性"-"高級"-"環境變量"中,點擊新建,填寫變量名為JAVA_HOME,變量值為JAVA安裝的路徑.
- 在系統變量中找到Path,點擊編輯,添加%JAVA_HOME%\bin;后點擊確定.
- 然后完成后,按win+r健打開運行,輸入cmd,在cmd運行界面輸入Java -version或Java檢查是否有安裝成功.
- 在"我的電腦"-"屬性"-"高級"-"環境變量"中,點擊新建,填寫變量名為JAVA_HOME,變量值為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工具安裝
- 下載GoogleAndroidSDK,並且安裝
- 配置Android環境變量,與JAVA一樣,新建ANDROID_HOME環境變量,在Path編輯加入%ANDROID_HOME%\tools;%ANDROID_HOME%\platform-tools;
- 打開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版本
- SDK環境變量檢查
上面的tool下載完后,打開cmd界面,輸入adb,如果能夠成功返回,則說明安裝和配置成功
三. 啟動一個Android環境
- 打開AVD manager,,在Device Definitions,選擇其中一台設備,點擊create AVD
- 然后按照提示操作后,在Android Virtual Device中生成設備后,點擊右邊的start
- 然后生成模擬器
注意:如果在生成模擬器的時候,報錯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最后停留的頁面
注意:也可以退出shell界面后,可以直接輸入adb shell monkey -p com.android.email -v 100 > d:\monkeytest.txt將結果導入到txt文件中
五. 分析測試報告
-
注意seed值
:Monkey: seed=1518372908154 count=100 沒有指定seed值是,會隨機生成,可以通過設定seed值使得測試產生的隨機操作序列完全相同 -
查找有無日志中的無響應問題和崩潰問題
- 無響應問題搜索"ANR"
- 奔潰問題搜索"CRASH"
- 內存泄漏問題搜索"GC",並進一步分析
- 異常問題搜索"Exception",如出現NullpointerException,則出現空指針,需要重視
有這類的情況再進行具體分析