Monkey压力测试
Monkey工具可以模拟各种按键、触屏、轨迹球、导航、Activity事件。此工具的用法如下:
adb shell monkey [options] <event-count> // 待定事件
adb shell monkey -p packageName -v number // number 随机事件的次数
为了进行全面测试,需要在Activity中加入程序入口。配置如下:
<activity>
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
<!--Monkey压力测试-->
<category android:name="android.intent.category.MONKEY"/>
</intent-filter>
</activity>
需要注意的是针对单个应用的压力测试,Monkey会阻止对其它包的调用,当然这样针对单个应用测试就无法检测应用间的交互可能存在的Bug。为了测试系统应用间调用互换与冲突带来的问题,可以针对Monkey测试添加如下方法:
#adb shell monkey -p -v number// 如:number为100000
在进行Monkey压力测试过程中,Monkey会因为应用奔溃,比如网络异常或者一些无法处理的异常而崩溃。这时候我们在对网络应用进行压力测试时忽略网络超时情况。方法如下:
#adb shell monkey -p packageName -v number --ignore-timeouts
如果希望忽略应用奔溃的的情况方法如下:
#adb shell monkey -p packageName -v number --ignore-crashes
在进行压力测试时,如发生异常情况,如系统奔溃,那么Android会自动打印出相关的系统信息(如内存分配等)供开发者分析。