文章目录
- [1. adb 模拟案件操作](#1. adb 模拟案件操作)
- [2. adb 性能分析](#2. adb 性能分析)
- [3. app 压力测试](#3. app 压力测试)
-
- [Monkey 工具](#Monkey 工具)
- Monkey作用
- [Monkey 基础用法](#Monkey 基础用法)
-
- Monkey常用参数
- [Monkey 事件选项](#Monkey 事件选项)
- 测试脚本编写思路
- 总结
✨✨✨学习的道路很枯燥,希望我们能并肩走下来!
编程真是一件很奇妙的东西。你只是浅尝辄止,那么只会觉得枯燥乏味,像对待任务似的应付它。但你如果深入探索,就会发现其中的奇妙,了解许多所不知道的原理。知识的力量让你沉醉,甘愿深陷其中并发现宝藏。

本文开始
1. adb 模拟案件操作
操作步骤:
- 开发者模式中,打开【指针位置】设置
- 执行 adb shell input 命令
模拟点击事件:点击某个位置,根据坐标点击对应位置,可以根据指针位置查看x,y位置
bash
adb shell input tap x坐标 y坐标
模拟输入事件
bash
adb shell input text <输入内容>
# 示例
adb shell input text adb命令是什么
模拟滑动时间
【注】移动端左上角坐标(0,0), 右下角是最大;
bash
adb shell swipe <起点x> <起点y> <终点x> <终点y> <滑动时长>
模拟手机按键
官方地址:https://developer.android.com/reference/android/view/KeyEvent
【注】每个硬件对应一个数字,具体查看文档
bash
#返回键:
adb shell input keyevent 4
# Home 键:
adb shell input keyevent 3(置应用于后台运行)
# 音量放大:
adb shell input keyevent 24
# 音量缩小:
adb shell input keyevent 25
2. adb 性能分析
官网地址查看详细的信息:https://developer.android.com/docs
查看当前系统 CPU 使用情况:
bash
adb shell dumpsys cpuinfo
查看当前系统的内存:
bash
adb shell dumpsys meminfo
查看某个应用的内存:
bash
adb shell dumpsys meminfo <应用名>
top命令:查看实时日志
bash
adb shell top
# 查看某个包的一些性能指标
adb shell top |grep "包名"
# 查看某个包的一些性能指标,指定打印时间
# -d 1 :隔一秒打印一下
adb shell top -d 1 |grep "包名"
电池电量
bash
adb shell dumpsys battery
bash
# 当前电池相关状态
Current Battery Service state:
AC powered: true
USB powered: false
Wireless powered: false
Max charging current: 2000000 # 最大充电电流; mA
status: 2 #电池状态:2:充电状态 ,其他数字为非充电状态
health: 2 #电池健康状态:只有数字2表示good
present: true #电池是否安装在机身
level: 61 #电量: 百分比
scale: 100
voltage: 4108 #电池电压
temperature: 353 #电池温度,单位是0.1摄氏度
technology: Li-poly #电池种类
3. app 压力测试
Monkey 工具
- Monkey 是 Google 提供的一个用于稳定性与压力测试的命令行工具
- 可以运行在模拟器或者实际设备中
- Mokey工具会向系统发送伪随机的用户事件对软件进行稳定性与压力测试
Monkey作用
- Monkey 可以像猴子一样上蹿下跳地乱点在手机中
- Monkey为了测试软件的稳定性,健壮性
- Monkey随机点击比顺序点击更容易发现问题
Monkey 基础用法
- 在命令提示符中输入 adb devices 查看有无连接的设备
- 确认有无设备连接
- 获取 要Monkey的app 的包名
- 使用 monkey 命令:adb shell monkey 100
adb shell monkey [参数] {随机发送事件数}
Monkey常用参数
Monkey命令:
bash
adb shell monkey [参数] {随机发送事件数}
-v :用于指定反馈信息级别,总共分 3 个级别
bash
adb shell monkey -v -v -v 10
-s < seednumber >:用于指定伪随机数生成器的 seed(种子)值
【注】使用相同的seed值,可以复现重复场景,当遇到bug或问题时;
bash
# -s <seednumber>
# 指定seed值
adb shell monkey -s 123 10
throttle: 设置每个事件结束后的间隔时间
【注】人的快操作时间大概是300mm
bash
# --throttle <milliseconds>
# 模拟人操作每个事件时间的速度:指定300mm
adb shell monkey --throttle 300 10
-p: 用于约束限制,用此参数指定一个或多个包
bash
# 指定一个包monkey
adb shell monkey -p com.android.browser 10
# 指定多个包Monkey
adb shell monkey -p com.android.browser -p com.android.xxx 10
其他参数
bash
--ignore-crashes:忽略崩溃
--ignore-timeouts:忽略超时
--ignore-security-exceptions:忽略安全异常
--ignore-native-crashes:忽略本地代码导致的崩溃异常
--monitor-native-crashes:跟踪本地方法的崩溃问题
Monkey 事件选项
Monkey时指定操作事件所占的百分比
【注】所有类型属性比例加起来不能超过 100
bash
--pct-touch:触摸事件
--pct-motion:滑动事件
--pct-appswitch:activity 之间的切换
--pct-pinchzoom:缩放事件
--pct-rotation:屏幕旋转事件
--pct-flip:键盘事件
--pct-anyevent:任意事件
测试脚本编写思路
bash
# 1. 确定测试 app 的包名:
adb shell dumpsys activity | grep mFocusedActivity
# 2. 执行测试 8 小时:下列是需要计算的大概次数
需要跑的时间/命令之间的时间间隔=要执行的次数 8*60*60*1000/300 = 96000
# 3. 日志级别:3 个 v
确定app中常用的操作类型和比例:滑动、触摸、键盘、系统按键、activity切换
# 4. 确定 seed 值:-s 12345
# 5. 确定调试选项:
--ignore-crashes --ignore-timeouts --ignore-security-exceptions
# 6. 重定向日志到文件中 >
示例Monkey测试脚本
bash
adb shell monkey -p app包名 --pct-touch 30 --pct-motion 30 \
--pct-syskeys 10 --pct-appswitch 20 --pct-flip 5 --pct-anyevent 5 \
-s 12225 --throttle 300 --ignore-crashes --ignore-timeouts \
--ignore-security-exceptions -v -v -v 实际需要Monkey的次数 > monkey_log.txt
总结
✨✨✨各位读友,本篇分享到内容是否更好的帮助你理解,如果对你有帮助给个👍赞鼓励一下吧!!
🎉🎉🎉世上没有绝望的处境,只有对处境绝望的人。
🎉🎉🎉一遇挫折就灰心丧气的人,永远是个失败者。而一向努力奋斗,坚韧不拔的人会走向成功。
感谢每一位一起走到这的伙伴,我们可以一起交流进步!!!一起加油吧!!!
