常用adb命令 monkey的使用,以及自动化脚本的编写

Monkey
地址:
https://developer.android.google.cn/studio/test/monkey
介绍:Monkey 是一个在模拟器或设备上运行的程序,可生成伪随机用户事件(例如点击、轻触或手势)流以及很多系统级事件。使用 Monkey 以随机且可重复的方式对正在开发的应用进行压力测试。

https://www.bilibili.com/video/BV1dT4y1j7gH?p=6&spm_id_from=pageDriver

常用adb命令
Adb devices
Adb help
Adb version

Adb kill-server
Adb start-server
Adb install *.apk

连接逍遥模拟器
adb connect 127.0.0.1:21503
连接夜神模拟器
adb connect 127.0.0.1:62001

多个设备可以选择进入 adb -s emulator-5554 shell

读取电量电压
adb shell dumpsys battery

虽然有root权限,但是仍然不能编辑,需要执行以下命令
设置/system为可读写:adb remount

输出日志
Adb logcat -d -v time>D:/android/android.log

把pc端的文件推送到终端
Adb push d:\xx.log /data/data/
多个设备
adb -s 127.0.0.1:21503 push D:\Android\log\android.log /data/data

把手机端的文件拉到pc端
Adb pull /data/data/xx.log d:\demo

查看包名和activity
Adb logcat|findstr START
查看需要测试的包名
如果有root权限,可以进入/data/data/下使用ls/ls-a查看(不能使用ll)
如果无root权限,可以使用:pm  list packages查看

(需要控制monkey执行的时间,可以通过设置执行时长/事件发送延时,计算出需要执行的次数。如:想要monkey运行24小时,每100毫秒发送一个事件。246060*1000/100=864000(次)
  monkey -p   ***  --ignore-crashes --ignore-timeouts --throttle 100 864000
  表示:此次monkey将会运行24小时

启动app
Adb shell am start -W -n package/.activity
打开币安apk,并测量时间
Adb shell am start -W -n com.binance.dev/.activities.register.RegisterActivity

打开xt apk,并测量时间
Adb shell am start -W -n com.zsdk.xt/.ui.activity.MainActivity

币安的apk启动时间381ms,xt 的apk启动时间1180ms,慢了3倍多

关闭app
Adb shell am force-stop package
Adb shell am force-stop com.binance.dev

app退到后台运行
Adb shell input keyevent 3

币安的启动包名
cmp=com.binance.dev/.activities.register.RegisterActivity
Xt 的启动包名
cmp=com.zsdk.xt/.ui.activity.MainActivity
cmp=com.zsdk.xt/.ui.act.MainActivity
cmp=com.zsdk.xt.debug/com.zsdk.xt.ui.act.ColumnOreActivity

cmp=com.android.systemui/.recents.RecentsActivity

预生产的包
cmp=com.zsdk.xt.pro/com.zsdk.xt.ui.act.MainActivity

卸载apk包
adb -s 127.0.0.1:21503 uninstall com.zsdk.xt.debug

查看cpu
Adb shell dumpsys cpuinfo|findstr package
Dumpsys meminfo|grep xt

如果在shell里面 输入dumpsys cpuinfo|findstr xt

如果在cmd里面 输入adb shell dumpsys cpuinfo|findstr xt

获取进程pid
Adb shell ps | findstr package

先找到pid,然后cat查看进程流量,建议在shell里面操作,那样就不需要每次多输入adb shell
Adb shell cat /proc/pid/net/dev

查看接受和发送的流量

获取内存
Adb shell top
VSS- Virtual Set Size 虚拟耗用内存(包含共享库占用的内存)
RSS- Resident Set Size 实际使用物理内存(包含共享库占用的内存)
PSS- Proportional Set Size 实际使用的物理内存(比例分配共享库占用的内存)
USS- Unique Set Size 进程独自占用的物理内存(不包含共享库占用的内存)
一般来说内存占用大小有如下规律:VSS >= RSS >= PSS >= USS

dstat 命令是一个用来替换 vmstat、iostat、netstat、nfsstat 和 ifstat 这些命令的工具,是一个全能系统信息统计工具。
Dstat -afv

Monkey命令
https://www.cnblogs.com/smallstone2018/p/10024500.html

Adb shell monkey -p com.zsdk.xt.pro --ignore-crashes --ignore-timeouts --throttle 100 60
monkey -p   ***  --ignore-crashes --ignore-timeouts --throttle 100 864000
产生500此随机事件,作用在系统中所有的activity
Adb shell monkey -v 500
adb shell monkey -v 500 -p com.zsdk.xt.pro
adb shell monkey -v -p com.zsdk.xt.pro --ignore-crashes --ignore-timeouts --throttle 100 600

-p参数
在我们测试时,是针对具体的app进行测试的,所以在使用monkey测试时,我们需要提供具体的app包名给monkey,此时就需要用到参数-p。在-p后跟随app包名。
(二)事件类型
0:触摸事件–pct-touch
  调整touch触屏事件的百分比,触碰事件就是指在屏幕上的一个单独位置的一次点击/抬起的事件。
1:滑屏事件–pct-motion(手势事件)
  (手势事件是由一个在屏幕某处的按下事件、一系列的伪随机移动、一个抬起事件组成)即一个滑动操作,但是是直线的,不能拐弯)
2:轨迹球–pct-trackball
  (轨迹球事件包括一个或多个随机移动,有时还伴有点击。轨迹球现在智能手机上已经没有了,就是类似手柄的方向键一样)
3:旋转(–pct-rotation)
  旋转屏幕
4:导航–pct-nav
  (导航事件包括上下左右,如方向输入设备的输入)老手机的上下左右键,智能机上没有)
5:主导航–pct-majornav
  调整主要导航事件的百分比(如中间键、取消、确定或菜单引发的图形接口的动作)
6:系统按键–pct-syskeys
  调整系统按键事件,如:home/back/startcall/endcall以及音量控制键等
7:app切换–pct-appswitch
  调整启动activity的百分比,在随机间隔中,执行一个startActivity()方法调用,作为一种最大化的覆盖安装包的所有的activity的方法
8:键盘翻转(–pct-flip)
9:随机–pct-anyevent
  调整其他类型的事件的百分比,比如按键或其他不太常用到的一些事件的百分比

(三)调试选项
1、–ignore-crashes
  用于指定当应用程序崩溃时,Monkey是否停止运行。如果使用此参数,即使应用程序崩溃,monkey依然会发送事件,直到事件计数完成。
2、—ignore-timeouts
  用于指定当应用程序发生ANR(Application No Responding)错误时,Monkey是否停止运行。如果使用此参数,即使应用程序发生ANR错误,Monkey依然会发送事件,直到事件计数完成。
3、–ignore-security-exceptionss
  用于指定当应用程序发生许可错误时(如证书许可,网络许可等),Monkey是否停止运行。如果使用此参数,即使应用程序发生许可错误,Monkey依然会发送事件,直到事件计数完成。
4、–kill-process-after-error
  用于指定当应用程序发生错误时,是否停止其运行。如果指定此参数,当应用程序发生错误时,应用程序停止运行并保持在当前状态(注意:应用程序仅是静止在发生错误时的状态,系统并不会结束该应用程序的进程)。
5、–monitor-native-crashes
  用于指定是否监视并报告应用程序发生崩溃的本地代码
6、–hprof
  该选项设置后,将会在monkey事件序列前后立刻生成report,大小为大于5MB,存储在/data/misc

Tips
Sdk 下载后设置环境变量
如果adb命令无效,重启adb服务
使用monkey做app压测的时候使用-s 可以重复之前的操作步骤。

https://www.bilibili.com/video/BV1ft411h7kQ?from=search&seid=4038063240049936772
6节课轻松搞定APP monkey性能专项测试
Monkey自动化脚本测试,monkey压力稳定性测试,自动化混合应用。
Adb(Android Debug Bridge)是android sdk(software development kit)的一个工具

aapt dump badging D:\Android\Browser\Browser.apk

com.android.browser
com.android.browser.BrowserActivity

运行脚本

#头文件、控制monkey发送消息的参数
type=raw events
count=10
speed=1.0
#以下monkey命令
start data>>
#打开测试应用程序
LaunchActivity(com.android.browser,com.android.browser.BrowserActivity)
#等待时间
UserWait(3000)
#点击浏览器网址
Tap(300,152)
#输入www.baidu.com
DispatchString(www.baidu.com)
#输入enter键
DispatchPress(KEYCODE_ENTER)
#输入Home键返回到桌面
DispatchPress(KEYCODE_BACK)

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Onesiphorus

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值