Dwa*_*ick 9 automation android ui-automation android-espresso
我试图自动化我的Android应用程序的一些UI(我没有源代码所以我使用的是APK文件).
我已经阅读了这里提供的教程以及Google 提供的一些教程,但所有教程都需要源代码.
如果有人知道如何在没有源代码的情况下使用Espresso自动化UI,请提供帮助.
我使用IntelliJ作为IDE和app android 5.0.2版.
答案是肯定的,您可以使用Espresso来运行自动化测试,而无需使用应用程序源代码。
Espresso基于Android工具框架,这意味着自动化测试已内置到单个测试apk中。此测试apk与正常应用apk不同:
在AndroidManifest.xml中注册了一个工具,一旦安装了测试apk,它将被注册到Android系统
为了运行自动化测试,必须使用与应用程序apk相同的签名对测试apk进行签名。
测试apk与应用apk的运行过程相同
以上是任何基于仪器的测试框架的唯一要求。因此,不依赖源代码。
但是为什么我们会发现大多数Espresso教程都混有源代码?因为这样会使测试更简单?
您可以使用类ActivityTestRule轻松控制活动生命周期。
您可以轻松测试应用程序定义的类。
您可以使用小部件ID测试UI小部件
相反,如果不使用源代码进行编译,则必须编写大量反射代码来获取所需的类。例如:
您必须使用Class.forName加载入口活动并启动它
您必须使用Java反射来测试应用程序定义的类
您必须使用文字信息来查找UI小部件,因为您没有UI小部件的ID
我认为这是由于上述缺点所致,这使Google倾向于将Espresso测试与源代码一起构建。
综上所述,可以在没有应用程序源代码的情况下运行Espresso自动化测试,但是这样做更加困难,并且使测试代码很难看。
您可以从AndroidTestWithoutSource引用示例项目。
要使用 espresso,您需要了解一些有关 UI 元素本身的信息(例如 id 和 type)。当您没有源代码时,您可以使用“uiautomatorviewer”工具,它是 Android SDK 的一部分。
http://developer.android.com/tools/testing-support-library/index.html#uia-viewer
归档时间: |
|
查看次数: |
4808 次 |
最近记录: |