概念解析
1、为什么开展压力测试?
提高产品稳定性、提高产品留存率
2、什么时候开展压力测试?
首轮功能测试通过后、下班后的夜间进行
3、自动化场景----->模拟事件流
4、ADB------->Android Debug Bridge 安卓调试桥
5、MonkeyScript
是一组可以被Monkey识别的命令集合、可以完成重复固定的操作
6、Monkeyrunner
提供了一系列的API、可以完成模拟事件流及截图操作
通过API定义特定命令和事件的控制设备
7、Monkey:
在adb shell中,生成用户或系统的伪随机事件
8、Monkey APIs
MonkeyRunner:用来连接设备
MonkeyDevice:提供安装卸载应用,发送模拟事件流
MonkeyImage:完成图像保存、及对比的操作
9、MonkeyRunner的测试类型
多设备控制------功能测试-------回归测试
10、CRASH
崩溃,应用程序在使用中异常崩溃
11、ANR:
Application Not Responding 应用程序相应超时
12、APP速度测试场景
1、测试方法:掐表计时法、打印日志计时法、图像分析计时法、Hook方案计时法、网络分析法
2、冷启动、热启动
Android系统中的activity退出之后,进程没有关闭,再次打开时会从已有进程中创建activity,是为“热启动”,
若打开APP时没有进程,则会先创建一个进程再打开activity,是为冷启动
下载链接
下载Python
www.python.org/downloads/
下载Android sdk
www.android-studio.org
实践部分 :
一、准备Android SDK环境
二、准备
1、确认手机和电脑已经成功连接
adb devices 出现手机唯一标识名
2、安装测试APP
adb install package.apk
3、压测过程
adb shell monkey 1000
4、获取APP包名
Mac笔记本上 adb logcat | grep START grep 把前一个命令的输出,作为后一个命令的输入
windows电脑上 adb shell dumpsys window w | findstr \/ | findstr name=
(打开需要测试的APP)
5、压测过程 给指定的包打压力
adb shell monkey -p package 1000
三、monkey高级参数
1、throttle参数
指定事件间隔:adb shell monkey --throttle <milliseconds>
例子:adb shell monkey -p caom.android.calculator2 --throttle 1000 50
(1000毫秒 50个事件 对于计算机)
2、seed参数
指定随机生成数的seed值 adb shell monkey -s <seed> <event-count>
例:adb shell monkey -p cam.calculator2 -s 100 50
(seed 值为100 对计算器随机进行50次操作)
3、触摸事件
设定触摸事件的百分比 adb shell monkey --pct-touch <percent>
例子:adb shell monkey -v -p com.android.bbkcalculator --pct-touch 100 80
(执行百分之百的touch事件,共执行80次 -v 是显示所执行的操作。
4、动作事件
设定动作百分比 adb shell monkey --pct-motion <percent>
5、轨迹球事件
设定轨迹球时间的百分比:adb shell monkey --pct-trackball <percent>
6、基本导航事件
设定基本导航事件,输入设备的上、下、左、右
adb shell monkey --pct-nav <percent>
7、主要导航事件
主要导航事件的百分比, 包括兼容中间键、返回键、菜单键
adb shell monkey --pct-maiornav <percent>
8、系统导航事件
设定系统导航事件百分比,HOME BACK 、拨号键、音量键、
adb shell --pct-syskeys <percent>
9、启动Activity事件
adb shell monkey --pct-appswitch <percent>
10、 不常用事件
设定不常用事件的百分比
adb shell monkey --pct-anyevent <percent>
11、崩溃事件
忽略崩溃和异常
adb shell monkey --ignore-crashes <event-count>
12、超时时间
忽略超时间
adb shell monkey --ignore-timeouts <event-count>
例子:
adb shell monkey -v -p com.android.bbkcalculator -s 555 --pct-trackball 20 --pct-touch 60 --ignore-crashes --ignore-timeouts 100
13、crash结果析取 、ANR结果析取
命令:
adb shell monkey -h
帮助文件
adb shell monkey -v -v -v
打印日志输出信息
adb shell monkey -f (脚本名、脚本地址) 脚本循环次数
adb shell monkey -c <main-category> <event-count>
如果不指定任何类别,monkey将选择Intent.CATEGORY_LAUNCHER和Intent.CATEGORY_monkey里面的Activity
adb shell/system/bin/monkey
monkey将以无反馈方式启动,
常用基础命令
1、adb install package-debug.apk 安装应用
或者:
adb install C:\Users\lvyz\desktop\app-release.apk
2、adb shell am start -n com.package.app/.ui.MainActivity 启动应用
3、adb shell pm list packages 查看机器的安装包
4、adb uninstall (包名) 卸载安装包