monkey压力测试

83 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第14天,点击查看活动详情

这篇文章接讲解一下app是怎么做性能测试的,主要是用monkey命令来实现随机触屏事件,通过设置点击的频率,范围,根据手机页面的具体情况来判断app性能检测听过还是不通过。

一、 monkey 特点

  1. android 自带的工具

  2. monkey 用来做 android 系统的压力测试

  3. monkey 可以直接通过 adb 命令直接调用

  4. monkey 可以同时测试多个 app

  5. monkey 可以定义每次测试的顺序

  6. monkey 可以输出日志级别

  7. monkey 日志分析测试结果(exception,error,crash,anr)

  8. monkey 可设置事件操作的百分比

二、 monkey 测试事件

  1. –pct-touch 事件

例: adb shell monkey -p com.example.administrator.myapplication --pct-touch 50 -v -v -v 100

  1. –pct-ratation 事件

  2. –pct-motion 事件

实例:adb shell monkey –p com.tencent.qqlite –v –v –v –pct-touch 10 –pct-motion 10

–pct-rotation 10 –pct-syskeys 10 –pct-appswitch 10 –pct-pinchzoom 10 100

0:触摸事件百分比

参数--pct-touch

1:滑动事件百分比

参数--pct-motion

2:缩放事件百分比

参数--pct-pinchzoom3 / 3

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

monkey 导常参数

adb shell monkey -p com.android.calculator2 -p com.android.providers.settings

--pct-touch 10 --pct-rotation 20 --hprof

--ignore-crashes

–ignore-timeouts -v -v -v -s

20181215 10000

  1. Monkey 启动命令:adb shell monkey

  2. Monkey 调用 apk 包名

-p 定义包名

1000 为发送事件数

命令:adb shell monkey –p 名包 1000

  1. Monkey 定义日志的级别

-v

仅提供启动提示、测试完成和最终结果等少量信息

命令:Adb shell monkey –p 名包 –v 50

  1. Monkey 定义日志级别 –v –v

提供较为详细的日志,包括每个发送到 Activity 的事件信息

例:adb shell monkey –p 包名 –v –v 50

  1. Monkey 定义日志级别 –v –v -v

最详细的日志,包括了测试中选中/未选中的 Activity 信息

例:adb shell monkey –p 包名 –v –v -v 502 / 3

  1. Monkey 测试多个 app

命令:adb shell monkey -p com.tencent.mm -p com.tencent.qqlite -p

com.taobao.taobao -v -v -v 10

7.Monkey 定义 seed 值 -s

例:adb shell monkey -p com.tencent.mm -s 20180814 -v 10

  1. Monkey 定义延时 –throttle

例: adb shell monkey -p com.taobao.taobao --throttle 200 -v 100