Android: 通过自然语言驱动monkey做稳定性测试

图灵汇官网

主要内容

  • 稳定性测试是什么
  • Monkey简介
  • 自动化Monkey

稳定性测试是什么

稳定性测试通过模拟随机点击来检查应用是否能正常运行,防止出现崩溃现象。

Monkey简介

Monkey是一款命令行工具,可在模拟器或实际设备上运行。它会生成一系列的用户行为事件,例如点击、触摸和手势,以模拟用户交互。使用Monkey工具可以进行压力测试,评估软件的稳定性和健壮性。

Monkey常用命令

基本语法如下:

adb shell monkey [options]

如果没有任何参数,Monkey将以无反馈模式启动,并向目标环境中的所有应用发送随机事件。

一个更典型的命令行示例,用于启动指定应用并向其发送500个随机事件:

adb shell monkey -p your.package.name -v 500

根据Monkey官网的介绍(链接),可以通过添加相应的参数来定制测试过程。

Monkey参数详解

  • 常规类

    • --help:显示参数帮助信息。
    • -v:打印日志信息,每个-v增加反馈信息的详细程度。
  • 事件类

    • --throttle:设置事件之间的延时时间。
    • --pct-touch:设置触摸事件的百分比。
    • --pct-motion:设置动作事件的百分比。
    • --pct-trackball:设置轨迹球事件的百分比。
    • --pct-nav:设置基础导航事件的百分比。
    • --pct-majornav:设置主要导航事件的百分比。
    • --pct-syskeys:设置系统按键事件的百分比。
    • --pct-appswitch:设置启动Activity的百分比。
    • --pct-anyevent:设置其他类型事件的百分比。
  • 约束类

    • -p:指定允许启动的包。
    • -c:指定允许启动的类别。
  • 调试类

    • --dbg-no-events:执行初始启动并进入测试Activity,不再生成事件。
    • --hprof:在事件前后生成性能报告。
    • --ignore-crashes:忽略应用崩溃。
    • --ignore-timeouts:忽略超时错误。

一条常用的Monkey命令

adb shell monkey -v -v -v -p your.package.name --ignore-crashes --ignore-timeouts --ignore-security-exceptions --monitor-native-crashes --ignore-native-crashes --throttle 1000 100000 > monkey.txt

Monkey的特点

  1. 使用随机事件流进行测试,不可自定义。
  2. 可设置事件数量、类型和频率。

自动化Monkey脚本

为了提高灵活性,可以编写脚本来驱动Monkey测试。使用BDD(行为驱动开发)的方式可以使得脚本更具可读性和易维护性。具体步骤如下:

  1. 环境搭建

    • 安装SDK。
    • 安装Node.js库adbkit。
  2. 创建项目

    • 打开CukeTest,新建项目并填写相关信息。
    • 完成创建后,在项目的根目录下执行npm install adbkit --save来安装adbkit库。
  3. 设置超时时间

    • 设置较长的超时时间以适应长时间运行的测试。
  4. 编辑support/env.js

    • 设置默认超时时间,例如1000秒。
  5. 编辑feature文件

    • 描述测试场景和参数,例如应用包名、随机数值、事件比例等。
  6. 编写自动化脚本

    • 编写步骤定义,使用Cucumber和adbkit库来实现Monkey测试的自动化。
  7. 运行脚本

    • 运行feature文件,查看Monkey自动操作的结果。

通过这种方式,可以方便地对多个应用进行不同的Monkey测试,并且可以轻松修改参数以适应不同的测试需求。

聆播科技提供软件自动化方面的专业产品和服务,帮助您实现公司测试业务及软件操作的自动化。欢迎联系我们,咨询详情。

本文来源: 图灵汇 文章作者: 吴玉馨