如何使用monkey进行稳定性测试(全过程)

发表于:2021-7-22 09:48

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:m0_48450657    来源:CSDN

  一、安装monkey环境
  下载AndroidSDK环境和环境变量(需要先安装java环境)。
  配置环境教程:https://www.jianshu.com/p/c3e1fe6f61c4
  安卓设备(真机/模拟器)。
  二、连接设备
  1.手机打开USB调试模式
  2.cmd命令行输入 adb devices
  3.这样显示则是连接成功了
  4.连接信息解释:
  1)手机设备:显示设备的序列号,如图的b2355f8a
  2)模拟器:显示ip地址和端口,如127.0.0.1:8888
  3)device:已识别的设备,连接成功(这种情况即连接成功)
  4)unauthorized:没有授权,需要手机上授权后才能链接(手机授权一下解决)
  5)unkown:未识别的设备(电脑按照驱动)
  6)offine:离线设备(设备和电脑断开连接了)
  三、monkey的一些命令
  1.adb shell monkey:查看所有支持的monkey命令。
  2.adb shell monkey 100:随机发送100次操作(针对整个手机),count指事件,100即100次事件。
  3.monkey命令-事件间隔。
  1)adb shell monkey --throttle 1000 10:发送10个事件,1秒一个。1000指1000毫秒,10指10次,即一秒一次,一共10次,throttle用来控制事件发送频率。
  2)adb shell monkey --throttle 6000 10:发送10个事件,持续时间一分钟。
  4.monkey命令-指定包运行。
  1)-p<allowed-package-name>此参数指定了一个包,monkey将至允许系统启动这些包里的activity;
  2)查询指定包名:
  · adb shell dumpsys window w | findstr \/ | findstr name= 打开指定的APP在输入这个指令可以找到指定包的报名(建议用这种,手机上安装的app比较多的时候不好找)。
  · adb shell pm list package -3 (查看手机上安装的第三方安装包)。
  · adb shell pm list packages:找到手机所有包名。
  · -p<allowed-package-name1> -p<allowed-package-name2> 如果此参数指定了几个包,monkey将只允许系统启动这些包里的activity。
  · 举例:
  (1)先在手机打卡淘宝输入adb shell dumpsys window w | findstr \/ | findstr name= 找到淘宝的包名。
  (2)adb shell monkey -p com.taobao.taobao --throttle 500 50 跑淘宝这个程序,50次,500毫秒一次(根据实际可随意调整参数)。
  (3)这样就算是跑起来了,会看的淘宝app自己在乱跳。
  四、monkey命令-日志设置
  1.-v level0 除启动提示,测试完成和最终结果之外,提供较少信息。
  2.-v-v level1 提供较为详细的测试信息,如逐个发送到activity的时间。
  3.-v-v-v level2 提供最详细的设置信息,如测试中被选中的或者未被选中的activity。
  4.例如:对淘宝每秒一次操作,一共50次,日志级别为-v级别 adb shell monkey -p com.taobao.taobao --throttle 1000 -v 50。
  5.将日志导出到本地,在后面加上路径即可 如:adb shell monkey -p com.taobao.taobao --throttle 1000 -v 50>C:\Users\Desktop\monkeylog\log1
  五、monkey命令-seed值,复现和验证bug
  1.seed 用来标记事件顺序(在日志里面找这个值,上两张图有标记seed值在哪)。
  2.出现异常-复现异常(用monkey如何复现)-提交bug-解决bug-验证bug(如何用monkey验证)。
  3.命令里面输入seed值,就会再执行一次这个seed值对应的操作,可以根据两次的日志来判断两次执行的内容是否一致,如:adb shell monkey -p com.taobao.taobao -s 1610217413865 --throttle 1000 -v-v-v 50>C:\Users\Desktop\monkeylog\log4 
  六、monkey命令-调试
  1.monkey运行过程中,我们可以通过结束进程的方式来终止monkey的执行,在运行过程中遇到异常奔溃等清除monkey会停止。未来确保执行的时间数执行完整,我们可以通过调试的选项设置来防止在运行过程中monkey命令提前结束。
  2.跑到一半关掉app进程/手机关机都可以终止。
  3.--ignore-carshes 忽略在应用程序出现crash崩溃导致的monkey停止。
  4.--ignore-timeouts 忽略在应用程序出现ANR程序无响应的问题导致monkey停止。
  5.--ignore-security-exceptions 忽略应用程序安全证书发生许可错误时导致monkey停止。
  6.例如:对淘宝进行稳定性测试,执行50次时间,忽略过程中遇到的异常,直到50次事件完成    adb shell monkey -p com.taobao.taobao --throttle 1000 --ignore-crashes --ignore-timeouts --ignore-security-exceptions -v-v-v 50>C:\Users\Desktop\monkeylog\log55
  七、控制事件比例
  --pct-touch:触摸事件
  --pct-trackball:轨迹事件(滑动)
  --pct-motion:动作事件(手势)
  --pcy-nav:基本导航事件
  --pct-appswitch:启动activity事件
  --pct-majornav:主要导航事件
  --pct-ratation:屏幕选择事件
  --pct-syskeys:“系统”按键事件,如关机,音量,返回键
  具体的时间比例根据实际的项目来。
  例如跑淘宝的过程中,轨迹球事件占30%,触摸事件占30%:adb shell monkey -p com.taobao.taobao --throttle 1000 --pct-touch 30 --pct-trackball 30 --ignore-crashes --ignore-timeouts --ignore-security-exceptions -v-v-v 50>C:\Users\Desktop\monkeylog\log55
  设置了比例后就发现各个类型的事件比例不一样了。
  八、分析错误日志
  1.在日志中找有哪些错误(ANR,crash,exception,timeout),出现几次。
  2.找到错误后再定位哪些app或者事件出错。
  3.提交bug,并附上日志信息。
  4.开发修复bug后,进行回归验证,使用之前的命令再执行一遍,注意seed值要一样。
  5.实在不会就把日志发给开发,让他们自己分析吧。
  (1)ANR问题(程序无响应):在日志中搜索“ANR"(application no response)
  (2)闪退问题:在日志中搜索"crash"
  (3)异常:搜索"exception"
  (4)强制退出:搜索"force closed"

      本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号