您现在的位置是:首页 >技术教程 >【day01】monkey压力测试,稳定性网站首页技术教程

【day01】monkey压力测试,稳定性

伊可同学 2024-07-18 12:01:02
简介【day01】monkey压力测试,稳定性

学习目标:学会Monkey命令的使用 模拟器

一.monkey测试

1.压力测试:在一定的时间内进行大量操作。

2.稳定性测试:功能基本稳定之后,一直做到回归

主要找crash和anr问题,必解

二.什么是monkey测试

测试:随机操作(对整体app验证,不针对模块,不针对单个功能。用于模拟人的操作),如调节亮度,调节声音,截屏,做设置。本质上monkey为伪随机操作(可以测试随机序列值)。

三.如何做monkey测试

1.环境准备(pc)

1)设置jdk(JDK下载地址)和sdk(SDK下载地址)的环境变量
2)验证配置是否成功,在cmd中:jdk: java -version。sdk:adb version

2.环境准备(安卓)

1) 打开开发者模式–>USB调试
2) 验证是否成功:adb devices
3) 以上验证成功表示monkey环境配置成功

3.执行monkey测试

1)此命令是显示monkey的参数命令

adb shell monkey

结果:

C:UsersEDY>adb shell monkey
args: []
usage: monkey [-p ALLOWED_PACKAGE [-p ALLOWED_PACKAGE] ...]
              [-c MAIN_CATEGORY [-c MAIN_CATEGORY] ...]
              [--ignore-crashes] [--ignore-timeouts]
              [--ignore-security-exceptions]
              [--monitor-native-crashes] [--ignore-native-crashes]
              [--kill-process-after-error] [--hprof]
              [--match-description TEXT]
              [--pct-touch PERCENT] [--pct-motion PERCENT]
              [--pct-trackball PERCENT] [--pct-syskeys PERCENT]
              [--pct-nav PERCENT] [--pct-majornav PERCENT]
              [--pct-appswitch PERCENT] [--pct-flip PERCENT]
              [--pct-anyevent PERCENT] [--pct-pinchzoom PERCENT]
              [--pct-permission PERCENT]
              [--pkg-blacklist-file PACKAGE_BLACKLIST_FILE]
              [--pkg-whitelist-file PACKAGE_WHITELIST_FILE]
              [--wait-dbg] [--dbg-no-events]
              [--setup scriptfile] [-f scriptfile [-f scriptfile] ...]
              [--port port]
              [-s SEED] [-v [-v] ...]
              [--throttle MILLISEC] [--randomize-throttle]
              [--profile-wait MILLISEC]
              [--device-sleep-time MILLISEC]
              [--randomize-script]
              [--script-log]
              [--bugreport]
              [--periodic-bugreport]
              [--permission-target-system]
              COUNT

2)[ ]内参数选加,COUNT必加。直接输入数字是对整机进行测试。

adb shell monkey 100

结果

C:UsersEDY>adb shell monkey 10000
  bash arg: 10000
args: [10000]
 arg: "10000"
    // Injection Failed
    // Injection Failed
    // Injection Failed
    // Injection Failed
    // Injection Failed
    // activityResuming(com.google.android.googlequicksearchbox)

3)对指定的应用进行测试(包名:应用id):

adb shell monkey -p [包名] 100  
(怎么看包名:adb shell pm list packages ||
 系统级别 adb shell pm list packages -s ||
  用户安装的:adb shell pm list packages -3)

4) [–ignore-crashes] :忽略崩溃
[–ignore-timeouts] :忽略超时,anr
使用以上指令当发生崩溃和超时会结束app并重启app进行monkey,不会重置事件数并继续
[–ignore-security-exceptions]:忽略 安全证书
5) [-s SEED] 指定一个序列值 :两次monkey执行一样的seed值,那么他们的操作流程是一样的。手机初始状态不一样,则两次执行对象就不能保证
6)[-v [-v] …] 日志的级别程度:最大值是 -v -v -v 即使最详细的日志体现出来
一个v:只告诉测试结果是否成功
两个v:告诉结果和过程中启动的东西和包名
三个v:界面,服务器,坐标位置,未使用位置均会展示
7)[–pct-touch PERCENT] [–pct-motion PERCENT]
[–pct-trackball PERCENT] [–pct-syskeys PERCENT]
[–pct-nav PERCENT] [–pct-majornav PERCENT]
[–pct-appswitch PERCENT] [–pct-flip PERCENT]
[–pct-anyevent PERCENT] [–pct-pinchzoom PERCENT]
[–pct-permission PERCENT]
以下是各个参数的含义:
–pct-touch:触摸事件的比例。
–pct-motion:移动事件(包括滑动和拖拽)的比例。
–pct-trackball:轨迹球事件的比例。
–pct-syskeys:系统按键事件的比例。
–pct-nav:导航事件(如方向键等)的比例。
–pct-majornav:主要导航事件(如 HOME、BACK、MENU 键等)的比例。
–pct-appswitch:应用切换事件的比例。
–pct-flip:手机盖合/开合事件的比例。
–pct-anyevent:任意事件的比例。
–pct-pinchzoom:缩放手势事件的比例。
–pct-permission:权限授权事件的比例。
例如,如果我们想让 Monkey 工具在产生随机事件时,触摸事件和主要导航事件各占一半比例,那么可以使用以下命令:

adb shell monkey --pct-touch 50 --pct-majornav 50

8) 工作中的事件数:35万次,延迟时间450ms(0.45秒)( [–device-sleep-time MILLISEC])
9)结果值分析:只有出现//Monkey finished 表示测试成功,其他均为失败。

  • crash:奔溃:logcat日志
  • anr无响应:adb shell /data/anr/traces.txt
  • monkey测试异常中断
  • 手机关机
  • 重启
风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。