一、monkey介绍(不重要)
monkey是一个程序,运行在模拟器或设备上,生成伪随机的用户事件流,如点击、触摸或手势,以及一些系统级事件,可使用monkey进行随机但是可重复的压力测试,monkey主要用于检查和评估被测程序的稳定性,用于稳定性的冒烟测试。
二、环境准备-adb连接真机或模拟器
1、adb连接真机,需要将手机的开发者选项打开,并且允许usb调试,在cmd窗口,输入adb devices,就可以查看到连接上的真机的设备号
2、adb连接模拟器
逍遥模拟器的ip地址以及端口号:127.0.0.1:21503
夜神模拟器的ip地址以及端口号:127.0.0.1.62001
adb连接本地模拟器:adb connect 127.0.0.1:21503
3、查看包名(adb shell pm list package)ps:包名也可以直接问研发
要是有多个设备连接adb可以再命令中间加上-s ip地址
adb -s 127.0.0.1 shell pm list package
4、扩展:adb抓log
格式1:打印默认日志数据
adb logcat
格式2:需要打印日志详细时间的简单数据
adb logcat -v time
格式3:需要打印级别为Error的信息
adb logcat *:E
格式4:需要打印时间和级别是Error的信息
adb logcat -v time *:E
格式5:需要打印时间并将日志保存到电脑固定的位置,比如D:\log.txt
adb logcat -v time >D:\log.txt
三、monkey命令详解
adb shell monkey -p com.apex.wmxt --throttle 100 -s 100 -v 10000 1>d:\monkey.log 2>d:\error.log
-p:后面跟着对应的包名,如果是整机测试,就不需要设备
--throttle<毫秒>:指定用户操作(即事件)间的时延,如果不指定这个参数,monkey会尽可能快的生成和发送消息。
-s <数字>:种子,100表示seed的值,seed会根据这个值去生成随机事件序列。用相同的seed值再次运行monkey,将生成相同的的事件序列。
-v:日志的详细程度,-v -v -v日志最详细
10000:生成的随机事件的次数
1>d:\monkey.log 2>d:\error.log:将日志保存在本地,标准流与错误流分开保存,执行以上命令,Monkey的运行日志和异常日志将被分开保存。此时Monkey的运行日志将被保存在monkey.txt文件中,而异常日志将被保存在D盘下的error.txt中。
四、monkey事件分类
参数: --pct-{+事件类别}{+事件类别百分比}
用于指定每种类别事件的数目百分比(在Monkey事件序列中,该类事件数目占总事件数目的百分比)
示例:
0:--pct-touch{+百分比}
调整触摸事件的百分比(触摸事件是一个down-up事件,它发生在屏幕上的某单一位置)
效果:在屏幕某处按下并抬起的操作,在手机上的效果类似与点击
adb shell monkey -p cn.emoney.acg --pct-touch 10 1000
1:--pct-motion {+百分比}
调整手势(动作)事件的百分比(手势事件由屏幕上某处的一个down事件、一系列的伪随件机事和一个up事件组成),在手机上类似与没有拐弯的直线滑动操作
adb shell monkey -p cn.emoney.acg --pct-motion 20 1000
3:--pct-trackball {+百分比}
调整轨迹事件的百分比(轨迹事件由一个或几个随机的移动组成,有时还伴随有点击)
这个事件就是模拟轨迹球的操作,现在的android机子大多没有轨迹球,但轨迹球事件中包含曲线滑动操作,如果被测程序需要曲线滑动可以选用这个参数。
adb shell monkey -p cn.emoney.acg --pct-trackball 30 1000
6:--pct-nav {+百分比}
调整“基本”导航事件的百分比(导航事件由来自方向输入设备的up/down/left/right组成)
基本导航事件是指点击方向输入设备的上/下/左/右按键的操作,现在的手机没有上下左右按键,这种事件用的较少
7:--pct-majornav {+百分比}
调整“主要”导航事件的百分比(这些导航事件通常引发图形界面中的动作,如:5-way键盘的中间按键、回退按键、菜单按键)
8:--pct-syskeys {+百分比}
系统按键事件。即系统保留按键,如HOME键,BACK键,拨号键,挂断键,音量键等。
9:--pct-appswitch{+百分比}
调整启动 Activity 的百分比。在随机间隔里, Monkey 将执行一个 startActivity () 调用,作为最大程度覆盖包中全部 Activity 的一种方法。
11:--pct-anyevent{+百分比}
调整其它类型事件的百分比。它包罗了所有其它类型的事件,如:按键、其它不常用的设备按钮、等等。 约束限制
五、系统崩溃事件
--ignore-security-exception :程序发生许可错误(例如启动一些需要许可的Activity)导致的异常时,Monkey将停止运行。设置后,Monkey将继续发送事件给系统,直到事件计数完成。
--ignore-timeouts:应用程序发生任何超时错误(如“Application Not responding”对话框)Monkey将停止运行。设置后,系统会忽略超时事件,继续执行。
--ignore-crashes:忽略崩溃和异常,继续执行。
程序发生崩溃或异常时Monkey会停止运行。设置后,Monkey会继续执行。
六、遇到的问题
1、连接android模拟器的时候,提示该问题:adb server version (31) doesn’t match this client (40):
原因是adk下的adb版本与android模拟器下的adb版本不一致导致的,将android模拟器下的adb替换成sdk下的adb即可;
逍遥模拟器下的adb地址:
这篇文章会一直更新,以后使用monkey遇到的问题,都会一直补充在里面。。。。