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解决了这个问题。