我正在使用 Robotium 为其中一个 Android 应用程序编写测试用例。我的要求是用我的测试用例编写锁屏和主屏幕的测试套件。但是我无法通过我的仪器测试用例获取主屏幕事件和锁定屏幕。
3 回答
锁屏不是一个普通的应用程序,所以你不能检测它(这意味着你不能使用robotium测试它)。
主屏幕是 Launcher 应用程序的一部分,您应该能够像使用 robotsium 的任何其他应用程序一样对其进行检测和测试。
如果你想用 selenium 测试一个应用程序,或者你必须有源代码或者你必须有一个应用程序,它与测试项目的符号相同才能运行。通常,人们使用密钥库调试对它们进行签名然后对其进行测试。
根据该规则,您要测试启动器,您必须拥有一个 root 手机 -> 下载启动器应用程序并重新签名 -> 将新的启动器应用程序替换为 root 手机中的当前启动器应用程序。
所以它是如此复杂。
此外,您可以使用设备管理器创建测试用例以与设备硬件进行交互,例如锁定、解锁、打开 wifi、GPS...
限制Robotium
和Espresso
Robotium
典型的Espresso
UI 测试框架也有一个很大的限制——使用它们,您只能在测试环境下的应用程序内部进行操作。
这意味着他们不会检查某些类型的对话框、消息弹出窗口、通知或锁定屏幕。
Selenium
, Appium
, Calabash
(根据thienkhoi tran
回答)
Selenium
是另一个测试框架,它在 Android 上有自己的实现,称为Selendroid
. 如果你也想只保留一个测试框架Selendroid
(Calabash
基于开源测试框架,Cucumber
得到大伙的大力支持Xamarin
)和Appium
(另一个很好的Testdroid
维护工具)将是很好的选择。
我没有使用这些框架的经验,但我很确定至少可以对主屏幕活动执行测试,但它的语法并不像orApium
那样易于学习和阅读。Calabash
Robotium
解决方案:Robotium
用uiautomator
最后,我们决定保留Robotium
测试并添加另一个框架来完成它。Espresso
正如我所说,不会这样做,但具有 Android 测试支持的 Google 发布了另一个名为 的检测框架uiautomator
,它可以完美地Espresso
与Robotium
.
检查: https ://github.com/codepath/android_guides/wiki/UI-Testing-with-Robotium#robotium-in-googles-espresso-way (将配置更改Robotium
为Espresso-look-a-like
)
官方uiautomator
网站: https ://google.github.io/android-testing-support-library/docs/uiautomator/
如何混合Eespresso
(uiautomator
实际上也适用于Robotium
):http: //qathread.blogspot.com/2015/05/espresso-uiautomator-perfect-tandem.html
教程: https ://software.intel.com/en-us/android/articles/automatic-android-testing-with-uiautomator
希望它会有所帮助