环境的搭建
monkey的使用
monkeyrunner的使用
主要遇到的问题
区别
一、Monkey的使用
Monkey是Android系统自带的一个命令行工具,可以运行在模拟器里或实际设备中。Monkey可以向被测试的应用程序发送伪随机的用户事件流(如按键、触屏、手势等),实现对应用程序进行测试的目的。Monkey测试是Android自动化测试的一种手段,它非常简单易用,在模拟器或设备上运行的时候,如果用户出发了点击、触摸、手势等操作,它就会产生随机脉冲信号。因此我们可以通过Monkey用随机重复的方法来对应用程序进行一些稳定性、健壮性方面的测试。Monkey测试是一种测试软件稳定性、健壮性的快速有效方法。
二、常用命令
adb shell monkey -p com.dachen.medicalcircle -s 500 --throttle 300 --pct-motion 20 --pct-nav 20 --pct-majornav 15 --pct-appswitch 5 --pct-anyevent 5 --pct-rotation 10 --pct-trackball 0 --pct-syskeys 0 --ignore-crashes --ignore-timeouts --monitor-native-crashes -v -v 10000 1>D:\monkey_log\java_monkey_log.txt
二、Monkeyrunner的使用
1.MonkeyRunner的脚本录制与回放
2.1 MonkeyRunner的脚本录制
(1)安卓手机连接电脑,设置允许电脑访问设备数据;
(2)在命令行控制台输入adb devices查看已连接真机或模拟器设备的名称,这里以真机为例;
(3)再在命令行控制台输入monkeyrunner monkey_recorder.py,开始启动脚本录制;
(4)在MonkeyRecorder录制脚本窗口中对应用进行操作
MonkeyRecorder窗口介绍:
a.可以自动显示手机当前的界面;
b.自动刷新手机最新状态;
c.点击手机界面即可对手机进行操作,同时会反应到真机,而且会在右侧插入操作脚本;
d.wait:用来插入下一次操作的时间间隔,点击后即可设置时间,单位是秒;
Press a Button:用来确定需要点击的按钮,包括menu、home、search,以及对按钮的press、down、up属性
Type Something:用来输入内容到输入框
Fling:用来进行拖动操作,可以向上、下、左、右,以及操作的范围
Export Actions:用来导出脚本
Refresh Display:用来刷新手机界面,估计只有在断开手机后,重新连接时才会用到
当我们在这个工具上点击时,真机也会跟着执行,并且会显示每一步我们点击的位置的坐标,比如,退出医生圈的登录会记录如下:(因为工具每次操作后反应会有点慢,最好在每个操作后插入wait等待)
(5)录制完成后,然后用“Export Actions”导入文件,如:logoff.mr
2.2 MonkeyRunner脚本回放
在命令行窗口中通过monkey_playback对录制的文件进行回放,输入“monkeyrunner monkey_playback.py”+“已保存的使用monkey_recorder.py录制的脚本文件路径及其名称” 如下图:
运行结果就是刚才录制的操作在手机上重新再做一遍。脚本不一定每次都能顺利执行,因为和每人手机的配置、脚本的设计等很多因素都有关联。
2.3 MonkeyRunner脚本手工编写
如果应用MonkeyRunner做基于Android平台的自动化测试工作,那么就要手工脚本的编写就很重要。在MonkeyRunner的jar包中包含了很多类和一些提供录制、脚本控制、文档输出和元素捕获用的子包及对应的一些实现类,而主要用到的是MonkeyRunner、MonkeyDevice、MonkeyImage这三个类。
MonkeyRunner:它是一个为MonkeyRunner程序提供工具方法的类。这个类提供了用于连接MonkeyRunner到设备或模拟器的方法,同时还提供了用于创建一个MonkeyRunner程序的用户界面以及显示内置帮助的方法。
MonkeyDevice:它是一个设备或模拟器的类。这个类提供了安装和卸载程序包、启动一个活动(Activity)以及发送键盘或触摸事件到应用程序的方法,同时也可以用这个类来运行测试包。
MonkeyImage:它是一个截图对象的类。这个类提供了截图、将位图转换成各种格式、比较两个MonekyImage对象以及写图像到文件的方法。
三、主要遇到的问题
3.1 环境检查时,在命令行窗口输入命令后,提示“***不是内部命令,也不是可运行的程序或批处理文件”。原因:未关闭360相关应用的进程,或者是变量值配置不正确。
3.2 运行monkeyrunner时报错,如下图:
原因:bat脚本有两处错误,需修改,如下图:
3.3 MonkeyRunner录制脚本时,如果操作步骤过多时,回放时可能会与录制时的操作不一致,所以录制脚本最好不要太过复杂。
3.4 MonkeyRunner回放同一个录制脚本时,不一定每次都能运行成功,如下图
第一次运行
第二次运行
四、Monkey与MonkeyRunner的区别
1.Monkey工具直接运行在设备或模拟器的adb shell中,生成用户或系统的伪随机事件流;MonkeyRunner工具则是在工作站上通过API定义的特定命令和事件控制设备或模拟器。
2.Monkey是一种轻量级的性能测试工具;MonekyRunenr主要用户系统级别的回归测试、压力测试。