1. Monkey测试操作:
1》 通过adb shell指令进入手机终端
2》 输入 Monkey 1000 指令对手机进行1000次操作,做为一次压力测试。
2. Monkey指令可用参数
参数 | 含义 |
-v | 在控制台打印压力测试时的相关数据 |
-p xx | 对指定的包名应用进行压力测试 |
-s xx | 对指定种子的随机序列进行测试。能保证压力测试重现 |
--throttle xx | 压力测试时,每个随机事件间的时间间隔(毫秒) |
--pct-touch xx | 压力测试过程中触摸事件所占比例 |
--ignore-crashes | 压力测试中出现崩溃,忽略并继续进行 |
--ignore-timeouts | 压力测试中出现超时,忽略并继续进行 |
3. 自定义压力事件(需要书写MonkeyScript脚本)
1。 monkey中提供的函数如下:
- DispatchPointer(long downTime, long eventTime, int action, float x, float y, float pressure, float size, int metaState, float xPrecision, float yPrecision, int device, int edgeFlags)
- DispatchTrackball(long downTime, long eventTime, int action, float x, float y, float pressure, float size, int metaState, float xPrecision, float yPrecision, int device, int edgeFlags)
- DispatchKey(long downTime, long eventTime, int action, int code, int repeat, int metaState, int device, int scancode)
- DispatchFlip(boolean keyboardOpen)
- DispatchPress(int keyCode)
- LaunchActivity(String pkg_name, String cl_name)
- UserWait(long sleeptime)
- LongPress(int keyCode)
2. 例如:
type= user
count= 49
speed= 1.0
start data >>
LaunchActivity(com.example.android.notepad, com.example.android.notepad.NotesList)
DispatchPress(KEYCODE_DPAD_DOWN)
LongPress(KEYCODE_DOWN)
DispatchPress(KEYCODE_BACK)
其中 type值可以任意,源码中没有对该值做任何处理,count的设定也是无效的,所以前四行可以作为模板。
3. 运行脚本
monkey -f filename count
4. MonkeyRunner 进行测试(高级)
MonkeyRunner分为三个模块: MonkeyRunner、MonkeyDevice、MonkeyImage
1. 编写python脚本
2. 使用monkeyrunner filename 运行脚本