【问题标题】:How can I automatically test the functionality of iOS and Android applications?如何自动测试 iOS 和 Android 应用程序的功能?
【发布时间】:2012-08-30 17:26:02
【问题描述】:

我必须定期测试电影租赁网站的可用性和功能。我写了一个 Windows 程序,它可以根据脚本自动运行 Web 浏览器,所以这个任务基本解决了。现在我必须自动化这个 Web 应用程序的移动版本:一个原生 iOS 应用程序和一个原生 Android 应用程序。

这些应用是封闭源代码,因此不能以任何方式修改。我认为测试应用程序应该部署在测试设备(iPhone、iPad、Galaxy Tab、Galaxy S II)上,但我必须能够远程控制它。我的意思是,我想在测试设备和 PC 之间建立连接,将测试脚本从 PC 上传到设备,运行它们,然后将测试结果下载到 PC。测试脚本应该启动要测试的应用程序,操作其 GUI(填充编辑框、按钮等),并以某种方式跟踪其响应,例如通过分析 GUI(某些 GUI 元素的存在、它们的标题等) 、分析屏幕截图和/或检查 IP 数据包。

我为 Windows 编写了许多类似的测试程序:我使用了 ShellExecute、PostMessage、FindWindow、WinPcap 库等,所以我知道这样的程序应该如何工作。但由于我从来没有为移动操作系统编写过应用程序,我什至不知道是否有适用于 iOS 和 Android 的类似 API 和库。

我想知道从哪里开始,我的意思是,可以使用哪些 SDK 和开发工具来编写这样的应用程序。我也对商业解决方案感兴趣。非常感谢任何帮助。

【问题讨论】:

  • “测试脚本应该启动要测试的应用程序,操作它的 GUI(填充编辑框、按钮等)”对于 iOS 是不可能的(越狱可能是可能的),不确定 Android
  • @MSK 谢谢。这是个坏消息 :( 是否可以在 Mac OS X 上通过模拟器运行 iOS 应用程序,并像桌面应用程序一样自动化它?
  • 如果您使用鼠标/键盘宏,我不明白为什么不这样做,对于 android,您可以查看 monkeyrunner developer.android.com/tools/help/monkeyrunner_concepts.html

标签: android ios ui-automation galaxy packet-capture


【解决方案1】:

我喜欢LessPainful 的“Calabash-iOS/Calabash-Android”。这对我来说是最好的。

  • 免费
  • 适用于 iPhone 和 Android
  • 录制和回放
  • 在本机和模拟器上测试

他们没有 GUI IDE。它们是基于 Ruby 的解决方案,编写测试用例脚本非常容易,如下所示:

Then I swipe left
And I wait until I don't see "Please swipe left"
And take picture

也可以

Then I touch the "login" button

点击按钮,或

Then I fill in "placeholder" with "text to write"

向文本框写入内容。

并且脚本可以被Calabash-iOS和Calabash-Android共享。该功能对于同时制作 iPhoneApp 和 Android App 的开发者来说很方便。

我认为 MonkeyTalk 不错,但实际上不稳定,至少在我的环境中是这样。
有时MonkeyIDE会崩溃,所以我们必须对MonkeyTalk进行调试......

希望对你有帮助。

【讨论】:

    【解决方案2】:

    MonkeyTalk 看起来很有希望。大猩猩逻辑website的功能:

    • 免费和开源
    • Automated 测试 iOS、Android、HTML5 和 Adob​​e Flex 应用程序
    • 跨平台录制和播放
    • 在 iOS 模拟器、Android 上测试原生、Web 或混合应用程序 模拟器或真实设备(无需越狱)
    • 从简单的“冒烟测试”到复杂的数据驱动的一切 测试套件

    数据包追踪:iOSAndroidAndroid

    【讨论】:

      【解决方案3】:

      Selenium 为移动设备和模拟器提供驱动程序。这是一个谷歌项目。他们有很好的文档。它有一个用于测试套件快速原型设计的 IDE,并支持多种语言,如 ruby​​、PHP、c# 等,

      【讨论】:

        【解决方案4】:

        如果脚本是您在 android 上的首选解决方案,您可以在安装 Scripting Layer for Android 后轻松导入和运行脚本。只需下载最新的 apk 文件,导入脚本并运行它。这在 iOS 上不可用,但您的一半问题可能会通过此解决。

        【讨论】:

          【解决方案5】:

          我知道这是一篇旧文章,但任何阅读 2016 年自动化的首选应该是 Appium(适用于 IOS /Android)。上面提到的所有工具都必须使用应用程序构建。 Appium 确实需要使用 App 代码进行任何构建。它在各种编程语言支持(PHP/JAVA/RUBY/PYTHON)中非常受欢迎。 [链接]:appium.io 和 [链接]:https://github.com/appium/appium

          【讨论】:

            猜你喜欢
            • 2017-02-22
            • 2019-01-21
            • 2019-05-27
            • 1970-01-01
            • 1970-01-01
            • 2017-08-17
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多