Monkey 改进版之 App Crawler

发布于 更新于
本文目录
  1. 原生Monkey
  2. Google App crawler
  3. 实测效果

技术文章自动化测试

大家知道Monkey是Android平台上进行压力稳定性测试的工具,通过Monkey可以模拟用户触摸屏幕、滑动、按键等伪随机用户事件来对设备上的程序进行压力测试。而原生的Android Monkey存在一些缺陷:

原生Monkey

大家知道Monkey是Android平台上进行压力稳定性测试的工具,通过Monkey可以模拟用户触摸屏幕、滑动、按键等伪随机用户事件来对设备上的程序进行压力测试。而原生的Android Monkey存在一些缺陷:

  • 事件太过于随机,测试有效性大打折扣 由于Monkey主要发送一些随机事件来进行测试,测试过程中的事件操作不受控制,大部分操作是无效的(比如点击的是空白区域、在不能滑动的页面进行滑动等等)。

  • 对App页面内的控件覆盖率不佳 也是因为随机性这一特点,不能保证App页面的所有控件都能得到有效覆盖测试。

  • 有概率跳出测试 点击到通知栏或者状态栏,就会跳转到其他的页面,从而中断当前App的测试。

Google App crawler

Google官方推出的App遍历工具,相比Monkey基于伪随机的事件,App Crawler是基于控件的遍历,可以更好的去遍历App的功能。

官方网址:https://developer.android.google.cn/training/testing/crawler

使用步骤:

  1. 安装JDK与Android SDK

    JDK与SDK的安装可以参考如下文章:

    /articles/8900000000000000306/

    /articles/8900000000000000526/

  2. 下载App Crawler并解压

    image.png
  3. 执行以下命令启动测试:

     java -jar crawl_launcher.jar --apk-file <apk文件路径> --app-package-name <app包名> --android-sdk <Android SDK路径>

    App Crawler运行完成后会生成 crawl_output 目录,里面有遍历的每一步的截图和日志信息。

相关命令参数:

参数

描述

--android-sdk

指定Android SDK的路径,这是一个必需的标记。

--apk-file

指定应用 APK 的路径,应用抓取工具随后会对其进行安装和抓取,这是一个必需的标记(如果未指定--app-package-name)。

--app-package-name

指定应用的软件包名称。当您的应用已安装在设备上且无需重新安装时,使用此选项。这是一个必需的标记(如果未指定--apk-file)。

--key-store

指定用于为您的应用和抓取工具 APK 签名的密钥库的路径。当您的应用需要特定签名才能正常运行时,使用此选项。

--key-store-password

指定您为--key-store选项提供的密钥库的密码。这是一个必需的标记(如果已指定 --key-store)。

--timeout-sec

指定抓取的超时(以秒为单位)。如果未指定,抓取会在 60 秒后停止。

实测效果

原生Monkey:

monkey.gif

Google App Crawler:

appcrawler.gif

来源:testingpai

继续阅读