我有一个问题,不知道如何解决。我看到了一些用于 android 应用程序自动化测试的工具,比如 appium 等。他们从设备外部连接到 android 设备、模拟器并打开要测试的应用程序。我想知道如何构建一个可以实现相同功能的原生 Android 应用程序。打开另一个应用程序并开始在该应用程序的 UI 上执行不同的操作。举一个简单的例子,假设我有一个我想测试的社交应用程序。我想要另一个在手机上运行的程序,它打开我的社交应用程序并开始运行一些操作,比如在应用程序内搜索、点击不同的帖子、喜欢帖子等等。有没有办法做到这一点?是否有任何框架或方法可以做到这一点?
问候。
最佳答案
Android 有两种自动化框架。
基于仪器:
以及用于功能测试的黑盒框架:
- > Appium
- > Perfecto
- > ATMOSPHERE
instrumentation frameworks 的工作方式如下:由于每个 android 应用程序都在沙箱中运行,其他应用程序一旦安装就无法更改其行为,因此基于 instrumentation-based 的框架会更改应用程序的安装包,在方法中注入(inject) hooks允许他们与应用程序交互的定义。这允许绕过 Android 系统中的沙箱。
其他三个都有 UIAutomator
Android 服务作为与应用程序交互的基础。 UIAutomator
是 hte Android SDK 的一部分,允许模拟真实的用户交互(例如点击、滚动等),而不是在较低的代码级别上模拟它们。
我相信列出的五个框架中的任何一个都可以让您实现您想要的。我个人推荐黑盒测试框架,因为检测可以隐藏缺陷。我最喜欢的框架是 ATMOSPHERE - 免费使用,开源,虽然最近更容易使用。
关于安卓应用交互,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41389131/