目录

  • 一、为什么要做monkey测试
  • 二、什么是monkey测试
  • 三、monkey测试环境准备
    • 一、环境准备
    • 二、连接设备
  • 四、monkey测试怎么做
    • 一、monkey常用命令
      • 查看monkey参数 adb shell monkey
      • 对整机进行200次事件操作:adb shell monkey 200
      • - p 指定应用包名:adb shvell monkey -p com.xueqiu.android 1000
      • - ignore-crashes :忽略崩溃
      • - ignore-timeouts:忽略超时
      • - ignore-security-exceptions :忽略安全证书问题
      • - v 指定日志等级:adb shell monkey -p com.xueqiu.android -v 1000
      • - s 指定seed值:adb shell monkey -p com.xueqiu.android -s 1235 1000
      • -throttle MILLISEC 延迟时间
  • 五、结果分析:
    • // Monkey finished 表示monkey测试结束
    • 失败的常见原因:
      • 1.crash奔溃
      • 2.ANR 无响应
      • monkey异常中断
    • bug提交
  • 六、完整的monkey脚本:

一、为什么要做monkey测试

背景:随着移动互联网的崛起,越来越多的APP进入我们的生活,如微信、抖音、淘宝等,这些常用APP一般用户量比较大、在线时间较长,如抖音日活量8亿,在线时间平均3小时起步,所以在测试APP的过程中,我们除了要考虑功能的准确性,兼容性等外,还需要考虑到APP的稳定性。市面上,一般采用monkey工具来测试Android APP的稳定性,iOS的稳定性一般由开源社区提供iOSmonkey 来测试稳定性。

monkey测试时间节点: APP功能基本稳定,在预发布和验收之前

常用工具: monkey 、Python 、git、gitlab、Jenkins

二、什么是monkey测试

monkey测试Android自动化的一种手段,monkey本身十分简单,就是用使用脚本去模拟用户一系列常用操作,如设置屏幕亮度、调节声音、滑动、手势输入等等,整个过程是伪随机的,随机体现在动作的随机,伪表示可通过 -s 即seed值来重现上一次的操作过程。

三、monkey测试环境准备

一、环境准备

安装 jdk1.8,并添加到path
安装 Android SDK ,并添加到path

验证环境是否安装成功:
jdk

SDK:

如果如上述一样,显示对应的版本号SDK和jdk 安装成功

二、连接设备

手机 :

  1. 使用数据线连接手机
  2. 打开手机开发者模式,打开USB调试功能
  3. 在DOS窗口输入adb devices ,若出现设备号,则表示连接成功

模拟器:

  1. 打开模拟器
  2. DOS窗口输入命令:adb connect IP:port,如adb connect 127.0.0.1:7555
  3. 在DOS窗口输入adb devices ,若出现设备号,则表示连接成功

以模拟器举个栗子:

PS:模拟器端口不知道的可以去官网查看,真机连接后,直接用adb devices 即可

四、monkey测试怎么做

一、monkey常用命令

查看monkey参数 adb shell monkey

C:\Users\zyd>adb shell monkey
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][--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]COUNTC:\Users\zyd>

对整机进行200次事件操作:adb shell monkey 200

- p 指定应用包名:adb shvell monkey -p com.xueqiu.android 1000

- ignore-crashes :忽略崩溃

在脚本运行过程中,一般遇到崩溃,monkey就会终止,加上忽略参数,就可以让脚本正常运行,并记录下崩溃时间与详细原因。

- ignore-timeouts:忽略超时

忽略脚本过程中应为超时导致的问题

- ignore-security-exceptions :忽略安全证书问题

忽略脚本过程中应为安全证书问题导致的问题

- v 指定日志等级:adb shell monkey -p com.xueqiu.android -v 1000

最低等级为 -v

最高等级为 -v -v -v

由于日志的量比较大,一般都会采用重定向去输出日志信息

- s 指定seed值:adb shell monkey -p com.xueqiu.android -s 1235 1000

seed值又称为序列值,或者种子值,常用来复现问题,果两次的seed一样,那么表示脚本模拟的动作顺序是一样的,但是不保证操作的对象是一样的。

-throttle MILLISEC 延迟时间

事件与事件之间的间隔时间,工作中一般是450ms

工作中的事件数:30w次,延迟时间:450ms ,脚本执行时间8-10小时

五、结果分析:

// Monkey finished 表示monkey测试结束

失败的常见原因:

通过对日志进行关键字搜索查看bug

1.crash奔溃

crash 提交bug时,添加logcat日志即可。

2.ANR 无响应

ANR提交bug时,adb shell 、data/anr/traces.txt,需要提交traces.txt文件。

monkey异常中断

  • 手机异常关机
  • 手机异常重启
  • 手机CPU温度异常等等

bug提交

标题:【monkey】【crash/重启/…】APP在执行monkey测试发生crash/重启/…

复现步骤:

  1. 环境
  2. 命令
  3. 查看结果

预期结果: monkey执行无异常
实际结果: monkey执行过程中出现crash

根据关键字 分析logcat日志,如 ANR/fatal/reboot/OOM/exception

# 重定向下载logcat日志
adb logcat -v time >E:\APPLOG\logcat.txt
adb shell monkey -p com.xueqiu.android - 300

六、完整的monkey脚本:

adb shell monkey --throttle 450 --ignore-security-exceptions --ignore-crashes --ignore-timeouts -v -v -v -p com.xueqiu.android 200 >E:\APPLOG\logcat.txt

logcat文件如下:

app自动化之monkey测试相关推荐

  1. monkey测试小记

    本篇中不记录环境搭建,只是介绍一些经验和小秘诀吧. 一.使用安卓模拟器进行测试. 在刚刚接触到monkey测试的时候,用的真机进行测试,点击几万次甚至更多的时候,发现系统变慢了.也许是错觉,但是系统经 ...

  2. 【Monkey测试】手机app测试性能测试,Monkey测试详解(全)

    目录:导读 前言 一.Monkey工具 二.Monkey的优劣 三.Monkey 命令 四.Monkey结果分析 五.Monkey详细 六.Monkey用来做什么 七.Monkey程序介绍 八.Mon ...

  3. monkey测试_爱码小士丨 APP稳定性测试(附视频详解)

    在实际的测试过程中,主要是对系统的功能来进行测试,用于校验功能的正确性 还需要考虑到系统在未修改的状态下,是否能够稳定运行,即崩溃.闪退.重启.系统异常等等等地情况 在APP中,稳定性测试一般是交由M ...

  4. monkey测试===通过monkey测试检查app内存泄漏和cpu占用

    最近一直在研究monkey测试.网上资料很多,但都是一个抄一个的.原创的很少 我把检查app内存泄漏的情况梳理一下: 参考资料: Monkey测试策略:https://testerhome.com/t ...

  5. Monkey测试(APP稳定性)

    目录 1.Monkey简介 2.monkey程序介绍 3.Monkey测试前准备 4.Monkey测试命令 5. Monkey测试结果(pass或者fail)的判断 6.Monkey Log的简单分析 ...

  6. 安卓手机APP压力monkey测试

    一.Monkey概述 Monkey是Android中的一个命令行工具,可以运行在模拟器里或实际设备中.它向系统发送伪随机的用户事件流(如按键输入.触摸屏输入.手势输入等),实现对正在开发的应用程序进行 ...

  7. APP测试常用的adb命令以及Monkey测试汇总篇

    1.显示系统中全部设备: adb devices 这个命令是查看当前连接的设备, 连接到计算机的android设备或者模拟器将会列出显示 adb devices 2.开启或关闭ADB服务 开启服务: ...

  8. android 免费云测平台,免费移动App自动化云测试软件推荐-Testin(云测)

    每当我们完成一个得意的作品APP之后,肯定会立即去上传或者是推广.但是app测试是一项很重要的工作!估计大都是的app测试只是程序员几个人完成.今天,25学堂跟大家分享一个每一个人都可以参与的app自 ...

  9. App之Monkey测试

    作为初入测试行业的小白,了解一些Monkey测试是很有必要的,在此小编整理了一些App方面Monkey测试的基础以及Monkey脚本的编写,希望可以帮助到大家. 1. Monkey的概念 Monkey ...

  10. Android Monkey测试入门(摘)

    Monkey是一款通过命令行来对我们APP进行测试的工具,可以运行在模拟器里或真机上.它向系统发送伪随机的用户事件流,实现对正应用程序进行压力测试. 官方介绍 :https://developer.a ...

最新文章

  1. 哈佛结构和冯诺依曼结构区别。
  2. Codeforces Round #232 Editorial Div2-B
  3. 由键盘下陷引起的奇怪事件
  4. 怎么判断再一个局域网内一个ip被两台机器占用_交换机与 VLAN 到底是怎么来的...
  5. 【51单片机快速入门指南】2.1:数码管显示数字、小数 (科学计数法)
  6. PHP商城数据库安全事务处理方法
  7. java中strictfp么意思_什么时候应该在java中使用“strictfp”关键字?
  8. ghost linux 全盘拷贝,如何用ghost实现小硬盘对大硬盘的全盘拷贝?
  9. maven配置报错以及The JAVA_HOME environment variable is not defined correctly的解决方法
  10. (十)unity4.6学习Ugui中文文档-------參考-UGUI Canvas Components
  11. python图形编程环境环境_Python开发环境Wing IDE matplotlib 2D绘图库代码调试技巧小结...
  12. Linux下安装、配置、启动Apache
  13. 图像的上采样、下采样
  14. Linux版本CentOS下安装svn客户端及使用
  15. 青浦区服务器维修,青浦区DNS服务器地址
  16. celery(分布式任务队列)介绍+在django中异步回调使用+定时任务的使用
  17. 联想thinkpad待机怎么唤醒_联想电脑睡眠无法唤醒_联想电脑睡眠怎么唤醒
  18. 针对salaries表emp_no字段创建索引idx_emp_no,查询emp_no为10005, 使用强制索引。
  19. Java调用Bartender控制条码打印机
  20. 帝国cms 修改系统自带语言模板文件

热门文章

  1. db2去除字段值的空格_sql trim()函数去掉两头空格
  2. 谷歌Android UI设计技巧
  3. 1.Excel绘制斜线表头
  4. 山东大学软件学院计算机组成原理2021-2022期末考试回忆版
  5. windows 端口被System进程占用怎么解决?
  6. class CText{}; CText t; int const CText::*p; 什么意思?
  7. 微信小程序 指纹识别
  8. php音频怎么打开,音频管理器怎么设置
  9. linux socket 阻塞服务端 非阻塞客户端,Linux socket非阻塞connect方法
  10. Android录屏解决方案调研