zoukankan      html  css  js  c++  java
  • monkey之monkey简介

    1.Monkey 是什么

    Monkey是Android中的一个命令行工具,可以运行在模拟器里或实际设备中。它向系统发送伪随机的用户事件流(如按键输入、触摸屏输入、手势输入等),实现对正在开发的应用程序进行压力测试。Monkey测试是一种为了测试软件稳定性、健壮性的快速有效的方法。

    Monkey程序由Android系统自带,使用Java语言写成,在Android文件系统中的存放路径是:/system/framework/monkey.jar。Monkey.jar程序是由一个名为“monkey”的shell脚本来启动执行,shell脚本在Android文件系统中的存放路是:/system/bin/monkey;

    这样就可以通过在CMD窗口中执行: adb shell monkey {+命令参数}来进行Monkey测试了。

    打开CMD窗口,输入adb shell ls /system/framework,可以查看到monkey.jar;同理,可查看monkey。

    2.Monkey测试的特点

    1)测试的对象仅为应用程序包,有一定的局限性。

    2)Monkey测试使用的事件流数据流是随机的,不能进行自定义。

    3)可对MonkeyTest的对象,事件数量,类型,频率等进行设置。

    3.Monkey的基本用法

    1)Monkey测试准备

    在执行Monkey测试之前,我们需要下载ADB工具,并安装JDK v1.5以上的版本。

    ADB工具是谷歌提供的Android调试工具,可以通过linux命令行访问手机。

    安装好JDK环境,下载adbtools之后,我们需要配置一下环境变量,把adbtools的存放路径添加到path中,我们可以开始进行Monkey测试。

    注:需要root权限。

    2)基本语法如下:

    $ adb devices
    这个命令是查看当前连接的设备, 连接到计算机的android设备或者模拟器将会列出显示。

    $adb install
    adb install <apk文件路径> :这个命令将指定的apk文件安装到设备上
    adb install  -r <apk文件路径> :如果加-r参数会覆盖原来安装的软件并保留数据
    注意:apk文件名不要使用中文且不要有空格号

    $ adb shell monkey [options]

    如果不指定options,Monkey将以无反馈模式启动,并把事件任意发送到安装在目标环境中的全部包。下面是一个更为典型的命令行示例,它启动指定的应用程序,并向其发送500 个伪随机事件:

    $ adb shell monkey -p your.package.name -v 500

    4.monkey测试的相关的原理

    monkey测试的原理就是利用socket通讯的方式来模拟用户的按键输入,触摸屏输入,手势输入等,看设备多长时间会出异常。当Monkey程序在模拟器或设备运行的时候,如果用户触发了比如点击,触摸,手势或一些系统级别的事件的时候,它就会产生随机脉冲,所以可以用Monkey用随机重复的方法去负荷测试你开发的软件。

    5.monkey实例

    1)启动Android模拟器

    2)在命令行中输入:adb devices查看设备连接情况

    3)在有设备连接的前提下,在命令行中输入:adb shell 进入shell界面

    4)查看data/data文件夹下的应用程序包。注:我们能测试的应用程序包都在这个目录下面

    5)以com.tencent.mobileqq为对象,进行monkey test

    monkey -p com.tencent.mobileqq -v 500

    6)另一种执行方法

    adb shell monkey -p com.tencent.mobileqq -v 500>E:monkey est.log

    6.Monkey测试的停止条件

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

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

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

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

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

     

    工作中为了保证测试数量的完整进行,我们一般不会在发生错误时立刻退出压力测试。monkey 测试命令如下:

    adb shell monkey -p com.xy.android.junit -s 500 --ignore-crashes --ignore-timeouts --monitor-native-crashes -v -v 10000 > E:monkeylog.txt

    Monkey测试是Android自动化测试里面使用比较简单的方法,可以很大程度检验我们的程序是否稳定,能否经得起压力测试,可以根据实际情况调整测试的强度和测试重点。

    Monkey测试只是一个模拟测试,很多时候跟实际情况时有差别的,所以这个只能是其中一个辅助测试。

  • 相关阅读:
    软件工程2019实践第一次作业
    Maven环境的搭建
    TomCat控制台中文乱码及IDEA设置为UTF-8
    将win10永久激活为专业工作站版(图文详细教程)
    [软件技巧]manjaro gnome中修改屏幕缩放比例
    第一次个人编程作业
    百度的TTS API
    第一次软件工程实践作业
    MySQL触发器的操作
    Anaconda使用conda activate激活环境报错Your shell has not been properly configured to use 'conda activate'.
  • 原文地址:https://www.cnblogs.com/lynn-li/p/5954338.html
Copyright © 2011-2022 走看看