zoukankan      html  css  js  c++  java
  • (一)Monkey使用场景及常用命令

    1.monkey应用场景

    > monkey测试是Android平台自动化测试的一种手段,通过monkey程序模拟用户触摸屏幕、按键等操作来对设备上的程序进行压力测试,检测程序多久的时间会发生异常

    ======================================

    异常:

    崩溃:XX应用停止运行

    无响应:

    闪退:程序运行时,毫无征兆返回到了桌面

    ======================================

    >monkey 是命令行工具

    >弱点:monkey虽然可以根据一个指定的命令脚本发送按键消息,但不支持条件判断,也不支持读取待测界面的值来执行验证操作(即不支持断言、执行的时候傻瓜式依次逐行执行)

    >monkey用来做什么?

      可以用来做压力测试也可以做自动化测试

    >monkey什么时候用?

      产品稳定的时候,没有特别多的bug,一般会用monkey去测应用的稳定性、健壮性

    >monkey怎么用?

      Monkey 是Android SDK提供的一个命令行工具, 可以简单,方便地运行在任何版本的Android模拟器和实体设备上。

      每台android手机里都有Monkey工具,但是我们是看不到的,因为,Monkey不是一个可视化的工具

      借助ADB才能与Monkey进行通讯

    2.monkey命令格式

    >开启安卓模拟器/真机

    >进入命令行界面

    >查看设备连接情况 adb devices

    >在命令行界面输入monkey命令

    如果monkey需要指定设备,基本语法如下:

    adb  -s  [device]  shell  monkey  [options]

    常用:

    adb shell monkey -p  包名  -v  -v  -v -s 200 1000

    3.monkey常见参数

    3.1  -p

    >用于约束限制,用此参数指定一个或多个包名。指定包名之后,monkey将只允许系统启动指定的app。如果不指定包,monkey将允许系统启动设备中所有的app。

    >命令:

    adb shell monkey -p 包名 1000

    其中,1000是事件计数(即让monkey模拟1000次随机用户事件)

    包名:

    方式一:adb shell dumpsys activity| find "mFocusedActivity"

    方式二:adb shell dumpsys window | findstr mCurrentFocus 获取当前应用的包名

    3.2 -s

    >用于指定伪随机数生成器的seed值,如果seed值相同,则两次monkey测试所产生的事件序列也是相同的

    >命令:

    monkey测试1:adb shell monkey -p 包名 -s  101   1000

    monkey测试2:adb shell monkey -p 包名 -s  101   1000

    >说明:

    两次测试的效果是相同的,因为模拟的用户操作序列是一样的。操作序列虽然是随机生成的,但是只要指定了相同的seed值,就可以保证两次测试产生的随机操作序列是完全相同的,所以说这个操作序列是伪随机的。

    (操作序列:每次操作按照一定的先后顺序所组成的一系列操作,即一个序列),比如:

    同时,该图代表3次事件次数

    >目的:

    通过seed值可以复现bug

    3.3 -v

    >用于指定反馈信息级别(就是日志的详细程度),总共分为三个级别

    -v  日志级别 level 0

    说明:缺省值,仅提供启动提示、测试完成和最终结果等少量信息

    -v -v 日志级别 level 1

    说明:提供较为详细的日志,包括每个发送到Activity的事件信息

    -v -v -v 日志级别 level 2

    说明:最详细的日志,包括了测试中选中/未选中的Activity信息

    >命令:

    adb shell monkey - p 包名 -s  180  -v -v -v 1000  

    1000是事件计数(即让monkey模拟1000次随机用户事件)

    3.4 --throttle <毫秒>

    >用于指定用户操作(即事件)的时延,单位是毫秒

    >命令:

    adb shell monkey -p 包名  --throttle 3000  100

    >说明:执行一百次monkey随机事件,每次事件之间的延迟是3s

    3.5 --randomize-throttle

    在事件之间插入随机延迟,随机延迟范围为0到throttle设置的时间,单位为毫秒

    >命令:

    adb shell monkey -p 包名 --throttle 5000 --randomize-throttle 100

    >说明:执行一百次monkey随机事件,每次事件的间隔在0-5000毫秒之间不固定

    3.6 --pkg-whitelist-file  白名单,后面接txt文件

    1)第一步把你设置的白名单的包名写到一个txt文档里面,记得路径和文档名字都是英文!如,D:whitelist.txt

    2)把这个文件推送到我们的安卓机中去,放到/data/local/tmp下面

    >命令:

    adb  push    D:whitelist.txt     /data/local/tmp  

     adb  shell  monkey   --pkg-whitelist-file   /data/local/tmp/whitelist.txt  100

    3)可以在上面adb 命令后重定向输出查看monkey运行日志,可以用来辅助logcat日志定位问题

    3.7 --pkg-blacklist-file  黑名单,后面接txt文件

    >操作步骤参考白名单,效果与之相反

    >命令:

     adb  shell  monkey   --pkg-blacklist-file   /data/local/tmp/blacklist.txt  100

    3.8 百分比事件

    >使用:

    adb shell monkey  -p 包名  -s  210  -v -v -v  --pct-touch 100  400 //百分百为点击事件

    adb shell monkey -p 包名 -s 210 -v -v -v  --pct-touch 50  --pct-rotation 50  400   //一半点击一半旋转

    >使monkey进程停止:

    进入adb  shell 

    ps 查看进程,

    找到monkey进程:

    杀掉进程:

    kill  进程号 

  • 相关阅读:
    萌新向Python数据分析及数据挖掘 第二章 pandas 第一节 pandas使用基础Q&A 16-30
    萌新向Python数据分析及数据挖掘 第二章 pandas 第一节 pandas使用基础Q&A 1-15
    萌新向Python数据分析及数据挖掘 第二章 pandas 第二节 Python Language Basics, IPython, and Jupyter Notebooks
    萌新向Python数据分析及数据挖掘 第一章 Python基础 第十节 文件和异常
    萌新向Python数据分析及数据挖掘 第一章 Python基础 第九节 类
    萌新向Python数据分析及数据挖掘 第一章 Python基础 第八节 函数
    萌新向Python数据分析及数据挖掘 第一章 Python基础 第七节 用户输入和while循环
    萌新向Python数据分析及数据挖掘 第一章 Python基础 第六节 字典
    Window环境下的Redis集群部署
    FastReport 报表正确使用Page [Page] of [TotalPages]的方法(同一单号的分页)
  • 原文地址:https://www.cnblogs.com/kxx-1/p/13172568.html
Copyright © 2011-2022 走看看