常用的adb、monkey指令

常用的adb指令

一、 adb资源指令
二、adb操作指令
三、 adb monkey指令

一、adb资源指令

1、获取包名和activity
adb shell dumpsys window | findstr mCurrentFocus
或者
adb logcat|findstr START
或者
adb shell dumpsys activity | find “mFocusedActivity”
2、查看帮助手册
adb --help
3、查看设备
adb devices
4、列出系统所有包名
adb shell pm list packages
-s 列出系统apk路径及包名
-3 列出用户apk及包名
eg:adb shell pm list packages -s 查看系统的包
eg:adb shell pm list packages -e “要搜索的内容” 查看启动包中搜索的包

二、adb操作指令

1、无线链接:
连接机器,输入abd tcpip 5555;(端口可变)
连接后输入adb connect ip:5555(ip,手机电脑连接同一个wifi,手机wifi处点击更多可以查看ip地址)

补充:夜神模拟器:adb connect 127.0.0.1:62001
补充:取消无线连接:adb disconnect ip:5555

2、电脑传输信息至手机
adb push <本机路径> <手机路径>
在这里插入图片描述
3、手机传输至电脑
adb pull <手机路径> <电脑路径>
4、安装apk
adb install *.apk(apk可直接拉取到操作界面上)
在这里插入图片描述
5、终止adb服务
adb kill-server
启动adb服务
adb start-server
6、adb shell 操作Android端指令
Home键:adb shell input keyevent 3
返回键:adb shell input keyevent 4
调大音量:adb shell input keyevent 24
降低音量:adb shell input keyevent 25

电源键:adb shell input keyevent 26
打开系统设置:adb shell input keyevent 176
切换应用:adb shell input keyevent 187
打开计算器:adb shell input keyevent 210
降低屏幕亮度:adb shell input keyevent 220
提高屏幕亮度:adb shell input keyevent 221

系统休眠:adb shell input keyevent 223
点亮屏幕:adb shell input keyevent 224
打开语音助手:adb shell input keyevent 231

三、adb monkey指令

官方文档:https://www.android-doc.com/tools/help/monkey.html
官方解释:The Monkey is a program that runs on your emulator or device and generates pseudo-random streams of user events such as clicks, touches, or gestures, as well as a number of system-level events. You can use the Monkey to stress-test applications that you are developing, in a random yet repeatable manner.
1、杀掉monkey进程
adb shell
top | grep monkey
这时你就能看到 monkey测试的id了.这时候只要kill掉这个id 就能停止.
kill id.
exit退出
2、指定app测试
指定一个包执行10次:adb shell monkey -p 包名 10
指定多个包执行10次:adb shell monkey -p 包名 –p 包名 10
3、日志显示
用于反馈日志的详细程度级别
(1)adb shell monkey -p 包名 -v 10 // 默认级别,仅提供启动、测试完成和最终结果等少量信息
(2) adb shell monkey -p 包名 -v -v 10 // 提供较为详细的日志,包括每个发送到Activity的事件信息
(3)adb shell monkey -p 包名 -v -v -v 10 // 提供最详细的日志,包括了测试中选中/未选中的Activity信息
4、部分参数详情
(1)忽略超时错误: --ignore-timeouts
(2)忽略crash: --ignore-crashes
(3)忽略权限许可错误: --ignore-security-exceptions
(当应用遇到权限错误的时候,Monkey会停止运行,然后输出
Error: SecurityException while injecting event.如果有这个参数,Monkey会继续运行)

(4)用于指定是否监视并报告应用程序发生崩溃的本地代码: --monitor-native-crashes
(5)触摸事件: --pct-touch
eg:adb shell monkey -p 包名 -v -v -v --pct-touch 100 20 //执行20次100%都为触摸事件
(6)用于指定用户事件的操作间隔时延,单位是毫秒: --throttle
如果不指定这个参数,monkey会尽可能快的生成和发送消息
命令:adb shell monkey -p 包名 --throttle 3000 100

(7)-s ,用于指定伪随机数生成器的seed值
命令:adb shell monkey -p 包名 –s seed值 执行次数
如果seed值相同,则两次Monkey测试所产生的事件序列也相同的,示例:
eg:adb shell monkey -p com.xxx.xxx –s 1234567890123 100
eg:adb shell monkey -p com.xxx.xxx –s 1234567890123 100
(seed值可在输出的日志中查看)
在这里插入图片描述
5、录取日志具体存放操作
adb logcat>D:\log.txt
adb shell monkey -p 包名 -v -v -v 100>E:testlog.txt
举例子:
adb shell monkey -p com.xxx.xxx --pct-touch 100 -v -v -v 200 2>/sdcard/monkey.txt(只输出错误信息)
0 :标准输入
1 :标准输出
2 :标准错误输出
&:后台运行
[>: 重定向,会覆盖原来文件里的内容 ]
[ >>: 重定向,追加到原来文件末尾]
6、日志分析
(1)找到monkey里哪个地方出错
查看Monkey执行的是哪一个Activity,在switch后面找,两个swtich之间如果出现了崩溃或其他异常,可以在该Activity中查找问题的所在。
(2)查看Monkey标准输出的日志里面出错前的一些事件动作,在日志中手动搜索sleeping for xx 寻找需要查看的动作。
sleeping for x milliseconds 这是执行Monkey测试时,throttle设定的间隔时间,每出现一次,就代表一个事件,sending x 就是代表一个操作,如下图的操作,就是个点击事件。
在这里插入图片描述
(3)若以上步骤还不能找出,则可以使用之前一样的seed再执行一遍monkey命令,以便复现
(4)关键字分析
程序无响应:“ANR”
崩溃问题:“CRASH”
其他问题:”Exception”
详细例子:
adb shell monkey -p com.xxx.xxx(app包名) --throttle 100 --ignore-crashes(忽略崩溃可设置) --ignore-timeouts (忽略超时可设置) --ignore-security-exceptions(索引越界) --ignore-native-crashes(忽略本地崩溃) --monitor-native-crashes(监控本地崩溃) -v -v -v 100>D:\log.txt

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章