zoukankan      html  css  js  c++  java
  • python+appium【第四章-adb命令之monkey命令】

    首先我们来理解一下Monkey的概念

    Monkey概念:Monkey是Android中的一个命令行工具,可以运行在模拟器里或实际设备中。它向系统发送伪随机的用户事件流(如按键输入、触摸屏输入、手势输入等),实现对正在开发的应用程序进行压力测试。Monkey测试是一种为了测试软件的稳定性、健壮性的快速有效的方法。该工具用于进行压力测试。然后开发人员结合monkey打印的日志和系统打印的日志,分析测试中的问题。

    Monkey测试的特点:Monkey测试,所有的事件都是随机产生的,不带任何人的主观性。
    1、测试的对象仅为应用程序包,有一定的局限性。
    2、Monky测试使用的事件数据流是随机的,不能进行自定义。
    3、可对MonkeyTest的对象,事件数量,类型,频率等进行设置。
     
     

    Monkey测试目的

    测试app是否会Crash(崩溃)
    
    所以我们在公司一般是使用monkey对apk进行压力测试,检验它在高强度的调试下能否持续运行
    接下来我们针对monkey的参数进行详解
     
     
    指定一个测试包进行monkey测试
    -p 参数用于约束只对一个包进行monkey测试
    针对这个 com.bng.calculator 包 进行50次的随机测试
    monkey -p com.bng.calculator 50

    指定多个包进行moneky测试

    注意指定多个包时 需要用-p进行连接 

    针对 com.htc.Weather 和 com.htc.pdfreader-pcom.htc.photo.widgets 进行100次的随机测试
    adb shell monkey-p com.htc.Weather –p com.htc.pdfreader-pcom.htc.photo.widgets 100
    不指定包进行monkey测试
    adb shell monkey 100

    monkey的日志模块不在此详细描述,具体的我们可以使用adb的logcat进行日志的输出,观看更加美观,详情请移步上一篇文章

    monkey的延时模块 

    
    
    用户事件流之间的延时操作  —-throttle 
    执行五十次时间 每次间隔0.5s做一次操作
    adb shell monkey -p com.bng.calculator  --throttle 500 50
    monkey -p com.bng.calculator  --throttle 500 50

    menkey自带随机测试组

    monkey 假设随机过程中发现了bug,程序崩溃或者闪退,报告给开发,开发说修复好了,如何进行回归?
    
    -s 伪随机数的seed值,如果seed相同,则两次monkey产生事件也相同。执行相同操作
    monkey 推出
    -s 1–10组(注:需要将软件至为初始状态) -s 4 指定使用第四组随机数 monkey -p com.bng.calculator --throttle 500 -s 4 100

    monkey崩溃继续运行

    --ignore-crashes
    用于指定当应用程序崩溃时(Force&Close错误),Monkey是否停止运行。如果使用此参数,即使应用程序崩溃,Monkey依然会发送事件,直到事件计数完成。
    示例:adb shell monkey -p com.htc.Weather --ignore-crashes 1000 测试过程中即使Weather程序崩溃,Monkey依然会继续发送事件直到事件数目达到1000为止;
    monkey超时继续运行
    --ignore-timeouts
    
    如果使用此参数,即使应用程序发生ANR错误,Monkey依然会发送事件,直到事件计数完成。

    示例:adb shell monkey -p com.bng.calculator --throttle 500 -s 6 100 --ignore-crashes --ignore-timeouts  

    monkey发生某些错误时继续运行

    --ignore-security-exceptions
    
    用于指定当应用程序发生许可错误时(如证书许可,网络许可等),Monkey是否停止运行。如果使用此参数,即使应用程序发生许可错误,Monkey依然会发送事件,直到事件计数完成。

    示例: monkey -p com.bng.calculator --throttle 500 -s 6 --ignore-crashes --ignore-timeouts --ignore-security-exceptions 500
    monkey事件类别 注意:pct事件的总和不能超过100%
     
    触摸事件
    --pct-touch{+百分比}0:触摸,触摸事件泛指发生在某一位置的一个down-up事件,点击操作

    示例:monkey -p com.bng.calculator --throttle 500 -s 6 --pct-touch 100 50

    动作事件

    --pct-motion{+百分比}1:动作,动作事件泛指从某一位置接下(即down事件)后经过一系列伪随机事件后弹出(即up事件)
    示例: monkey -p com.bng.calculator --throttle 500 -s 6 --pct-motion 100 50

    二指缩放事件

    --pct-pinchzoom{+百分比}2:二指缩放,智能机上的放大缩小手势操作事件
    示例: monkey -p com.bng.calculator --throttle 500 -s 6 --pct-pinchzoom 50
    轨迹事件
    --pct-trackball{+百分比}3:轨迹,轨迹事件包括一系列的随机移动,以及偶尔跟随在移动后面的点击事件
    示例: monkey -p com.bng.calculator --throttle 500 -s 6 --pct-trackball 50

    屏幕旋转事件

    --pct-rotation{+百分比}4:屏幕旋转,横屏竖屏事件
    示例: monkey -p com.bng.calculator --throttle 500 -s 6 --pct-rotation 50

    那正常的一个monkey测试流程是怎么样的?

    1. adb devices 查看设备是否连接
    
    2. adb shell 进入shell界面
    
    3. adb logcat -c

    4. adb logcat -f 手机路径 -s *:E  -v long  

    5. monkey 命令执行 示例:adb shell monkey -p com.bng.calculator --throttle 500 -s 6 100 --ignore-crashes --ignore-timeouts   10000000

    6. 结束日志打印,分析日志

    7. 将报错结果截图给开发

    今天的分享到此结束,下一篇我将给大家分享一下appium如何定位元素

    欢迎转载  请注明原出处   https://www.cnblogs.com/yushengaqingzhijiao/p/15232392.html
     
     
  • 相关阅读:
    HTTP 错误 404.2
    SQL Server 2008 R2如何开启数据库的远程连接(转)
    CSS中font-family:中文字体对应的英文名称
    15/18位身份证号码正则表达式(详细版)
    C#获取系统时间及时间格式
    C#正则表达式判断输入日期格式是否正确
    Linux查看机器负载
    模拟HTTP请求超时时间设置
    MySQL show命令的用法
    innodb事务隔离级别
  • 原文地址:https://www.cnblogs.com/yushengaqingzhijiao/p/15232392.html
Copyright © 2011-2022 走看看