zoukankan      html  css  js  c++  java
  • monkey测试简介

    今天开始我也写博客了,一点一点积累吧!

    monkey测试主要写了5大块,分别如下:

    一.什么是monkey测试及程序介绍

    二.monkey测试环境准备

    三.monkey基本命令和常用参数

    四.monkey测试结果分析

    五.monkey注意事项

    一.什么是monkey测试及程序介绍

    1.什么是monkey测试

        monkey测试是运行在模拟器或设备上的一段程序,它产生伪随机事件流(点击、触摸、手势等一些系统级别的事件),主要用于app压力测试,来观察被测应用程序的稳定性和可靠性。

    2.monkey的程序介绍

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

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

        (3).monkey的源码可以在官网上下载

    3.monkey的架构

        monkey 运行在设备或模拟器上面,可以脱离PC运行(普遍做法是将monkey作为一个像待测应用发送随机按键消息的测试工具。验证待测应用在这些随机性的输入面前是否会闪退或者崩溃)

    2.monkey测试环境准备

    1.安装JDK,并配置环境变量

        http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

     (1).系统变量→新建 JAVA_HOME 变量,变量值填写jdk的安装目录

     (2).系统变量→寻找 Path 变量→编辑,在变量值最后输入 %JAVA_HOME%in;%JAVA_HOME%jrein;

     (3).系统变量→新建 CLASSPATH 变量,变量写.;%JAVA_HOME%lib;%JAVA_HOME%lib ools.jar

    2.安装SDK,并配置环境变量(需要下载完整版sdk)

       http://developer.android.com/sdk/index.html(翻@墙)

       翻@墙教程(http://blog.softweek.net/article/google-hosts)

     (1).系统变量→新建 SDK_HOME 变量,变量值填写sdk的安装目录

     (2).系统变量→寻找 Path 变量→编辑,在变量值最后输入%SDK_HOME% ools; %SDK_HOME% platform-tools

    3.连接手机,测试adb环境

    (1).在手机上设置【设置】--【系统设置】--【开发者选项】--开启【USB调试】模式;

    (2).将手机通过数据线和电脑相连接,使用adb devices 来查看设备Monkey测试。

    4.apk包名查看(三种方法)

     (1).手机中安装包名查看器(在应用市场直接下载)

     (2).源码下的AndroidManifest.xml文件查看(无源码反编译)

    打开AndroidManifest.xml, manifest节点的package属性值是应用的包名

     (3).aapt命令查看(aapt是sdk自带的一个工具,在sdkuilds-tools目录下)

        命令行中切换到aapt.exe目录执行:aapt dump badging E:apkes3.apk;

     运行后的结果中以下两行分别是应用包名package和入口activity名称
       package: name=’com.estrongs.android.pop’
       launchable-activity: name=’com.estrongs.android.pop.view.FileExplorerActivity’

     

    3.monkey基本命令和常用参数

    基本命令
    adb shell monkey -p com.android.mms --throttle 500 -v -v -v -s 99 --ignore-crashes --ignore-timeouts 164000 > E:monkey.txt

    -P(指定包名)
    * 指定一个包: adb shell monkey -p com.htc.Weather 100
    * 指定多个包:adb shell monkey -p com.htc.Weather –p com.htc.pdfreader
    * 不指定包:adb shell monkey 100

    -V(指定log级别)
    adb shell monkey -p com.htc.Weather –v 100
    说明 缺省值,仅提供启动提示、测试完成和最终结果等少量信息;
    adb shell monkey -p com.htc.Weather –v -v 100
    说明 提供较为详细的日志,包括每个发送到Activity的事件信息;
    adb shell monkey -p com.htc.Weather –v -v –v 100
    说明 最详细的日志,包括了测试中选中/未选中的Activity信息;

    -S(随机数的种子)

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

    eg:

        Monkey测试1:adb shell monkey -p com.htc.Weather –s 10 100

        Monkey测试2:adb shell monkey -p com.htc.Weather –s 10 100

    --throttle(毫秒)

    adb shell monkey -p com.htc.Weather –throttle 3000 100

    一般为了模拟正常用户操作频率,--throttle <毫秒>值建议为500

    --ignore-crashes

    用于指定当应用程序崩溃时(Force Close错误),Monkey是否停止运行

    --ignore-timeouts

    用于指定当应用程序发生ANR(Application No Responding)错误时,Monkey是否停止运行

    下图是所有命令汇总,其他命令用的较少,可自行查阅官方文档:http://developer.android.com/tools/help/monkey.html

    4.monkey测试结果分析

    Monkey测试的log分析,我们可以通过几个关键词来判断测试是否通过。

    跑monkey时需要记录3个log,monkey的log(重新指向到某个txt中),dump system的log(查看系统占有),android本身的log logcat

    Monkey log

    查看Monkey finished字段

    打开LOG,查看log的最下端,是否有类似以下字段:

    ## Network stats: elapsed time=5123ms (5123ms mobile, 0ms wifi, 0ms not connected)

    // Monkey finished

    这个字段表明本次的Monkey没有异常,测试通过。(如果设置--ignore-crashes和--ignore-timeouts则不能证明一定没有异常)

    ANR

    ANR(Application Not Responding)是一个比较容易遇到的稳定性问题,当一个Android App遇到以下两种情况之一时,会产生ANR:

    1.输入事件5秒内未响应完成,例如点击屏幕,按键等操作;

    2.BroadcastReceiver10秒内未执行完毕;

    在Monkey log中搜索”ANR”字段,如果搜索到有结果,则表明有进程出现问题,测试不通过。

    Android的ANR日志存放在/data/anr/traces.txt。其中包括了App每个线程的堆栈信息,我们可以使用以下命令将日志导出到电脑上:

    1.进入adb shell,使用以下命令将ANR日志文件复制到可导出的文件夹:

    cp /data/anr/traces.txt /sdcard/traces.txt

    2.然后用adb命令导出到本地的文件:

    adb pull /sdcard/traces.txt 本地文件路径

    FC

    FC(Force Close)强制关闭会出现crash字段,在Log中搜索”crash”(“Exception”)字段,如果有搜索有结果,则表示测试过程中,测试对象出现了崩溃的现象,因此测试不通过。

    无法搜索到上述信息

    出现这种情况,一般都是外界原因而非程序本身原因。比如电脑异常测试中断,需要重新测试

    5.monkey注意事项

    在进行monkey测试的时候,应该避免以下内容导致的测试不能正常结束:

    1、电脑设置从不休眠

    2、手机设置长亮,防止手机进入锁屏状态

    3、开启系统log(具体可根据每个机型平台决定)

    4、避免打扰别人,给手机插上耳机

  • 相关阅读:
    enumerate函数和zip函数返回的对象,都需要用list()函数转换为列表
    zip函数
    列表和元组的互相转换
    元组和列表的区别
    帮小朋友写的第一个程序
    remove del pop的区别
    如何运用Linux进行查看tomcat日志
    Linux大全
    liunx中组合查询的命令
    常见的问题
  • 原文地址:https://www.cnblogs.com/tekoyo/p/5288661.html
Copyright © 2011-2022 走看看