APP自动化测试-安卓性能测试Monkey

 什么是 Monkey

Monkey 是一个 Android 自动化测试工具,主要用于 Android 的压力测试, 测试 app 是否会Crash,通过 Monkey 程序模拟用户触摸屏幕、 按键等操作来对设备上的程序进行压力测试,检测程序多久的时间会发生异常,Monkey 测试是一种为了测试软件的稳定性,健壮性快速有效的方法。

安装 Monkey 测试环境

* 安装 JDK,配置环境变量 (https://www.oracle.com/technetwork/java/javase/downloads/index.html)
* 安装 Android SDK (http://tools.android-studio.org/index.php/sdk/)
* 解压 Android SDK文件,运行 “SDK Manager.exe” 进行 SDK 下载,选择自己想安装的 Android 版本,然后点击“Install X packages”,配置环境变量(https://www.jianshu.com/p/8cf2a3153ef1)
* 测试环境可选真机、模拟器

建议:
1. 手机最好恢复为出厂设置,最好 root
2. 设置成不黑屏的状态,黑屏和锁屏会影响命令执行
3. 不要设置锁屏和解锁密码
4. 开启开发者选项,允许usb调试,如果有调试选项,选择MTP模式(提示信任的,选信任)
 

Monkey 使用常用操作

* 查询设备,显示设备号: adb devices
* 查询安装包列表:adb shell pm list packages
* 进入 Shell: adb shell
* 安装 APK: adb install xxx.apk (将apk文件复制到android sdk对应platform-tools的目录下)
* 卸载 APK:adb uninstall xxx.apk
* 小米应用商店的 monkey 执行命令:(adb shell monkey -v --throttle 300 --pct-touch 30 --pct-motion 20 --pct-nav 20 --pct-majornav 15 --pct-appswitch 5 --pct-anyevent 5 --pct-trackball 0 --pct-syskeys 0 -p com.jd.jdhealth 10000 --ignore-crashes --ignore-timeouts --ignore-security-exceptionss >D:\jiankangapp-20200526.txt)


常用参数

* -v 日志级别0,-v -v 日志级别1,-v -v -v 日志级别2
* --throttle: 插入固定延迟
* --pct- {+事件类别}{+事件类别百分比}各事件类型的百分比总数不能超过100%

    --pct-touch  说明:调整触摸事件的百分比(触摸事件是一个down-up事件,它发生在屏幕上的某单一位置;
    adb shell monkey -p com.xxx.zz --pct-touch 10 1000

    --pct-motion 说明:调整动作事件的百分比(动作事件由屏幕上某处的一个down事件、一系列的伪随机事件和一个up事件组成);
    adb shell monkey -p com.xxx.zz --pct-motion 20 1000

    --pct-trackball 说明:调整轨迹事件的百分比(轨迹事件由一个或几个随机的移动组成,有时还伴随有点击);
    adb shell monkey -p com.xxx.zz --pct-trackball 30 1000

    --pct-nav 说明:调整“基本”导航事件的百分比(导航事件由来自方向输入设备up/down/left/right组成);
    adb shell monkey -p com.xxx.zz --pct-nav 40 1000

    --pct-majornav 说明: 引发图形界面中的动作,如:5-way键盘的中间按键、回退按键、菜单按键;
    adb shell monkey -p com.xxx.zz --pct-majornav 50 1000

    --pct-syskeys 说明:调整“系统”按键事件的百分比(这些按键通常被保留,由系统使用,如Home、Back、Start Call、End Call及音量控制键);
    adb shell monkey -p com.xxx.zz --pct-syskeys 60 1000

    --pct-appswitch 说明:在随机间隔里,Monkey将执行一个startActivity()调用,作为最大程度覆盖包中全部Activity的一种方法(应用启动事件百分比,通过调用startActivity()方法最大限度地开启该package下的所有应用)
    adb shell monkey -p com.xxx.zz --pct-appswitch 70 1000

    --pct-anyevent 说明:调整其它类型事件的百分比。它包含所有其它类型的事件,如:按键、其它不常用的设备按钮、等等。
    adb shell monkey -p com.xxx.zz --pct -anyevent 100 1000
    adb shell monkey -p com.xxx.zz --pct-anyevent 40 --pct-appswitch 50 1000

运行过程中异常处理参数:

     --ignore-crashes
  用于指定当应用程序崩溃时,Monkey是否停止运行。如果使用此参数,即使应用程序崩溃,monkey依然会发送事件,直到事件计数完成。

    --ignore-timeouts
  用于指定当应用程序发生ANR(Application No Responding)错误时,Monkey是否停止运行。如果使用此参数,即使应用程序发生ANR错误,Monkey依然会发送事件,直到事件计数完成。

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


* 保存日志: >D:\jiankangapp.txt

 

测试日志分析

* 程序无响应ANR问题:在日志中搜索“ANR”

* 崩溃问题:在日志中搜索“CRASH”

* 其他问题:在日志中搜索”Exception”

 

质量要求(参考)

release(发布)前,Monkey 跑出来的结果中 crash 要为0,final release 前,Monkey跑完的总次数应为25W,结果里不允许有nullPointException出现。

你可能感兴趣的:(测试,自动化测试,性能测试,android,自动化,性能测试)