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解決了這個問題。