【问题标题】:How I can simulate user's activity system wide on Android device?如何在 Android 设备上模拟用户的活动系统范围?
【发布时间】:2016-10-03 13:41:40
【问题描述】:

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

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

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

【问题讨论】:

  • 这个问题太宽泛了,因为可能有太多正确的答案,或者答案可能主要基于意见。此外,许多好的问题会根据专家的经验产生一定程度的意见,但对这个问题的回答往往几乎完全基于意见,而不是事实、参考资料或特定专业知识。

标签: android automated-tests calabash ui-testing


【解决方案1】:

如果您想与系统或第三方应用程序进行交互,则更好的选择是 Android UIautomator。

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

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

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

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

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

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

    系统'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,并且测试正在针对该 apk 运行,因此 calabash 无法使用 calabash 命令自动化其他应用程序。你可以以我上面提到的任何一个选项结束。

【讨论】:

    猜你喜欢
    • 2011-11-01
    • 1970-01-01
    • 2012-04-16
    • 2017-08-23
    • 1970-01-01
    • 2018-06-25
    • 2012-05-30
    • 2013-08-13
    相关资源
    最近更新 更多