monkey操作,获取包名,参数,日志,百分比
monkey的基本语法都是:
adb shell monkey -p 包名 执行的数字
monkey是Android中的一个命令行工具,可以运行在模拟器里或实际设备中,他向系统发送伪随机的用户时间流(如:按键输入、触摸屏输入、手势输入等),实现对正在开发的应用程序进行压力测试。
monkey测试是一种为了测试软件的稳定性、健壮性的快速有效方法。
首先要测试一款APP,需要先知道APP对应的包名是什么,除了可以向开发人家直接获取,还可以自己获取。
在安装SDK的目录下面找到build-tools,具体路径E:\android-sdk-windows\build-tools\28.0.3,在输入框中输入cmd进入DOS命令
夜神模拟器:
第一种,获取自己已经有apk的包名:
aapt dump badging +apk存放路径
aapt dump badging E:\soft\longteng\appium\apk\touchaction.apk
第二种:查看手机上所有APP的包名
输入adb shell,进入命令后进入目录data/data
1)adb shell
2)进入手机的 cd data/data
3) ls (需要root)
查看手机或者第三方应用的包名:
adb shell pm list packages -3
真机:
打开开发者选项(小米手机在MUIU中连续点击)-之后在手机“设置”-“更多设置”中有一个“开发者选项”打开调试的功能
然后win+r,输入adb devices
如下情况表示连接成功
获得包名以后就可以操作了:
查看所有参数:
adb shell monkey
1. -p : 指定包名
1) 指定包名对应进行的点击数操作
adb shell monkey -p 包名 次数
2)指定多个包
adb shell monkey -p 包名1 -p 包名2 次数
2. -v :打印日志
用于指定反馈信息级别(信息级别就是日志的详细程度),总共有三个:
1)level0:缺省值,仅提供启动提示、测试完成和最终结果等少量信息
adb shell monkey -p 包名 -v 500
2) level1:提供较为详细的日志,包括每个发送到activity的信息
adb shell monkey -p 包名 -v -v 500
3) level2:最详细的日志,包括测试中选中/未选中的activity信息
adb shell monkey -p 包名 -v -v -v 500
3. -s 随机数
打印日志的时候包含了seed参数:
这个参数是发送请求的时候自动生成的伪随机数,用于产生相同序列的执行流,比如有bug了,开发可以去模拟当时一模一样的场景:v
我们可以自己指定相应的随机数seed:
adb shell monkey -s 12345 -p com.taobao.taobao -v 500
4. throttle : 毫秒
用于指定用户操作即事件间的时延,单位是毫秒;如果不指定这个参数,monkey会尽可能快的生成和发送消息300毫秒
指定500次的点击事件,每次之间间隔300毫秒:
adb shell monkey -p com.taobao.taobao --throttle 300 500
5.点击次数的设置
500 这里指点击的次数,根据经验,单个应用程序设置在100000次就ok;如果是整机,设置在500000次
6、--ignore-crashes
应用发生崩溃或异常时Monkey会停止运行。如果设置此项,Monkey将继续发送事件给系统,直到事件计数完成
adb shell monkey -s 12345 -p com.taobao.taobao -v --ignore-crashes 500
7、--ignore-timeouts
应用程序发生任何超时错误(如“Application Not responding”对话框)Monkey将停止运行,设置此项,Monkey将继续发送事件给系统,直到事件计数完成。
adb shell monkey -s 12345 -p com.taobao.taobao -v --ignore-timeouts 500
8. --ignore-security-exception
当程序发生许可错误(例如启动一些需要许可的Activity)导致的异常时,Monkey将停止运行。设置此项,Monkey将继续发送事件给系统,直到事件计数完成。
adb shell monkey -s 12345 -p com.taobao.taobao -v --ignore-timeouts --ignore-security-exception 500
9.--kill-process-after-error
当Monkey由于一个错误而停止时,出错的应用程序将继续处于运行状态。设置此项,将会通知系统停止发生错误的进程。注意,正常(成功)的结束,并没有停止启动的进程,设备只是在结束事件之后简单的保持在最后的状态
10、--monitor-native-crashes
监视并报告Andorid系统中本地代码的崩溃事件。如果设置--kill-process-after-error,系统将停止运行。
11. --wait-dbg
停止执行中的Monkey,直到有调试器和它相连接。
12. -c <main-category>
如果你指定一个或多个类别,Monkey将只允许系统启动这些指定类别中列出的Activity。如果你不指定任何类别,Monkey将选择谢列类 别中列出的Activity,Intent.CATEGORY_LAUNCHER和Intent.CATEGORY_MONKEY。指定多个类别使用多个-c,每个-c指定一个类别。
13. --dbg-no-events
设置此选项,Monkey将执行初始启动,进入一个测试Activity,并不会在进一步生成事件。为了得到最佳结果,结合参数-v,一个或多个包的约束,以及一个保持Monkey运行30秒或更长时间的非零值,从而提供了一个可以监视应用程序所调用的包之间转换的环境。
14. --hprof
设置此选项,将在Monkey生成事件序列前后生成profilling报告。在data/misc路径下生成大文件(~5Mb),所以要小心使用。
monkey事件百分比:event percentages
由上图可以看出
0:触摸事件百分比,即参数--pct-touch 1:滑动事件百分比,即参数--pct-motion
2:缩放事件百分比,即参数--pct-pinchzoom 3:轨迹球事件百分比,即参数--pct-trackball
4:屏幕旋转事件百分比, 5:基本导航事件百分比,即参数--pct-nav
6:主要导航事件百分比,即参数--pct-majornav 7:系统事件百分比,即参数--pct-syskeys
8:Activity启动事件百分比,即参数--pct-appswitch 9:键盘翻转事件百分比,即参数--pct-flip
10:其他事件百分比,即参数--pct-anyevent
例如: 设置触摸事件需要占百分之60,(例如游戏的APP,触摸就会显得比较重要)
0--10这11中事件的总共百分比=100%,不能超过100%.
设置序列号为12345,包名是com.taobao.taobao,打印简单日志,点击事件500次,触摸事件百分比占60%:
adb shell monkey -s 12345 -p com.taobao.taobao -v --pct-touch 60 500
monkey日志的导出:
指定电脑某个位置:
adb shell monkey -p com.taobao.taobao -v 500 > e:\test.txt
log分析:
日志最开始都会显示Monkey执行的seed值、执行次数、测试的包名
查看日志里是否出现了ANR或者异常
ANR:日志里搜索“ANR ”(此处有空格)
崩溃问题:日志里搜索“Exception”,快速定位到关键事件信息,然后查看Monkey里面出错前的一些时间动作,手动执行该动作,找到重现步骤,给你开发
成功日志和报错日志:
成功日志会显示monkey finish ,events injected :100 # 执行完成,点击事件100次
错误的话会有闪退或者卡死,明显的error字眼:
会有CRASH字眼,后面跟上包名,闪退
ANR异常,无响应的:原因比如代码设计不合理,网络搜索事件太长
需要提供给开发的内容:
1) 被测试手机的详细信息;
2)monkey测试日志: 在cmd中输入命令后的内容
3)手机运行截图;
4)monkey运行时手机日志:可以定位到某一位置 adb logcat >d:\test
转载于:https://www.cnblogs.com/yangguanghuayu/p/10970509.html
monkey操作,获取包名,参数,日志,百分比相关推荐
- android 获取monkey日志_monkey操作,获取包名,参数,日志,百分比
monkey的基本语法都是: adb shell monkey -p 包名 执行的数字 monkey是Android中的一个命令行工具,可以运行在模拟器里或实际设备中,他向系统发送伪随机的用 ...
- adb logcat 通过包名过滤日志并输出到txt文件
最近学使用ADB命令抓包APP闪退的日志: 1)在cmd命令行中可以使用adb logcat 命令查看android系统的log,也可以使用adb shell进入到adb shell专用命令行 2)d ...
- Unity获取包名,产品名,版本号等
Unity获取包名,产品名,版本号等 string PackageName = Application.identifier; //包名string APPversion = Application. ...
- 通过BAT脚本直接从apk文件获取包名和安装APK
参考:bat处理教程 @echo off ::开启变量延迟,解决方法:开启变量延迟,并且变量要用一对叹号"!!"括起来. setlocal enabledelayedexpansi ...
- java 获取包名类名_获取指定包名下的所有类的类名(全名)
参考来源: 以下代码一键运行: package test; import java.io.File; import java.io.IOException; import java.net.JarUR ...
- APK获取包名的办法
法一: adb shell pm list package -f 将获取手机内所有apk对应的包名和路径 方法二: adb shell dumpsys window w | findstr \/ | ...
- android logcat 包名过滤日志
** 如何让测试帮你弄出高质量的bug 日志? ** 场景:有时候测试会给开发提一些偶现bug,复现的很难,代价很大.这时候你希望测试给你一些日志,一般的测试就是会用 adb logcat -v ti ...
- android获取包名的几种方法
方法一: adb shell pm list package -f 将获取手机内所有apk对应的包名和路径 方法二: adb shell dumpsys window w | findstr \/ | ...
- Android 获取包名,版本信息及VersionName名称
话不多说,直接上代码,此处,主要是在版本升级的时候,使用较多. private String getAppInfo() { try { String pkName = this.getPackageN ...
最新文章
- Webkit 最新 Javascript 引擎领先 Chrome
- Android Webview H5 秒开方案实现
- 使用matlab模拟、检验和估计泊松过程
- wordpress配置SMTP服务发送邮件
- mysql groupby 拼接_mysql分组并多行拼接--group_concat和groupby的使用
- 变成小白的第一本Python入门书,第五章循环与判断课后题答案
- oracle数据库操作文档,oracle数据库操作
- 申请以及集成 Stripe 的 Alipay 支付方案
- 微软Whitehorse modeler的背后
- (65)-- 爬取兄弟连老师信息
- sir模型初始值_SIR模型
- pe系统测试软件,使用PE系统显示器测试工具检测电脑屏幕的方法
- 神经网络的相关函数以及误差类型
- matlab tfrstft工具箱,toolbox matlab时间序列分析工具箱 - 下载 - 搜珍网
- Spring+SpringMVC+Mybatis(开发必备技能)04、mybatis自动生成mapper_dao_model(包含工具与视频讲解) 纯绿色版本、配套使用视频,100%运行成功
- 矩阵 的逆、 迹、 秩
- 如何删除Win10“此电脑”中多出的“CD驱动器”盘符
- 如何安装部署beego项目
- 力扣刷题记录-回溯算法相关题目
- 利用Qt来进行文件后缀的更改
热门文章
- 嵌套组合图echarts
- php将mysql转换为json字符串_在PHP中将MySQL记录集转换为JSON字符串
- 【动态规划】P1220:区间dp:关路灯
- LeetCode 583 两个字符串的删除操作
- ffmpeg系列-编译
- android 圆点指示器,ViewPager加上小圆点指示器效果
- JS/JQuery操作iframe元素
- ueditor编辑器初始化
- mysql用jdbc执行回滚吗_java – mysql jdbc不成功回滚
- 为什么不能生成accde_原来“转换生成语言学”就是这么回事