adb monkey app压力测试

找包名

直接获得目前打开的app的包名以及启动页(Activity)

adb shell dumpsys window w |findstr \/ |findstr name=

还可以去读文件获取包名

路径 data/app 第三方安装的app

用adb命令快速查看某应用appPackage及appActivity的方法

  1> adb shell pm list packages                                         列出所有的包名(不知道包名的情况,需要执行查找包名)appPackage

注:加上-3显示第三方安装的安装包

  2> adb shell dumpsys package XXX                               查看某个包的具体信息(前提是需要知道包名是什么)      appActivity

  3> adb shell dumpsys activity | grep mFocusedActivity  查看当前resume的是哪个activity 

  4> adb logcat | grep ActivityManager                              查看当前正在运行的Activity

  5> adb logcat | grep Displayed                                        查看当前正在运行的Activity

 

monkey 指令及用法

monkey常用参数

-p  指定包名 (所有命令都在此包内执行,如不指定,则在整个系统内执行)

-v  log详细程度(最高支持’-v -v -v’最详细) 

-s  种子 (指定种子后,同一条命令在任意时间、地点的执行顺序都相同)

--throttle  单步延时(每步操作间隔,单位毫秒)

--kill-process-after-error  出错时杀掉进程

--ignore-timeouts  忽略超时错误

--ignore-security-exceptions  忽略许可错误

基本参数

说明

-p <allowed-package-name>

指定一个或多个包

-s <seed>

指定一个随机数生成器的seed值

--throttle <milliseconds>

指定事件之间的固定延迟(ms)

-v

指定反馈信息级别(信息级别就是日志的详细程度)

-c <main-category>

指定一个或多个类别名

-f <scriptfile>

运行指定的monkey脚本

事件参数

说明

--pct-touch <percent>

指定触摸事件百分比

--pct-motion <percent>

指定动作事件百分比

--pct-trackball <percent>

指定轨迹事件百分比

--pct-syskeys <percent>

指定系统按键事件百分比

--pct-nav <percent>

指定基本导航事件百分比

--pct-majornav <percent>

指定主要导航事件百分比

--pct-appswitch <percent>

指定应用启动事件百分比

--pct-flip <percent>

指定flip(弹)事件的百分比

--pct-anyevent <percent>

指定其他类型事件百分比

--pct-pinchzoom <percent>

指定缩放(捏)事件百分比

--pct-permission <percent>

permission 事件的百分比,默认为0,Android6.0及以后的手机才有这个参数

 

调试参数

说明

--ignore-crashes

忽略因崩溃或异常引起的停止运行

--ignore-timeouts

忽略应用发生超时错误(ANR)

--ignore-security-exceptions

忽略应用发生任何权限错误

--monitor-native-crashes

监视并报告monkey运行时native code的崩溃事件

--ignore-native-crashes

忽略因native code的崩溃事件

--kill-process-after-error

在应用出错后通知系统杀死发生错误的进程

--hprof

在事件序列前后立即生成profilfing report

--dbg-no-events

监视应用程序所调用的包之间的转换

--wait-dbg

暂停执行中的monkey,直到有调试器与它连接

 

举例:

adb shell monkey  -p com.motk -v -v -v -s 12 --throttle 5001000

 

日志分析

1、查找出差步骤:

a、找到monkey里哪个地方出错

查看Monkey执行的是哪一个Activity,在switch后面找,两个swtich之间如果出现了崩溃或其他异常,可以在该Activity中查找问题的所在。

               

b、查看Monkey里面出错前的一些事件动作,手动执行该动作

     Sleeping for XX milliseconds这是执行Monkey测试时,throttle设定的间隔时间,每出现一次,就代表一个事件,

     Sending XX 就是代表一个操作,如下图的两个操作 应该就是一个点击事件。     

c、若以上步骤还不能找出,则可以使用之前一样的seek再执行monkey命令一遍,便于复现

2、测试结果分析:

a、程序无响应,ANR问题:在日志中搜索“ANR”

b、崩溃问题:在日志中搜索“CRASH”

c、其他问题:在日志中搜索”Exception”

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
adb monkey是一种用于进行Android应用程序压力测试工具。它可以模拟用户的随机操作,如点击、滑动和按键等,以测试应用程序在各种情况下的稳定性和性能。通过使用adb shell monkey命令,可以指定一些选项来控制测试的行为。其中一些常用的选项包括: 1. -p:指定要测试的应用程序的包名。 2. -s:指定随机事件序列的种子数,用于重复相同的操作序列。 3. --pct-touch:指定触摸事件的百分比。 4. --ignore-crashes:忽略应用程序的崩溃。 5. --ignore-timeouts:忽略应用程序的超时。 6. --throttle:指定事件之间的延迟时间。 例如,使用以下命令进行adb monkey压力测试adb shell monkey -p com.example.app --pct-touch 30 --ignore-crashes --ignore-timeouts --throttle 250 -s 10 100 这个命令将对包名为com.example.app的应用程序进行压力测试,其中触摸事件占总事件的30%,忽略崩溃和超时,事件之间的延迟时间为250毫秒,使用种子数10进行两次测试,以确保产生相同的操作序列。 #### 引用[.reference_title] - *1* *2* [ADB Monkey压力/稳定性测试祥解-Android测试](https://blog.csdn.net/Carp712/article/details/128904894)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [【Android压力测试monkey压力测试(很全、很详细)](https://blog.csdn.net/x00yan00/article/details/50974874)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值