gpt4 book ai didi

android - 使用 Espresso 自动化 Android APK

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:30:19 25 4
gpt4 key购买 nike

我正在尝试自动化我的 Android 应用程序的某些 UI(我没有源代码,所以我使用的是 APK 文件)。

我已经完成了提供的教程 here以及 Google 提供的一些教程,但所有教程都需要源代码。

如果有人知道如何在没有源代码的情况下使用 Espresso 自动化 UI,请提供帮助。

我使用 IntelliJ 作为 IDE 和应用程序 android 版本 5.0.2。

最佳答案

答案是肯定的,您可以在没有应用源代码的情况下使用 Espresso 运行自动化测试。

Espresso 基于 Android 仪器框架,这意味着自动化测试被内置到单个测试 apk 中。此测试apk与普通应用apk不同:

  1. 在AndroidManifest.xml中注册了一个instrumentation,安装测试apk后会注册到Android系统

  2. 测试 apk 必须使用与应用程序 apk 相同的签名进行签名,以便运行自动化测试

  3. 测试apk与应用apk运行在同一个进程

以上是任何基于仪器的测试框架的唯一要求。所以不存在源码依赖。

但为什么我们发现大多数 Espresso 教程都混有源代码?因为这样会让测试更简单:

  1. 您可以使用类 ActivityTestRule 轻松控制 Activity 生命周期。

  2. 您可以轻松地测试应用程序定义的类。

  3. 您可以使用小部件 id 测试 UI 小部件

相反,如果不使用源代码进行编译,则必须编写大量反射代码才能获取所需的类。例如:

  1. 您必须使用 Class.forName 加载入口 Activity 并启动它

  2. 您必须使用 Java 反射来测试应用程序定义的类

  3. 您必须使用文字信息来查找 UI 小部件,因为您没有 UI 小部件的 ID

我认为是由于上述缺点,这使得谷歌更愿意将 Espresso 测试与源代码一起构建。

综上所述,在没有应用程序源代码的情况下运行 Espresso 自动化测试是可以的,但是这要困难得多,并且会使测试代码变得丑陋。

您可以引用AndroidTestWithoutSource中的示例项目.

关于android - 使用 Espresso 自动化 Android APK,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32393159/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com