如何在Android设备上模拟用户的系统活动?

时间:2016-10-03 13:41:41

标签: android automated-tests calabash ui-testing

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

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

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

1 个答案:

答案 0 :(得分:3)

如果您想要与系统或第三方应用互动,则意味着更好的选择是Android UIautomator。

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

以下工具包含Android UI Automator,方便使用。

  1. Appium - website
  2. Python UI Automator - github link
  3. 有三种方法可以实现目标,

    1. 你可以使用上面提到的任何一种工具,然后你需要重写更复杂的脚本

    2. 如果您不想重写entier脚本,仍然需要使用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"'
      
    4. 在您的情况下,使用Android检测框架包装的calabash-android。

      Calabash将辞职您的特定apk并且测试正在运行apk,所以没有办法calabash可以使用calabash命令自动化其他应用程序。你可以用我上面提到的任何一个选项结束。