zoukankan      html  css  js  c++  java
  • Monkey

    Monkey简介

    Monkey程序是Android系统自带,使用Java语言写成,在Android文件系统中的存放路径:/system/firmework/monkey;

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

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

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

    1.monkey运行

     假设终端设备已安装apk(驱动测试.apk),USB线连接PC和终端,打开命令输入:

     adb shell

       cd  /system/bin

       monkey

      此时monkey将以无反馈模式启动,并把事件任意发送到安装在目标环境中的全部包.

     adb shell monkey 1000  发送1000个随机时间(全部包)

    若只希望运行驱动测试.apk

    (1).获取应用的包名(网上

      参考:http://www.th7.cn/system/lin/201611/189532.shtml

     先打开需要的apk,然后再打开终端,输入以下命令获取这个apk的包名,得到 com.cloudpos.drivertest

     adb shell dumpsys activity

    (2).运行驱动测试应用

     adb shell monkey -p com.cloudpos.drivertest 1000

    书中查看包名和应用名(例,驱动测试应用)

    1)查看包名(最好终端处在engroot版本)

       $ adb shell

       # ls data/data

      查看到应用包名为:com.cloudpos.drivertest

    2)查看应用[主界面]名

       $ adb  logcat | busybox grep START

    从cmp=com.android.packageinstaller/.PackageInstallerActivity 可以看出应用主界面名为PackageInstallerActivity

    由此我们知道如何启动该应用:

    LaunchActivity(com.cloudpos.drivertest,com.android.packageinstaller.PackageInstallerActivity)

    还有一种查看包名的方式:

    Eclipse--DDMS,点击应用,在logcat中Application可以查看包名

    另:

    $adb shell monkey 【option】<event-count>

    monkey的option操作都是根据具体的需求设定的,主要有4种,

    常规类:-p(帮助信息),-v(打印日志信息,最多3个)

    事件类:-f(后接测试脚本名),-s(指定随机数生成器seed值,重复上次的随机操作),

               --throttle(后接时间,表示执行每一个指令间隔的时间,单位ms)

               --ptc-touch(调整触摸事件的百分比)

               --ptc-motion(调整动作事件的百分比)

               --ptc-trackball(轨迹球事件百分比  

               --ptc-nav(后面为基本导航事件百分比,基本导航事件指来自方向输入设备的上、下、左、右事件)

               --ptc-majornav(主要导航事件百分比)

    约束类:

    调试类:

    做个Monkey小程序的例子,(步骤包括:打开应用,选中输入框,输入内容,点击提交)

    1.查看应用包名和应用名

    2.查看控件的坐标

       在命令行中输入:adb shell getevent

       点击应用中需要知道坐标的控件,例如在命令窗口中查找第三列中为0035(x坐标),0036(y坐标)的行,如下

    分别将1a6、27a转换10进制,得到对应的x坐标,y坐标

    3.写代码,并保存为monkeySouceScript

    完成的代码如下:

    # Start Script
    type = user
    count =10
    speed =1.0
    start data >>

    #打开应用
    LaunchActivity(com.wizarpos.psamcommendtest,com.wizarpos.psamcommendtest.MainActivity)
    UserWait(5000)

    #点击文本框
    captureDispatchPointer(10,10,0,165,291,1,1,-1,1,1,0,0)
    captureDispatchPointer(10,10,1,165,291,1,1,-1,1,1,0,0)

    #输入123
    captureDispatchString(123)

    #发送Enter键使输入内容从软件盘到输入框中
    captureDispathcPress(66)

    #等待500ms
    UserWait(500)

    点击提交
    captureDispatchPointer(10,10,0,133,405,1,1,-1,1,1,0,0)
    captureDispatchPointer(10,10,1,133,405,1,1,-1,1,1,0,0)

    4.运行

    push到设备手机中

    adb push monkeySouceScript /mnt/sdcard/

    运行:

    adb shell monkey -v -f /mnt/sdcard/monkeySouceScript 10

  • 相关阅读:
    准备开始学习XNA
    徐家骏:华为十年感悟
    memcached详解
    sql时间
    Sql server log file 缩小和删除
    看高手都是运用的灵活自如,打算从今天开始学习他!
    什么是内存对齐
    VS 2008 远程调试 与asp.net
    XNA入门的代码注释
    HTML的段落与文字
  • 原文地址:https://www.cnblogs.com/boot/p/6840435.html
Copyright © 2011-2022 走看看