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. POJ 1797-Heavy Transportation-dijkstra小变形和POJ2253类似

    传送门:http://poj.org/problem?id=1797 题意: 在起点和终点间找到一条路,使得经过的边的最小值是最大的: 和POJ2253类似,传送门:http://www.cnblog ...

  2. 2019杭电多校 hdu6659 Acesrc and Good Numbers

    http://acm.hdu.edu.cn/showproblem.php?pid=6659 题意:给你d,x,让求满足f(d,n)=n的最大n(n<=x),其中f(d,n)表示数字d在从1到n ...

  3. andriod开发--使用Http的Get和Post方式与网络交互通信

    package com.example.a350773523.myapplication; import android.os.AsyncTask; import android.support.v7 ...

  4. HDU2276 Kiki & Little Kiki 2 矩阵快速幂

    Kiki & Little Kiki 2 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java ...

  5. Leetcode之动态规划(DP)专题-详解983. 最低票价(Minimum Cost For Tickets)

    Leetcode之动态规划(DP)专题-983. 最低票价(Minimum Cost For Tickets) 在一个火车旅行很受欢迎的国度,你提前一年计划了一些火车旅行.在接下来的一年里,你要旅行的 ...

  6. WPF 字体图标样式

    1.在网上下载Font ICO 字体字体压缩包 Font Awesome 矢量图标库    2.下载到的压缩包,解压后获得图标字体文件        3.然后把字体文件夹拷贝到项目中,目录为(/fon ...

  7. 【Offer】[24] 【反转链表】

    题目描述 思路分析 测试用例 Java代码 代码链接 题目描述 定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点. 思路分析 利用三个指针,pre,p,pNext,将p的next ...

  8. ssh-agent代理的简单用法

    前言 在ansible的官方文档中,提到了强烈推荐用ssh-agent来管理密钥 究竟ssh-agent是什么,它有什么用法呢,下面来一探究竟. ssh-agent是什么?用处是什么? ssh-age ...

  9. 基于SSM的在线考试系统

    本系统功能非常完善,页面美观大方,技术新颖,选用主流数据库Mysql,表数量及结构适当,如果你需要做在线考试或者其它考试类系统,这个系统将非常有用. 其实,任何考试系统,无非试题不一样,所以如果你是做 ...

  10. springboot应用监控和管理

    spring boot应用监控和管理 Spring Boot 监控核心是 spring-boot-starter-actuator 依赖,增加依赖后, Spring Boot 会默认配置一些通用的监控 ...