九、App稳定性测试--Monkey
目录
1.Monkey是什么?
2.Monkey组成
3.Monkey测试的目的
4.Moneky运行环境搭建
5.Monkey执行前准备命令:
6.工作中具体使用
7.Moneky结果分析
8.Monkey执行的前提条件:
9.Monkey的bug描述
1.Monkey是什么?
- Monkey是Android中附带的一个工具,可以运行在模拟器里或实际设备中。
- 他向系统发送伪随机的用户事件流(如键盘输入、触摸屏输入、手势输入等),实现对正在开发的应用陈旭进行压力测试,存放在手机的/system/framework/
2.Monkey组成
- 基本配置选项,如设置测试的事件数量
- 运行约束选项,如设置只对单独的一个包进行测试
- 事件类型和频率
- 调试选项
3.Monkey测试的目的
- 进行压力测试
- 然后开发人员结合monkey打印的日志和系统打印的日志,发现测试中出现的问题。
- 特点:Monkey测试,所有的事件都是随机产生的,不带任何主观性。
4.Moneky运行环境搭建
- 下载sdk安装包配置sdk的环境变量,具体请参考https://editor.csdn.net/md/?articleId=100120319
- 下载JDK,配置JDK环境变量,具体请参考:https://mp.csdn.net/postedit/104103560
5.Monkey执行前准备命令:
- 打开手机的开发者调试工具,用usb数据线链接你的手机;
- 通过USB将手机连接电脑。
- windows+r 输入cmd进入dos命令行;
- 输入adb devices ;
- 再输入 adb shell pm list packages 查看你的手机所有的安装包;输入 adb shell pm list packages -3 查看手机上所有的第三方安装包,尽量让测试机少安装第三方软件,这样可以尽快的找到想要的安装包名称;
- Monkey命令
- adb shell monkey 400:对手机上任意应用进行随机操作
- adb shell monkey -p com.songqin.sqoa 400:对松勤OA进行400次事件的monkey测试
- adb shell monkey -p com.songqin.sqoa -p com.songiqn.sqjy 400 :对松勤OA和松勤教育共执行400次monkey测试,数量随机分配
- 结果如图:
Event percentages(事件百分比):
0:触摸事件百分比,参数--pct-touch
1:滑动事件百分比,参数--pct-motion
2:缩放事件百分比,参数--pct-pinchzoom
3:轨迹球事件百分比,参数--pct-trackball
4:屏幕旋转事件百分比,参数--pct-rotation
5:基本导航事件百分比,参数--pct-nav
6:主要导航事件百分比,参数--pct-majornav
7:系统事件百分比,参数--pct-syskeys
8:Activity启动事件百分比,参数--pct-appswitch
9:键盘翻转事件百分比,参数--pct-flip
10:其他事件百分比,参数--pct-anyevent
[--throttle MILLISEC]:事件最大延迟时间 单位是毫秒:用于模拟用户操作间隔时间
count(执行测试次数)
[-v [-v] ...]:表示日志的详细程度 ,最多-v -v -v,一般用两个.
[-s SEED]:种子值,序列号,作用
开发可以通过相同的seed值进行复现和解决bug
测试:可以通过相同的seed对bug进行验证
原则:项目开始执行monkey测试的时候到monkey测试结束的时候seed保持一致
相同的seed值表示操作的动作和顺序是一致的
[--ignore-crashes] [--ignore-timeouts] [--ignore-security-exceptions]
如果使用了该参数:在测试过程中如果遇到了crash.anr等情况,monkey是继续执行,直到事件次数结束.必要的情况下,是结束app的进程,重新打开接着开始
如果不使用该参数:测试过程中发生crash,anr等情况,Monkey测试就会停止,保持在发生问题的界面
--kill-process-after-error:测试中发生问题后,停止Monkey测试,保持在发生问题的界面 (一般用不到)
[--monitor-native-crashes] :监控本地的crash,抓取由于执行过程中引起的手机上其他任意应用发生问题的记录 [--ignore-native-crashes]:忽略本地crash
[--pct-touch PERCENT] [--pct-motion PERCENT]
[--pct-trackball PERCENT] [--pct-syskeys PERCENT]
[--pct-nav PERCENT] [--pct-majornav PERCENT]
[--pct-appswitch PERCENT] [--pct-flip PERCENT]
[--pct-anyevent PERCENT] [--pct-pinchzoom PERCENT]
[--pct-permission PERCENT]
设定执行过程操作事件百分比,一般情况下为默认.
6.工作中具体使用
- 命令:adb shell monkey -p 包名 --ignore-crashes --ignore-timeouts --ignore-security-exceptions --monitor-native-crashes -s 360 -v -v --throttle 450 350000 >D:\log\monkeylog.txt
- 重定向--用于保存
7.Moneky结果分析
- Monkey的日志分析
- Monkey错误图片:
- 正常的结果:// Monkey finished elapsed time=25352ms 共耗费时间
- crash: //CRASH 包名
- ANR:
//NOT RESPONDING:包名
ANR in 包名 - 异常中断:没有上述三种关键字显示
- 其他异常:关机:温度过高--->temperature/电量过低-->batterylevel=0
重启:Reboot:monkey测试中发生了问题:monkey中断/不中断/logcat停止了,手机亮屏
tcdump:黑底蓝字--->app测试中几乎没有
- adb logcat日志的分析:
- 两个cmd,一个执行monkey命令,一个执行adb logcat
- 命令:adb logcat -v time >D:\log\logcat.txt
- 不会自动停止,只能第二天上班手动停止( ctrl+c)
- 步骤
- 先查看monkey结果,如果Monkey结果正常,那么都不用看了
- 如果Monkey结果也有问题,根据关键字,在logcat中搜索,查到响应的位置
- CRASH:logcat中显示为:fatal exception
- ANR:logcta中显示为:ANR
- 复制关键信息前后两行,附在bug的描述中
- .logcat日志打包附在bug的附件中
8.Monkey执行的前提条件:
- 手机设置常亮,锁屏关闭
- 电量在90以上
- 其他设置要设置好,wifi,数据网络,进程该关闭就关闭
- app登录,数据创造,必要的情况,打开app一个页面
- 执行命令之后少等一会,如果在可见之内发现退出账号,可以尝试换一个seed值操作
9.Monkey的bug描述
- 标题:[monkey][crash/anr/关机]XX应用执行monkey是发生FATAL EXCEPTION: main
- 前提:Monkey前提
- 步骤:
1.连接手机
2.执行命令:命令
3.查看结果
4.关键字:
06-17 23:53:54.162 E/AndroidRuntime( 3375): FATAL EXCEPTION: main
06-17 23:53:54.162 E/AndroidRuntime( 3375): Process: edu.yjyx.student, PID: 3375 - 实际结果:执行Monekey 发生xxxx
预期结果:执行monkey,没有异常发生
九、App稳定性测试--Monkey相关推荐
- monkey测试_爱码小士丨 APP稳定性测试(附视频详解)
在实际的测试过程中,主要是对系统的功能来进行测试,用于校验功能的正确性 还需要考虑到系统在未修改的状态下,是否能够稳定运行,即崩溃.闪退.重启.系统异常等等等地情况 在APP中,稳定性测试一般是交由M ...
- android 稳定性测试工具,APP 稳定性测试工具-Fastbot_Android详解
基于monkey的二次开发,约束monkey的行为,比monkey更智能. 写在开始 monkey测试的随机性概率过大,导致其效率并不能达到预期.有时可能遍历了很久,依旧与最有可能发生问题的部分擦肩而 ...
- 操作指令详解_爱码小士丨 APP稳定性测试(附视频详解)
在实际的测试过程中,主要是对系统的功能来进行测试,用于校验功能的正确性 还需要考虑到系统在未修改的状态下,是否能够稳定运行,即崩溃.闪退.重启.系统异常等等等地情况 在APP中,稳定性测试一般是交由M ...
- 说透APP稳定性测试
最近面试了一些测试候选人,聊到app的稳定性测试相关话题时,比如什么是app稳定性测试,app稳定性测试的目的,在什么时候执行稳定性测试最佳等,发现还是有很多的测试同学对app稳定性测试了解比较浅,甚 ...
- App兼容性测试/MONKEY配置和安装
App兼容性测试/MONKEY配置和安装 APP测试的兼容性测试 Web测试和App测试有什么区别 性能和稳定性工具---MONKEY 环境配置和安装 云测试平台 APP测试的兼容性测试 上线后进行兼 ...
- 互联网测试必须要知道的App稳定性测试
App稳定性测试 稳定性测试就是指软件长时间的持续运行,系统版本是否稳定,是否能否持续的为用户提供服务. 指标: 异常的次数 异常的频率 App的稳定性测试如何实施? 首选Monkey Monkey是 ...
- APP稳定性测试神器之Monkey-随机事件测试
APP稳定性测试神器之Monkey-随机事件测试 Monkey是Android中的一个命令行工具,可以运行在模拟器里或者现实设备中,向系统发送伪随机的用户事件流(点击.滑动.Application切换 ...
- app稳定性测试教程——全网最全(测试木头人)
超详细测试流程及分析 --没有之一 App稳定性测试简介 App的性能测试主要有响应.内存.cpu.FPS.GPU过度渲染.耗电.耗流七个指标,app除了这些性能测试,还有:手机版本号兼容性,屏幕分辨 ...
- 什么是App稳定性测试?什么是App弱网测试?
App稳定性测试? 由于app软件是安装在手机的操作系统之上的,为了保证app能够在长时间内运行操作不会出问题,所以需要做稳定性测试,稳定性测试需要用到monkey工具,monkey工具是基于命令行的 ...
最新文章
- PCL基础3:点云程序运行时间计时
- Verilog代码规范I
- [转]json2.js 源码解读
- java中把map转换成list
- 稳扎稳打Silverlight(33) - 3.0控件之AutoCompleteBox, DataPager
- DOMContentLoaded与interactive
- 晋中学院计算机考研,晋中学院有多少人死在考研路上
- t oracle删除吗,Oracle 11g 手工建库与删库
- 【转】.NET程序内存分析工具CLRProfiler的使用
- 1.1.0-简介-P11-分布式锁的解决方案
- 二维正则表达式v0.1
- 三月提示:提防挂马网站 关注账号安全
- 缠中说禅_缠中说禅严格笔画法
- freopen()函数文件流重定向和文件流的清除
- [心情]一落千丈的反差
- Java中的网络编程
- PreScan快速入门到精通第十一讲之PreScan道路标记,建筑物、抽象物体及交通标识
- 04Selenium剩余部分及练习:爬取京东商品信息
- 敏捷开发的价值观与十二条原则
- 解决nf_conntrack: table full, dropping packet
热门文章
- 网络安全相关行业必备网站(持续更新中)
- Flume监控之Ganglia安装与简单实践
- 【Spring Web教程】SpringBoot 整合WebSocket
- 3.1.3 回旋函数
- 原来order by 中也可以使用子查询
- OpenCV:qt.qpa.plugin: Could not load the Qt platform plugin “xcb”
- unity打包webgl报错及处理 IL2cpp/build/unityLinker.exe not run properly;IL2cpp.exe not run properly
- python的小程序分析_Python学习:JData入门小程序解析(续)
- 理解一维数组中buf\buf[0]\buf[0]\buf四个符号的含义
- 关于Sybase iq常用命令