Google官方出了一款App遍歷工具App Crawler。java
文檔:https://developer.android.google.cn/training/testing/crawlerandroid
App Crawler工具是Android Jetpack的一部分,它可自動的運行你的App,不須要編寫或維護任何代碼。shell
經過App Crawler運行App,自動的執行動做(點擊、拖動等)遍歷你的App。當沒有其餘特殊的操做要執行、應用程序崩潰或達到超時時間,App Crawler將自動中止。app
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.zipui
接下來,啓動Android模擬器,或者經過USB鏈接一臺Android手機,經過ADB工具檢測設備。google
> adb devices List of devices attached 6QDDU196XXXXXX device
將下載的 app-crawler.zip 包解壓,進入到解壓目錄。debug
> 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時跟如下選項。
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解決了這個問題。