Android Monkey and Monkeyrunner 知识分享

准备PPT 内容包括:
   环境的搭建
   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:用来确定需要点击的按钮,包括menuhomesearch,以及对按钮的pressdownup属性

                        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主要用户系统级别的回归测试、压力测试。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值