美文网首页
Android monkey测试小结

Android monkey测试小结

作者: 新来的小白 | 来源:发表于2019-12-13 21:18 被阅读0次

    本文转自 Android自动化测试--monkey详细到炸的总结
    一、Monkey简介:
    Monkey是Android中的一个命令行工具,可以运行在模拟器里或者现实设备中,向系统发送伪随机的用户事件流(点击、滑动、Application切换、横竖屏、应用关闭)实现对正在开发的应用程序进行压力测试。monkey测试是一种为了测试软件的稳定性,健壮性的快速有效的方法。只针对Activity做测试,不能对Service做测试。

    二、质量要求:
    版本release(发布)前,Monkey跑出来的结果中crash要为0,final release前,Monkey跑完的总次数应为25W,结果里不允许有nullPointException出现。

    三、Monkey命令参数:
    1> -p
    用于约束限制,用此参数指定一个或者多个包,指定包之后,monkey将只允许启动指定app,如果不指定包,monkey将启动系统中所有的app 。
    例:指定一个包 monkey -p com.htc.weather -v 1000
    指定多个包 monkey -p com.htc.weather -p com.htc.pdfreader -p com.htc.photo.widgets -v 1000
    不指定包 monkey -v 1000
    2> -v
    用于指定反馈的信息级别(日志的详细程度),分为三个级别,级别越高,日志越详细。
    level 0:
    例:monkey -p com.htc.weather -v 1000

    level 1:
    例:monkey -p com.htc.weather -v -v 1000
    level 2:
    例:monkey -p com.htc.weather -v -v -v 1000
    3> -s
    指定伪随机数生成器的seed值,如果seed相同,则两次monkey 测试产生的事件序列也相同。
    例: monkey -p com.htc.weather -s 35 -v 1000
    4> --throttle(毫秒)
    制定每个事件结束后的间隔时间,降低系统压力。(如果不指定系统会尽快的发送事件序列)
    例:monkey --throttle 300
    5> 定制事件
    --pct-touch:指定触摸事件的百分比,例:--pct-touch 5% , 其他相关的:
    --pct-motion <percent> (滑动事件)
    --pct-trackball <percent> (轨迹球事件)
    --pct-nav <percent> (导航事件 up/down/left/right)
    --pct-majornav <percent> (主要导航事件 back key 、 menu key)
    --pct-syskeys <percent> (系统按键事件 Home 、Back 、startCall 、 endCall 、 volumeControl)
    --pct-appswitch <percent> (activity之间的切换)
    --pct-anyevent <percent>(任意事件)
    6>调试选项
    --dbg-no-events:初始化启动的activity,但是不产生任何事件。
    --hprof:指定该项后在事件序列发送前后会立即生成分析报告 —— 一般建议指定该项。
    --ignore-crashes:忽略崩溃
    --ignore-timeouts:忽略超时
    --ignore-security-exceptions:忽略安全异常
    --kill-process-after-error:发生错误后直接杀掉进程
    --monitor-native-crashes:跟踪本地方法的崩溃问题
    --wait-dbg:知道连接了调试器才执行monkey测试。
    四、使用示例:(本例测试环境Android studio+模拟器Nexus_5_API_23)
    1>首先配置Android环境,要使用虚拟机测试的话,还要创建模拟器(真机测试就不用管)。
    2>进入平台工具,我的platform-tools在下图所示路径
    在Android studio自带的命令行(或者是cmd)里输入以下命令

    3>启动模拟器(执行adb devices命令可以列出已连接的设备),安装待测试apk
    先把apk放在platform-tools文件夹下,执行命令: adb install 文件名.apk
    4>找到应用程序的主Activity所在的包名,分别执行以下命令:

    ls命令执行之后从列出的包名中找到要测试的apk的主Activity的包名。
    5>使用monkey进行自动化测试
    monkey -p 包名 -v 1000
    五、测试结果分析:
    1>

    2>

    3>

    4>

    5>测试完成,没有crash和exception出现的情况

    6>测试中间出现crash或者exception,monkey停止会打印相关错误信息。
    六、monkey测试停止条件(也可以在命令里设置出现这些停止条件后可以继续跑完测试数量)
    1>如果先顶了Monkey运行在一个或几个特定的包上,那么它会检测试图转到它包的操作,并对其进行阻止;

    2>如果应用程序崩溃或接收到任何失控异常,Monkey将停止并报错;

    3>如果应用程序产生了应用程序不响应(application not responding)的错误,Monkey将会停止并报错。

    通过多次并且不同设定下的Monkey测试才算它是一个稳定性和健壮性足够的程序。
    

    七、为保证测试数量的完整进行,一般不会在发生错误时立刻退出压力测试。monkey 测试命令如下
    adb shell monkey -p 包名 -s 500 --ignore-crashes --ignore-timeouts --monitor-native-crashes -v -v -v 10000

    八、把log导出到本地
    这里分为两种情况:
    1.如果我们没有进入到shell则直接执行命令:
    adb shell monkey -p 包名 -s 500 --ignore-crashes --ignore-timeouts --monitor-native-crashes -v -v -v 10000 > E:\monkey_log\test1.txt

    如果已经进入adb shell,正确的导出步骤:(在前边我们执行完adb shell命令之后,进入shell命令相当于进入Linux的root下面,没有权限在里面创建文件。)
    执行exit命令退出shell

    然后执行adb shell monkey -p 包名 -s 500 --ignore-crashes --ignore-timeouts --monitor-native-crashes -v -v -v 10000 > E:\monkey_log\test1.txt

    ————————————————
    版权声明:本文为CSDN博主「信安之耻」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/zjnuwsf/article/details/52669764

    相关文章

      网友评论

          本文标题:Android monkey测试小结

          本文链接:https://www.haomeiwen.com/subject/wieqnctx.html