• monkey测试的方法与步骤


    Monkey的概念:

    “猴子测试”是指没有测试经验的人甚至对计算机根本不了解的人(就像猴子一样)不需要知道程序的任何用户交互方面的知识,如果给他一个程序,他就会针对他看到的界面进行操作,其操作是无目的的、乱点乱按的。

    这种测试方式在产品周期中的早期阶段会找到很多很好的bug,为用户节省不少的时间。 

    一:Monkey的介绍

    它是Android系统自带一个命令行工具,可以运行在模拟器里或者真是设备中运行。

    monkey向系统发送伪随机的用户事件流,实现对正在开发的应用程序进行压力测试。 

    monkey包括很多选项,大致四大类:

    1.基本配置选项,如设置尝试的事件数量。

    2.运行约束选项,如设置只对单独的一个包进行测试。

    3.事件类型和频率。

    4.调试选项

    二:monkey命令特性

    不可能使用monkey来指定做一样测试,重复做很多次。因为monkey产生的是伪随机的事件流。但是我们可以通过添加命令选项将操作限制在一定的范围内。

    一,首先你要先搭建环境

    1.先下载jdk   具体安装流程请参考:https://blog.csdn.net/write6/article/details/79136388

    2.再下载sdk  具体安装流程请参考:https://blog.csdn.net/u011541946/article/details/77142045

    二,打开手机的开发者调试工具,用usb数据线链接你的手机;

    三,monkey前的准备命令

    1.windows+r 输入cmd进入dos命令行;

    2.输入adb devices 下面出现类似下图的组合你就成功了;( 

    3.再输入 adb shell pm list packages    查看你的手机所有的安装包;输入 adb shell pm list packages -3 查看手机上所有的第三方安装包,尽量让测试机少安装第三方软件,这样可以尽快的找到想要的安装包名称;

    四,首先用一个最简单的mokey去试着找哪个是你想要的安装包名称:

    1./ / -p参数:表示指定测试的程序(空格后面跟安装包名字,拿刚才的第三方安装包一个个试)

      / /-v参数:表示查看monkey执行过程的信息(日志级别)(-v 越多越详细,最多三个)

      / /数字100:表示测试事件数为100

     指定一个包   adb shell monkey  -p  com.tencent.news  -v -v -v  100   (此时指定软件会被打开并开始乱点乱按)
     指定多个包   adb shell monkey -p com.tencent.news -p com.pdfreader -p com.widgets  -v 1000
     不指定包       adb shell monkey -v 1000

    保存日志到指定目录:

    adb shell monkey  -p  com.tencent.news  -v -v -v  100    > d:xxx.txt

     结果如图: 

    Event percentages(事件百分比):

    0:触摸事件百分比,参数--pct-touch

    1:滑动事件百分比,参数--pct-motion

    2:缩放事件百分比,参数--pct-pinchzoom

    3:轨迹球事件百分比,参数--pct-trackball

    4:屏幕旋转事件百分比,参数--pct-rotation

    5:暂时不知道这个是什么

    6:基本导航事件百分比,参数--pct-nav

    7:主要导航事件百分比,参数--pct-majornav

    8:系统事件百分比,参数--pct-syskeys

    9:Activity启动事件百分比,参数--pct-appswitch

    10:键盘翻转事件百分比,参数--pct-flip

    11:其他事件百分比,参数--pct-anyevent

    2.尽管monkey产生是伪随机事件流,但是我们希望我们的操作有一定的规律性,即按键、触屏等各类事件操作有所偏重。

    eg:(1).对文本框操作,需要更多的按键操作。

            (2).玩游戏,需要更多的点击和滑动操作。

    3.--throttle  设定两个事件之间一个固定延迟,可以减缓monkey的执行速度。如果不指定,monkey将不会被延迟,事件将尽可能快地生成和发送消息。单位:毫秒

    eg:adb shell monkey  --throttle  3000  -p com.tencent.news  100    

    向腾讯新闻发送1000次随机事件,每次事件间隔为3秒。

    4.--pct-touch  (空格后加数字)设定触屏事件生成的百分比。触屏事件是一个有手指按下,抬起事件的手势。

    eg:      adb shell monkey   --throttle  3000   --pct-touch  50  -p  com.tencent.news  100 

    向腾讯新闻发送1000次随机事件,每次事件间隔为3秒。其中设定触屏的事件占比为50%。

    5.--pct-motion  设定滑动事件生成的百分比。滑动事件是一个先在某一个位置手指按下,滑动一段距离后再抬起手指的手势。

    eg:       adb shell monkey   --throttle  3000 --pct-motion  50  -p  com.tencent.news  100 

    向腾讯新闻发送1000次随机事件,每次事件间隔为3秒。其中设定滑动的事件占比为50%。

    6.--pct-trackball  设定轨迹球事件生成的百分比。轨迹球事件是包含一系列随机移动和单击事件的事件

    eg:adb shell monkey --throttle  3000 --pct-trackball  50  -p  com.tencent.news  100 

    向腾讯新闻发送1000次随机事件,每次事件间隔为3秒。其中设定轨迹球的事件占比为50%。

    7.--pct-nav  设定基本导航事件生成的百分比。基本导航事件是模拟方向性在设备上输入向上、向下、向左、向右的事件。

    eg:adb shell monkey --throttle  3000 --pct-nav  40  -p  com.tencent.news  100 

    向腾讯新闻发送1000次随机事件,每次事件间隔为3秒。其中设定基本导航事件的占比为40%。

    8.--pct-majornav  设定主要导航事件生成的百分比。主要导航事件通常会导致UI产生回馈信息,如单击Back键、Home键、Menu键等、

    eg:     adb shell monkey  --throttle  3000   --pct-majornav  40  -p  com.tencent.news  100 

    向腾讯新闻发送1000次随机事件,每次事件间隔为3秒。其中设定主要导航事件的占比为40%。

    9.--hprof

    指定了该参数,Monkey会在发送事件序列的前、后,生成性能分析报告。通常会在data/misc目录下生成一个5MB左右大小的文件

    10.--ignore-crashes

    通常情况下,monkey会在测试应用程序崩溃或者发生异常后停止运行,若指定了该参数,则monkey将会在产生异常后,继续向系统发送事件,直到指定事件全部运行完毕。

    11.--ignore-timeouts

    通常情况下,当应用程序发生任何超时错误(application  not  responding)时,monkey将停止运行。若指定了该参数,则monkey将会在产生错误信息后,继续向系统发送事件,直到指定事件全部运行完毕

    12.--ignore-security-exceptions    通常情况下,指定应用程序发生许可错误时(如证书许可,网络许可等),monkey将停止运行。若指定了该参数,即使应用程序发生许可错误,monkey会继续向系统发送事件,直到指定事件全部运行完毕。

    eg:adb shell monkey  --throttle  3000 --pct-trackball  50  -p  com.tencent.news  --ignore-security-exceptions  100 

    博客出自:https://blog.csdn.net/just__like/article/details/83757492

  • 相关阅读:
    ASP.NET Core 程序集注入(三)
    ASP.NET Core 程序集注入(二)
    ASP.NET Core 程序集注入(一)
    EFCore DbFirst从数据库生成实体类
    Notepad++实现代码格式化
    EF6/EFCore Code-First Timestamp SQL Server
    MySQL 实现 EF Code First TimeStamp/RowVersion 并发控制
    EntityFramework系列:MySql的RowVersion
    ansible常用命令大全
    python内置函数大全
  • 原文地址:https://www.cnblogs.com/tepy/p/12486591.html
Copyright © 2020-2023  润新知