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

原文地址:https://www.cnblogs.com/boot/p/6840435.html