zoukankan      html  css  js  c++  java
  • 【转】monkey工具简介

    原文地址:http://www.testwo.com/blog/6188
     
    一、Monkey 简介
    • Android的SDK 里面,Monkey的tools是一个命令行工具,当连接Android设备时,只要在命令行里输入相应命令就能运行tools;
    • Monkey test是一项压力测试,可以在规定的次数范围内做任何随机的操作,随机操作包括点击、滑动、Application切换、横竖屏、应用关闭等等,用户能做的操作统统可以模拟;
    • Monkey test跑出来crash的bug等级永远为1,版本release前,Monkey跑出的结果中crash要为0。业内标准:final release前,Monkey跑完的总次数应为25W次,其结果里不允许有nullPointException出现.
    二、Monkey 的使用流程

    三、简单的Monkey脚本示例
     

    adb shell monkey -v 10
    其中10代表运行脚本的操作次数为10次,若seed不指定值默认为0;
    后面两行为intent的描述,运行了Android基本的LAUNCHER主进程,LAUNCHER主进程之后运行了MONKEY进程;
    Event percentages,因为命令中只加了一个限制条件,次数为10,当其余参数没有添加时,就如上图百分比出现;
    //Money finished 完成。
    四、Monkey 实例1

    第一个-s emulator-5554 设备的序列号;
    -p com.lovebizhi.wallpaper-1 要测试对象的package name(adb shell data/data),若测试多个对象,则应为-p package_name1 -p package_name2;
    --pct-xxx 用来设定每个事件在测试中的百分比,百分比总和不能超过100%;
    --pct-touch 调整触摸事件的百分比
    --pct-motion 调整动作事件的百分比
    --pct-trackball 调整轨迹事件的百分比(轨迹事件由一个或几个随机的移动组成,有时还伴随着点击)
    --pct-nav 调整“基本”导航事件的百分比(导航事件由来自方向输入设备的up/down/left/right组成)
    --pct-majormav 调整“主要”导航事件的百分比(这些导航事件通常引发图形界面中的动作)
    第二个-s 同样的seed值(seed值由自己定义,相当于一个文件的文件名,monkey的操作顺序相当于文件)有同样的随机序列,复现问题时,需要monkey用同样的操作步骤重新跑一遍,可以在日志的第一行看到seed值;
    --throttle 设定事件发生的间隔,不设置时,在android系统极限内操作,若手机性能较低,容易出现系统无响应,最佳的时间间隔在300或者500,单位是毫秒;
    -v 指定Log的详细程度,共有三个级别:
    -v 日志级别为level 0
    -v -v 日志级别为level 1

    -v -v -v 日志级别为level 2     日志的详细程度越来越详细

     
    Monkey tools在Android内只能针对Activity做测试,不能对service做测试。
    tips: adb devices 可以获取设备id

    adb shell data/data获取应用包的名称

    Monkey test中只能指定activity属性的应用包进行测试,当出现指定的应用程序不是activity的时候,monkey会出现以下log,并终止运行:

    备注:activity和service的区别,activity是android应用的核心概念,简而言之activity为用户交互管理者,有一个可视界面呈现,而service是在后台运行,没有界面呈现。

    五、Monkey 实例2

    想要跑完脚本后再去总结过程中出现的crash或者系统无响应,需要指定参数--ignore-crashes --ignore-timeouts,若不指定,遇到问题就会停止运行,效率会降低。

    当且仅当设备有滚轮时需要设定--pct-trackball,如果没有滚轮需设置为0。

    monkey可以不指定-p后的应用,若为了有针对的跑需要指定。

    六、检查结果

    查找关键字crash

    //sending event表示目前已经执行的测试次数

    查看有效crash,注意crash:后的进程(pid),及其后的package name是被测对象;java.lang.NullPointerException下会给出错误在开发工程中的第几行。

    tips:指定要保存log的路径(> d: est.txt)可以进入D盘下的test.txt进行crash关键字的筛选 

    注意事项:

    • 在进行monkey的测试时,最好不进行adb的操作;
    • 跑monkey时需要记录3个log,monkey的log(重新指向到某个txt中),dump system的log(查看系统占有),android本身的log logcat。
  • 相关阅读:
    bzoj1297: [SCOI2009]迷路
    bzoj1875: [SDOI2009]HH去散步
    bzoj2466: [中山市选2009]树
    bzoj1770: [Usaco2009 Nov]lights 燈
    BZOJ 1965: [Ahoi2005]SHUFFLE 洗牌( 数论 )
    BZOJ 1004: [HNOI2008]Cards( 置换群 + burnside引理 + 背包dp + 乘法逆元 )
    BZOJ 1006: [HNOI2008]神奇的国度( MCS )
    BZOJ 1925: [Sdoi2010]地精部落( dp )
    BestCoder Round #57 (div.2)
    BZOJ 1216: [HNOI2003]操作系统( 优先队列 )
  • 原文地址:https://www.cnblogs.com/xiaoluosun/p/4616701.html
Copyright © 2011-2022 走看看