我如何在 Android 设备上模拟用户的 activity 系统?

How I can simulate user's activity system wide on Android device?

我正在使用 Calabash 框架为我的应用程序编写自动化测试。

在某些情况下,我需要启动相机并执行一些操作,例如拍照或录制视频。要执行这些操作,我需要在相机应用程序中找到并点击按钮,但 Calabash 仅提供与测试应用程序的交互。

所以,问题来了:是否有任何框架或其他东西可以在系统范围内提供模拟用户的操作?

如果你想与系统或第三方应用交互意味着更好的选择是 Android UIautomator。

它可以模拟用户在 android 设备应用程序上的操作,您可以找到更多信息 here

包装了以下工具 Android UI Automator 以使其易于使用。

  1. Appium - website
  2. Python UI Automator - github link

您可以通过三种方式实现目标,

  1. 你可能会使用上面提到的任何一种工具,然后你需要重写整个脚本

  2. 如果你不想重写整个脚本,你仍然需要使用python uiautomator。基本上,您需要为系统和第三方应用程序交互编写 python 脚本,然后您需要在 ruby 代码中调用该 python 文件,如下所示:

    system 'python file_path/file_name.py'

  3. 最后一个选项是,如果您的核心应用程序中的操作非常少,那么您需要使用非常简单易用的 ADB 命令,例如我需要打开相机、对焦和拍照使用以下命令:

    system 'adb shell "am start -a android.media.action.IMAGE_CAPTURE"'
    system 'adb shell "input keyevent KEYCODE_FOCUS"'
    system 'adb shell "input keyevent KEYCODE_CAMERA"'
    

在你的例子中,calabash-android 包含了 Android 检测框架。

Calabash 将退出您的特定 apk 并且测试 运行 againts 该 apk,因此 calabash 无法使用 calabash 命令自动化其他应用程序。你可能会以我上面提到的任何一个选项结束。