一、APP的压测实践
准备Android sdk环境
准备python环境
step1:
在手机开发者选项中,讲usb调试选上
step2:确认手机和电脑连接
adb devices
step3:安装APP
adb install akita_1.4.15.apk
step4:随机事件(未定义到某个包上)
adb shell monkey 1000
step5:获取包名
adb logcat |grep START :抓取日志中包含有START字符的log信息,打开(或关闭)要测试的包,在日志中查找相关名称
step6:给指定包打压力
adb shell monkey -p com.dhms2 1000
二、monkey高级参数应用
1.--throttle 为事件设置间隔时间
adb shell monkey -p com.dhms2 --throttle 1000 100
以上命令代表,发生100个事件,每个事件间隔1000毫秒(1s)
2.seed参数 指定随机生成数的seed值(每一个seed值产生一个随机的操作序列,seed值相同,操作序列相同)
adb shell monkey -p com.dhms2 -s <seed> <event-count>
seed值 可以自行设置 ,需要重新复现时,再复制这个seed值即可,在日志中能看到一组随机操作序列的seed值
要达到相同操作结果,需要把程序恢复到与之前相同的开始状态
3.触摸事件百分比
adb shell monkey -p com.dhms2 --pct-touch <percent>
0:--pct-touch 触摸
1:--pct-motion 动作事件
2.--pct-pinchzoom 缩放
3.--pct-trackball 轨迹球
4.--pct-rotation 屏幕旋转
5.--pct-nav 基本导航事件百分比、输入设备的上下左右
6:--pct-magiornav 主要导航事件、中间键、返回键、菜单按键
7.--pct-syskeys 系统导航事件、主要手机硬件上 home、back、拨号键、音量键
8.--pct-appwitch 启动activity事件,一个系统中有多个activity事件,设置这个百分比轮流切换启动各个
9.--pct-flip 键盘翻转
10.--pct-anyevent 其他
4.忽略崩溃和异常
adb shell monkey --ignore-crashes <event-count>
忽略后,会重新调用程序开始运行
5.忽略超时事件(ANR)
adb shell monkey --ignore-timeouts <event-count>
三、crash结果析取
四、ANR结果析取
监控日志过程中,出现直接看log
手动操作过程可在手机中看到log信息
adb shell 进入手机
cd /data/anr/
ls 有个trace.txt文件
more trace.txt 查看该文件内容