zoukankan      html  css  js  c++  java
  • App Crawler

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

  • 相关阅读:
    Python多线程_thread和Threading
    Python多线程_thread和Threading
    ICMP协议
    ICMP协议
    Python中的Pexpect模块的简单使用
    Python中的Pexpect模块的简单使用
    Python中math和cmath模块的使用
    Python中math和cmath模块的使用
    Python中sys模块的使用
    Python模块化编程
  • 原文地址:https://www.cnblogs.com/fnng/p/11651434.html
Copyright © 2011-2022 走看看