zoukankan      html  css  js  c++  java
  • Monkey测试结果分析

    一. 初步分析方法

     
    Monkey测试出现错误后,一般的差错步骤为以下几步:
     
    1、 找到是monkey里面的哪个地方出错
     
    2、 查看Monkey里面出错前的一些事件动作,并手动执行该动作
     
    3、 若以上步骤还不能找出,可以使用之前执行的monkey命令再执行一遍,注意seed值要一样
     
    一般的测试结果分析:
     
    1、 ANR问题:在日志中搜索“ANR”. Application Not Response.
     
    2、 崩溃问题:在日志中搜索“Exception”  异常。
     
     
    二. 详细分析monkey日志
     
    将执行Monkey生成的log,从手机中导出并打开查看该log;在log的最开始都会显示Monkey执行的seed值、执行次数和测试的包名。
     
    1.首先我们需要查看Monkey测试中是否出现了ANR或者异常,具体方法如上述。
     
    2.然后我们要分析log中的具体信息,方法如下:
     
      ①查看log中第一个Switch,主要是查看Monkey执行的是那一个Activity,譬如下面的log中,执行的是com.tencent.smtt.SplashActivity,在下一个swtich之间的,如果出现了崩溃或其他异常,可以在该Activity中查找问题的所在。
     
    :Switch:#Intent;action=android.intent.action.MAIN;category=android.intent.category.LAUNCHER;launchFlags=0x10000000;component=com.tencent.smtt/.SplashActivity;end
     
      // Allowing start of Intent {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER]cmp=com.tencent.smtt/.SplashActivity } in package com.tencent.smtt
     
      ②在下面的log中,Sending Pointer ACTION_DOWN和Sending Pointer ACTION_UP代表当前执行了一个单击的操作;
     
    Sleeping for 500 milliseconds这句log是执行Monkey测试时,throttle设定的间隔时间,每出现一次,就代表一个事件。
     
    SendKey(ACTION_DOWN) //KEYCODE_DPAD_DOWN   代表当前执行了一个点击下导航键的操作;
     
    Sending Pointer ACTION_MOVE     代表当前执行了一个滑动界面的操作。
     
    :Sending Pointer ACTION_DOWN x=47.0 y=438.0
     
    :Sending Pointer ACTION_UP x=47.0 y=438.0
     
    Sleeping for 500 milliseconds
     
    :SendKey (ACTION_DOWN): 20   //KEYCODE_DPAD_DOWN
     
    :SendKey (ACTION_UP): 20   //KEYCODE_DPAD_DOWN
     
    Sleeping for 500 milliseconds
     
    :Sending Pointer ACTION_MOVE x=-2.0 y=3.0
     
    :Sending Pointer ACTION_MOVE x=4.0 y=-3.0
     
    :Sending Pointer ACTION_MOVE x=-5.0 y=-3.0
     
    :Sending Pointer ACTION_MOVE x=3.0 y=4.0
     
    :Sending Pointer ACTION_MOVE x=-4.0 y=1.0
     
    :Sending Pointer ACTION_MOVE x=-1.0 y=-1.0
     
    :Sending Pointer ACTION_MOVE x=-2.0 y=-4.0
     
      ③如果Monkey测试顺利执行完成,在log的最后,会打印出当前执行事件的次数和所花费的时间;// Monkey finished代表执行完成。Monkey执行中断,在log的最后也能查看到当前已执行的次数。Monkey执行完成的log具体如下:
     
    Events injected: 6000
     
    :Dropped: keys=0 pointers=9 trackballs=0 flips=0
     
    ## Network stats: elapsed time=808384ms (0ms mobile, 808384ms wifi, 0msnot connected)
     
    // Monkey finished
     

    三、关于Monkey测试的停止条件

    Monkey Test执行过程中在下列三种情况下会自动停止:

    1、如果限定了Monkey运行在一个或几个特定的包上,那么它会监测试图转到其它包的操作,并对其进行阻止。

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

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

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

  • 相关阅读:
    Fragments (Android官方文档中文版)
    Fragment and activity的生命周期对比和区别
    frida报错frida.InvalidArgumentError: device not found问题解决方案
    XCTF---easyjava的WriteUp
    XCTF---easyjni的WriteUp
    日常破解--从XCTF的app3题目简单了解安卓备份文件以及sqliteCipher加密数据库
    Anroid关于fragment控件设置长按事件无法弹出Popupwindows控件问题解决记录
    DEX文件解析---2、Dex文件checksum(校验和)解析
    日常破解--XCTF easy_apk
    日常破解---XCTF_APP1获取flag记录
  • 原文地址:https://www.cnblogs.com/hanfanfan/p/7095662.html
Copyright © 2011-2022 走看看