Monkey测试:
是Andriod是自动化测试的一种手段,Monkey测试本身非常简单,就是模拟用户的按键输入,触摸屏输入,手势输入等,看设备多久时间会出现异常(比如调节音量,亮度调节,横竖屏切换,截图,播放音乐)
为什么要做Monkey测试? 模拟用户,稳定性
模拟人的操作
模拟人长时间的测试
模拟人不同场景操作
怎么去做Monkey测试?
准备工作:
1)电脑端:androidsdk/JDK配置环境变量
2)手机端:手机选择
3)建议真机测试,学习可以试用模拟器(夜神,逍遥,天天,雷电),工作不要用个人手机和模拟机
monkey测试不需要root,也不建议刷机
测试机:获取root权限 获取底层数据
4)配置:
版本号,连续点击5-7次,开发者模式开启
USB调试:开发者选项------>打开USB调试
连接手机:USB/Wifi同一局域网
cmd命令:输入adb devivces
devices:表示正常
offline:拔插USB即可 模拟器---模拟器升级到最新版本
no devices:驱动
unauthorized:未授权
可能遇到的问题?端口占用 ,检查端口占用的命令:netstat-ano|findstr “5037”
360、手机助手可能会占用5037的端口,卸载掉
Monkey测试:简单命令
参数:
1.count 事件数,必填
2.--ignore-crashes:崩溃,闪退
--ignore-timeouts:超时,无响应
如果使用这个参数,发生奔崩溃或者无响应的时候,会结束应用进程,重新打开继续执行,直到事件次数结束
不使用该参数,发生上述问题,monkey测试赛停止在问题界面--缺乏稳定性测试的意义
adb shell monkey:得到所有monkey的参数
--ignore-security-exceptions :安全认证
忽略测试过程中发生的安全方面的认证等的问题,一旦发生该类的问题后,结束app的进程,或者继续操作,知道设置的次数完成,一般情况都要用上
怎么固定到具体的app?
-p包名,指定到具体的某一个app
adb shell pm list package -3 获取用户安装的第三方app的包名
adb shell pm list package -s 获取系统的app包名
确认包名:adb shell dumpsys activity| find “mFocusedActivity”
显示当前正在使用的app
-s SEED 定义明确的seed
N个seed
每一个seed可能会发N个bug
bug总量会特别多--不利于测试,稳定性验证
======>要定义唯一seed值,monkey测试赛从头到尾都用这个seed值
[-v [-v] ... ]:日志的详细程度 共3个
v越多,日志越详细
常用命令:
-p 指定包名 com.hpbr.bosszhipin
adb shell monkey -p com.hpbr.bosszhipin 200----> boss直聘App,执行200次的事件操作
-v 输出日志的级别:-v -v -v 根据项目的质量要求,一般-v -v。华为常用-v -v -v,日志最详细
adb shell monkey -p com.hpbr.bosszhipin -v 200
adb shell monkey -p com.hpbr.bosszhipin -v --ignore-crashes --ignore-timeouts --ignore-security-exceptions 200
-s seed 数字型的数值
adb shell monkey -p com.hpbr.bosszhipin -v -s 3468 200
【√ 开发复现或者验证bug能够以相同的序列进行操作:
事先设定,需要项目开始执行monkey测试时候到monkey测试结束的时候是一致的】
monkey finished 表示monkey完成并没有发生问题,其他任何状态都是bug
遇到的问题?
1.monky测试的时候自动退出app账号了怎么办?
可以通过其它脚本或者命令来检测是否退出,如果退出就进行登录
或者更换seed值,也能达到要求
2.monkey测试可以针对固定步骤或者功能或者模块进行压力测试?
不可以,可以采用自动化的方式实现
3.monkey测试的事件次数或者时间多少?
次数:35-36万次 8-10小时 ,下班执行,早上来看执行结果
工作中Monkey的使用
日志的分析
bug的定位
bug编写规范
anr日志提取
adb logcat的使用
后续补上。。