Android 之 Monkey

来源:互联网 发布:js的prototype是什么 编辑:程序博客网 时间:2024/06/11 17:03

Monkey,一个活跃的猴子他不接受任何人的命令自己去对软件进行胡乱的操作,他可信吗?

        Monkey是什么工具?有人说他是压力工具,有人说他是性能工具,有人还说他是稳定性工具,工作中会经常用到monkey,但是结合我自己的工作实践我认为他是一款基稳定性的工具,为什么这么说,那就需要了解monkey的工作原理: monkey通过命令行向系统输入伪随机事件,并可根据软件情况进行事件比例,测试时长的设计,所以说他是一款稳定性与健壮性工具。

          有人曾问过我为什么不是压力测试?其实我们只要明白压力测试的含义然后再比较monkey的工作原理即可明白:

          压力测试:不是在常规条件下运行手动或自动测试,而是在计算机数量较少或系统资源匮乏的条件下运行测试。通常要进行软件压力测试的资源包括内部内存、CPU 可用性、磁盘空间和网络带宽。

总结monkey工作原理:通过adb命令向手机系统输入伪随机事件(如按键、触摸屏输入、手势输入)等,monkey的伪随机流是随机的不能进行控制,但是可以对monkey进行事件百分比的设置。

       Monkey常用命令:

      adb shell monkey -p (包名)  -v(日志级别) 100(发送事件数量):通过adb桥向某个app发送100次事件

     adb shell monkey -p (包名)  -v(日志级别) -s 123 100 :通过adb桥向app发送100次

-s <seed>:伪随机数生成器的 seed 值。如果用相同的 seed 值再次运行 Monkey ,它将生成相同的事件序列。

 常用高级命令:

--pct-touch <percent>:     --pct-touch 50 调整触摸事件的50%( 触摸事件是一个 down-up 事件,它发生在屏幕上的某单一位置 )

--pct-trackball <percent>: --pct-trackball 30 :调整轨迹事件30%,( 轨迹事件由一个或几个随机的移动组成,有时还伴随有点击 ) 

--throttle <milliseconds> :--throttle 300 间隔300ms运行一个事件,(通过这个选项可以减缓 Monkey 的执行速度。如果不指定该选项, Monkey 将不会被延迟,事件将尽可能快地被产成。)

--ignore-crashes 当运行时遇到crashes时,记录日志并继续运行

--ignore-timeouts 当运行时遇到ANR异常时,记录日志并继续运行

-c: -c参数用于指定测试的类别,一个-c接一个类别,多个类别需要设定多个-c参数

<main-category> android.intent.category.LAUNCHER 或者 android.intent.category.MONKEY

要指定多个类别,需要使用多个

-c 

选项

以上是我经常用到的命令,还有其他调用系统事件等操作就不在一一列举!

monkey运行结束条件:

1.未设置--ignore-crashes 时,当遇到“crashes”异常时会停止运行

2.未设置--ignore-timeouts时,当遇到“ANR”时会停止运行

3.手机关机会停止运行

4.kill掉运行进程

5.正常运行终止



原创粉丝点击