zoukankan      html  css  js  c++  java
  • Monkey知识

    配置Monkey环境

     

    1.下载文件:adt-bundle-windows-x86_64-20131030

    2.配置环境变量:新增环境变量Android(环境变量的名字可以随便起)的路径 C:\worktools\monkey\adt-bundle-windows-x86_64-20131030\adt-bundle-windows-x86_64-20131030\sdk\platform-tools

    3.在path中加入;%Android%

    4.cmd-adb 验证是否成功

    5.monkey命令举例

    Monkey Test文档

         

    1. Monkey测试简介

     

    Monkey测试是Android平台自动化测试的一种手段,通过Monkey程序模拟用户触摸屏幕、滑动Trackball、按键等操作来对设备上的程序进行压力测试,检测程序多久的时间会发生异常。

    2. Monkey程序介绍

     

    Monkey程序由Android系统自带,使用java语言写成,在Android文件系统中的存放路径是:/system/framework/monkey.jar;

    Monkey.jar程序是由一个名为“monkey”的shell脚本来启动执行,shell脚本在Android文件系统中的存放路径是:/system/bin/monkey;

     

    这样可以通过在cmd窗口中执行:adb shell monkey (+命令参数)来进行Monkey测试。

    3. Monkey命令的简单帮助

     

     要获取Monkey命令自带的简单帮助,在cmd中执行命令:adb shell monkey –help

     

    4. Monkey命令参数介绍

     

    1>.参数:-p(后面跟要覆盖测试的报名。可以有多个-p,每个-p后跟一个报名)

    参数 –p 用于约束限制,用此参数指定一个或多个包(Package,即App).指定包之后,Monkey将只允许系统启动指定的App。如果不指定包,Monkey将允许系统启动设备中的所有App。

    指定一个包:adb shell monkey –p com.app.test 100

    说明:com.app.test为包名,100是事件计数(即让Monkey程序模拟100次随机用户时间)

    指定多个包:adb shell monkey –p com.app.test –p com.app.tester 100

    不指定包:adb shell monkey 100

    说明:Monkey随机启动App并发送100个随机事件

    查看设备中所有的包,在cmd窗口中执行如下命令:

    >adb shell

    #cd data/data

    #ls

     

     

    2>.参数:-v (可以有多个,个数越多,产生的log越详细。最多为三个)

    用于指定反馈信息级别(信息级别就是日志的详细程度),总共分3个级别,分别对应的参数如下表示:

    日志级别 Level 0

    示例:adb shell monkey –p com.app.test –v 100

    说明:缺省值,仅提供启动提示、测试完成和最终结果等少量信息

    日志级别 Level 1

    示例:adb shell monkey –p com.app.test –v –v 100

    说明:提供较为详细的日志,包括每个发送到Activity的事件信息

    日志级别 Level 2

    示例:adb shell monkey –p com.app.test –v –v –v 100

    说明:最详细的日志,包括了测试中、选中/未选中的Activity信息

    3>.参数:-s (后面跟整数,相同的seed值表示产生的随机事件流相同)

    用于指定伪随机数生成器的seed值,如果seed相同,则两次Monkey测试所产生的事件序列也相同

    示例:

     Monkey 测试1:adb shell monkey –p com.app.test –s 10 100

     Monkey 测试2:adb shell monkey –p com.app.test –s 10 100

    两次测试的效果是相同的,因为模拟的用户操作序列是一样的

    4>.参数:--throttle <毫秒> (后面跟毫秒数,表示每个随机事件中间的事件间隔)

    用于指定用户操作(即事件)间的时延,单位是毫秒;

    示例:adb shell monkey –p com.app.test –throttle 300 100

    5>.参数:--ignore-crashes (发生crash时,不停止monkey执行)

    用于指定当应用程序崩溃时(Force&Close错误),Monkey是否停止运行。如果使用此参数,即使应用程序崩溃,Monkey依然会发送事件,直到事件计数完成。

    示例:adb shell monkey –p com.app.test –ignore-crashes 100

    6>.参数:--ignore-timeouts (发生ANR时,不停止monkey执行)

    用于指定当应用程序发生ANR (Application No Responding)错误时,Monkey是否停止运行。如果使用此参数,即使应用程序发生ANR错误,Monkey依然会发送事件,直到事件计数完成。

    7>.参数:--ignore-security-exceptions (发生许可错误时,不停止monkey执行)

    用于指定当应用程序发生许可错误时,Monkey是否停止运行,如果使用此参数,即使应用程序发生许可错误,Monkey依然会发送事件,直到事件计数完成。

    8>.参数:--kill-process-after-error (发生错误时,停止monkey执行)

    用于指定当应用程序发生错误时,是否停止其运行。如果指定此参数,当应用程序发生错误时,应用程序停止运行并保持在当前状态。(系统不会结束该应用程序的进程)

     

     

    9>.参数:--monitor-native-crashes

    用于指定是否监视并报告应用程序发生崩溃的本地代码

     

    四小时Momkey: 

    adb shell monkey -p com.app.test -v -v -v --throttle 300 --ignore-crashes --ignore-timecouts --ignore-security-exceptions 14400000 >test.log

     

    5. Monkey日志分析(重要)

    l Null指针异常:空指针异常主要是有NullPointerException异常提示

    l debug异常:出现的是IllegalStateException异常

    l 低内存异常:出现的是OutOfMemoryError异常

    l 操作无响应异常:TimerOut(KeyDispatchingTimedOut提示)

    l RuntimeException异常(操作无响应或应用的服务无法启动或连接)

    l StaleDataException/readException异常(android数据库出现异常)

    l IllegalArgumentException异常(向函数传递了一个不正确或不合法的参数)

     

    关键词:ANR、Exception、Null、Error、crash(Fatal)

     

     

     分析日志,可参考:http://www.douban.com/note/257030241/

     

  • 相关阅读:
    2-SAT模板
    AC自动机
    省选预备营-Day3(图论) 总结
    省选预备营-Day2(分治) 总结
    左偏树(可并堆)总结
    省选预备营-Day1(数据结构) 总结
    OI基础知识
    C++ 堆
    CH4601 普通平衡树
    java 函数形参传值和传引用的区别
  • 原文地址:https://www.cnblogs.com/minna/p/5269333.html
Copyright © 2011-2022 走看看