zoukankan      html  css  js  c++  java
  • Android-monkey测试

    1.什么是monkey

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

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

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

    2. monkey命令

    adb shell monkey -p cn.migu.mgpvrlauncher --throttle 500 -s 12 --hprof --ignore-crashes --ignore-timeouts --ignore-security-exceptions --ignore-native-crashes --monitor-native-crashes -v -v -v 10000>log文件存放位置

    参数:-p  指定启动包名

    --throttle 时间间隔

    -v:log 每一个 -v 将增加反馈信息的级别

    3.monkey报告

    设备;pcio,oppo

     启动包名:cn.migu.mgpvrlauncher,cn.migu.cloudvrapk    事件count:10000   各事件执行占比:

    //0: 15.0%
    // 1: 10.0%
    // 2: 2.0%
    // 3: 15.0%
    // 4: -0.0%
    // 5: -0.0%
    // 6: 25.0%
    // 7: 15.0%
    // 8: 2.0%
    // 9: 2.0%
    // 10: 1.0%
    // 11: 13.0%

     --pct-touch {+百分比}

    调整触摸事件的百分比(触摸事件是一个down-up事件,它发生在屏幕上的某单一位置)

    adb shell monkey -p com.htc.Weather--pct-touch 10 1000

     --pct-motion {+百分比}

    调整动作事件的百分比(动作事件由屏幕上某处的一个down事件、一系列的伪随机事件和一个up事件组成)adb shell monkey -p com.htc.Weather --pct-motion 20 1000

     --pct-trackball {+百分比}

    调整轨迹事件的百分比(轨迹事件由一个或几个随机的移动组成,有时还伴随有点击)

    adb shell monkey -p com.htc.Weather--pct-trackball 30 1000

    --pct-nav {+百分比}

     调整“基本”导航事件的百分比(导航事件由来自方向输入设备的up/down/left/right组成)

     --pct-majornav {+百分比}

    调整“主要”导航事件的百分比(这些导航事件通常引发图形界面中的动作,如:5-way键盘的中间按键、回退按键、菜单按键)

    adb shell monkey -p com.htc.Weather--pct-majornav 50 1000

     --pct-syskeys {+百分比}

    调整“系统”按键事件的百分比(这些按键通常被保留,由系统使用,如Home、Back、Start Call、End Call及音量控制键)

    adb shell monkey -p com.htc.Weather--pct-syskeys 60 1000

     --pct-appswitch {+百分比}

    调整启动Activity的百分比。在随机间隔里,Monkey将执行一个startActivity()调用,作为最大程度覆盖包中全部Activity的一种方法

    adb shell monkey -p com.htc.Weather--pct-appswitch 70 1000

     --pct-anyevent {+百分比}

    调整其它类型事件的百分比。它包罗了所有其它类型的事件,如:按键、其它不常用的设备按钮、等等

     --pct -anyevent  {+百分比}

    指定多个事件的百分比

    adb shell monkey -p com.htc.Weather--pct-anyevent 50 --pct-appswitch 50 1000

    耗时:pico:1169574ms(约19.4分钟)   oppo:1195275ms(约19.9分钟)

    4.测试结果

    无ANR(Application Not Responding),Crash,Exception,GC(内存泄漏)问题

    (由于本次测试持续时间短,事件数少,未发现任何异常,建议monkey执行时间和事件加长)

    日志分析

    1.在日志中搜索关键字:

    1)搜索报告中的关键字“ANR”,看有无应用无响应的事件(Application Not Responding)

    2)搜索报告中的关键字“crash”,看有无崩溃的事件

    3)搜索报告中的关键字“exception”,看有无其他异常事件。(如果出现空指针, NullPointerException,需格外重视)

    下面的属于monkey自己的问题,忽略

    :Sending Flip keyboardOpen=false

    Got IOException performing flipjava.io.IOException: write failed: EINVAL (Invalid argument)

    // Injection Failed

    4)内存泄露问题搜索"GC"(需进一步分析)

    2. 初步分析法: monkey出现错误后,一般的分析步骤

    1)先找到出现错误的位置

    2)查看出现错误之前2个switch之间的activity

    3)手动执行事件,复现问题

    4)若以上步骤还不能找出,产生错误时,有会seed值,输入相同的seed值,重新按照之前命令跑monkey

  • 相关阅读:
    python递归函数
    python全局替换文件内容脚本第1版
    python的if判断补充
    python装饰器
    python函数作用域
    python函数基础
    python文件操作
    ASCII、Unicode和UTF-8编码的区别
    python基础(二)----数据类型
    python基础第一章
  • 原文地址:https://www.cnblogs.com/muxs/p/15209506.html
Copyright © 2011-2022 走看看