Google官方出了一款App遍历工具App Crawler。

文档:https://developer.android.google.cn/training/testing/crawler

App Crawler工具是Android Jetpack的一部分,它可自动的运行你的App,不需要编写或维护任何代码。

通过App Crawler运行App,自动的执行动作(点击、拖动等)遍历你的App。当没有其他特殊的操作要执行、应用程序崩溃或达到超时时间,App Crawler将自动停止。

Crawler进行测试非常简单,因为不需要编写和维护任何代码。你可以在各种设备上运行它来查找崩溃、视觉或性能问题。我们可以将它部署成云服务,这样可以更快地测试不同屏幕的大小、硬件配置下App的运行情况。

目标人群

App Crawler的目标用户是那些希望以最少配置确保App基本功能的开发人员。除了纯黑盒测试之外,还可以配置App Crawler来设置特定的输入,比如登录凭证或deep links。

开始使用

在开始之前,你必须安装最新版的Android SDK,你可以安装Anroid Studio来获取,如果你已经安装了Android SDK,取保它包含最新的build tools和platform tools.

下载 App Crawler:https://dl.google.com/appcrawler/beta1/app-crawler.zip

接下来,启动Android模拟器,或者通过USB连接一台Android手机,通过ADB工具检测设备。

> adb devices
List of devices attached
6QDDU196XXXXXX device

将下载的 app-crawler.zip 包解压,进入到解压目录。

> cd app-crawler
> ls
README
crawler_app.apk
debug.keystore
crawl_launcher.jar
crawler_stubapp_androidx.apk

执行下面的命令:

java -jar crawl_launcher.jar --apk-file D:/android/com.meizu.flyme.flymebbs_40001003.apk --app-package-name com.meizu.flyme.flymebbs --android-sdk D:/android/sdk

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

Crawler 选项

你可以在使用Crawler时跟以下选项。

Option Description
--android-sdk 指定Android SDK路径。 此选项必填。
--apk-file 指定你的App APK路径,App Crawler会对它进行安装和爬取。如果没有指定 —app-package-name选项,请使用此选项。
--app-package-name 指定App包的名字。当应用程序已安装在设备上,且不需要重新安装时,请使用此选项。
--key-store 指定给App和 Crawler APKs签名的密钥存储库的路径。当您的应用程序需要特定的签名才能正常运行时,请使用此选项。
--key-store-password 指定为 --key-store 选项提供的密钥存储库的密码。如果指定了--key-store,那么这是必需的标志。
--timeout-sec 指定Crawler运行超时时间,单位为秒,如果没有设置,默认为60s

已知问题

删除原始签名文件失败。

如果你安装的是JDK9, Crawler运行的时候会抛出以下错误信息:

androidx.test.tools.crawler.launcher.exceptions.ApkSigningException: Failed to delete original signature files

如果遇到这种情况,我们建议使用JDK 8或10+。有关此问题的更多信息,请参见JDK 9错误。一些用户通过使用更新版本的Android Studio重新构建他们的APK解决了这个问题。

App Crawler的更多相关文章

  1. app crawler1

    app crawler简介 执行 java -jar appcrawler-2.1.3.jar 查看相关参数 -a, --app Android或者iOS的文件地址, 可以是网络地址, 赋值给appi ...

  2. Googlebot (Google Web search)

    w推测“域名解析过程中,Google crawlers中首先是Googlebo中的Google Web search上阵”. +-----+----------------+------------- ...

  3. TesterHome创始人思寒:如何从手工测试进阶自动化测试?十余年经验分享

      做测试十多年,有不少人问过我下面问题: 现在的手工测试真的不行了吗? 测试工程师,三年多快四年的经验,入门自动化测试需要多久? 自学自动化测试到底需要学哪些东西? 不得不说,随着行业的竞争加剧,互 ...

  4. 一步一步教你用 Vue.js + Vuex 制作专门收藏微信公众号的 app

    一步一步教你用 Vue.js + Vuex 制作专门收藏微信公众号的 app 转载 作者:jrainlau 链接:https://segmentfault.com/a/1190000005844155 ...

  5. 基于Node.js的爬虫工具 – Node Crawler

    Node Crawler的目标是成为最好的node.js爬虫工具,目前已经停止维护. 我们来抓取光合新知博客tech栏目中的文章信息.访问http://dev.guanghe.tv/category/ ...

  6. App开发:模拟服务器数据接口 - MockApi

    为了方便app开发过程中,不受服务器接口的限制,便于客户端功能的快速测试,可以在客户端实现一个模拟服务器数据接口的MockApi模块.本篇文章就尝试为使用gradle的android项目设计实现Moc ...

  7. Android Studio配置 AndroidAnnotations——Hi_博客 Android App 开发笔记

    以前用Eclicps 用习惯了现在 想学学 用Android Studio 两天的钻研终于 在我电脑上装了一个Android Studio 并完成了AndroidAnnotations 的配置. An ...

  8. Android请求网络共通类——Hi_博客 Android App 开发笔记

    今天 ,来分享一下 ,一个博客App的开发过程,以前也没开发过这种类型App 的经验,求大神们轻点喷. 首先我们要创建一个Andriod 项目 因为要从网络请求数据所以我们先来一个请求网络的共通类. ...

  9. 【原创分享·支付宝支付】HBuilder打包APP调用支付宝客户端支付

    前言 最近有点空余时间,所以,就研究了一下APP支付.前面很早就搞完APP的微信支付了,但是由于时间上和应用上的情况,支付宝一直没空去研究.然后等我空了的时候,发现支付宝居然升级了支付逻辑,虽然目前还 ...

随机推荐

  1. “玲珑杯”ACM比赛 Round #18 1147 - 最后你还是AK了(思维,边的贡献)

    题目链接:http://www.ifrog.cc/acm/problem/1147 题解:这题很容易想到的是边的贡献也就是每条边最多被取到几次,和点的贡献类似,那些加边只要加在边贡献大的边上就行.然后 ...

  2. jquery中的 $(function(){ .. }) 函数

    2017-04-29 在讲解jquery中的 $(function(){ .. }) 函数之前,我们先简单了解下匿名函数.匿名函数的形式为:(function(){ ... }),又如 functio ...

  3. Linux入门基础之一

    Linux 入门基础 一.Linux 系统安装 安装方法网上很多,请自行百度 二.Linux 基本操作 2.1.GNOME图形界面基本操作 操作类似于Windows系统操作 打开每一个文件夹都会打开一 ...

  4. Go语言获取系统性能数据gopsutil库

    psutil是一个跨平台进程和系统监控的Python库,而gopsutil是其Go语言版本的实现.本文介绍了它的基本使用. Go语言部署简单.性能好的特点非常适合做一些诸如采集系统信息和监控的服务,本 ...

  5. 新建项目中的fail和missing之类的问题

    首先必须要明白:每一个项目需要都要安装在本地仓库中去--->pom,war,jar无一例外 如果不安装会出现下面的错误: 解决的办法就是: 先clean后install项目,把他们安装到本地仓库 ...

  6. Python面向对象编程——继承与派生

    Python面向对象编程--继承与派生 一.初始继承 1.什么是继承 继承指的是类与类之间的关系,是一种什么"是"什么的关系,继承的功能之一就是用来解决代码重用问题. 继承是一种创 ...

  7. DOM的预习

    HTML DOM 将 HTML 文档视作树结构.这种结构被称为节点树: 一些常用的 HTML DOM 方法: getElementById(id) - 获取带有指定 id 的节点(元素) append ...

  8. 华为Quidway S5700开启SNMP协议

    开启SNMP协议通过Console口登录主要用于交换机第一次上电或者本地配置.或者无法通过远程访问时,可通过Console口登录.如何才能通过Console口登录交换机呢?在配置通过Console口配 ...

  9. Hbase与传统关系型数据库对比

    在说HBase之前,我想再唠叨几句.做互联网应用的哥们儿应该都清楚,互联网应用这东西,你没办法预测你的系统什么时候会被多少人访问,你面临的用户到底有多少,说不定今天你的用户还少,明天系统用户就变多了, ...

  10. Kubernetes监控实践

    一.Kubernetes介绍 Kubernetes(K8s)是一个开源平台,能够有效简化应用管理.应用部署和应用扩展环节的手动操作流程,让用户更加灵活地部署管理云端应用. 作为可扩展的容错平台,K8s ...