Android Calabash 测试工具教程

什么是 Calabash?

Calabash 是一个开源的验收测试框架,允许您为 iOS 和 Android 应用程序编写和执行测试。

它是一个自动化用户界面框架,允许使用 Cucumber 用 Ruby 编写测试。

Calabash 的工作原理是通过在移动应用程序中启用自动 UI 交互,例如按下按钮、输入文本、验证响应等。它可以配置为在不同的 Android 和 iOS 设备上运行,从而提供实时反馈和验证。

为什么选择 Calabash 自动化?

优点 缺点
它有助于提高吞吐量/生产力。 需要熟练掌握才能编写自动化测试脚本。
提高质量或提高质量的可预测性 调试测试脚本是一个主要问题。
提高流程或产品的稳健性(一致性)。 在回放方法的情况下,测试维护成本很高。
提高输出一致性,降低劳动力成本和费用 如果测试脚本测试的屏幕较多,则测试数据文件的维护很困难

Calabash 和 BDD

  • Calabash 是**行为驱动开发 (BDD)**。它与测试驱动开发 (TDD) 相同,但不是创建测试来描述 API 的形状,而是指定应用程序行为。
  • BDD 是一个过程,其中多个利益相关者共同努力,对要构建的内容达成共识。
  • BDD 有助于从业务所有者的角度构建正确的软件和设计。

Calabash And BDD

如何安装 Calabash

**第一部分)**安装Java JDK – 请参阅本指南 – /install-java.html

第二部分)下载并安装 Ruby。

**步骤 1)**从 URL **https://rubyinstaller.ruby-lang.org.cn/downloads** 下载 Ruby

Install Calabash

**步骤 2)**打开 exe 文件,按照屏幕上的说明进行操作。安装完成后,您将看到以下屏幕。单击“完成”。

Install Calabash

在 Windows 10 上使用 Ruby 启动命令提示符并输入以下命令。

ruby –v

Install Calabash

第三部分)下载并安装 Android

**步骤 1)**在 https://developer.android.com.cn/studio 下载 Android Studio

Install Calabash

**步骤 2)**打开 exe 文件,按照屏幕上的说明完成安装。完成后单击“完成”按钮

Install Calabash

第四部分)安装 Calabash Android

**步骤 1)**在控制台中键入 **install calabash-android**。安装将开始并需要一些时间才能完成

Install Calabash

**步骤 2)**安装完成后,键入 **calabash-android version**

Install Calabash

使用 Calabash

打开“calabash-android-0.9.0”文件夹。它位于路径 C:\Ruby23\lib\ruby\gems\2.3.0\gems\calabash-android-0.9.0。文件夹名称将与您机器上安装的 ruby/calabash 版本同步更改。

打开功能骨架文件夹。寻找这个基本框架。

Working With Calabash

  • *.feature 文件包含我们要自动化的场景。
  • feature 文件使用的方法写在“step_definitions”文件夹中的 *.rb 文件中。
  • 通用方法、环境设置、应用程序安装和钩子应放在“support”文件夹中。

重新签名并构建应用程序

  • Calabash-android resign *.apk
  • Calabash-android build *.apk

Resign & Build The App

将设备连接到系统/打开模拟器

检查设备是否连接。输入命令

adb devices

应显示连接的设备列表。

Attach The Device to The System /Open The Emulator

如何查找元素定位器

  • 打开控制台。输入命令。
    calabash android console "APK Path"
    start_test_server_in_background
  • 上述命令在设备上启动应用程序。要查找元素定位器,请使用以下命令。
    query "*"

    Find The Element Locator

这将显示当前屏幕上的所有元素定位器。

创建新脚本

打开 feature 文件并添加以下行

Creating New Scripts

Feature: Login feature
  Scenario: As a valid user I can log into my app
    When I press "Login"
    And I enter my username 
    And I enter my password
    Then I see "Welcome to coolest app ever"

打开步骤定义文件并在 *.rb 文件中定义方法。

Creating New Scripts

Given /^I am on the login windows$/ do
   wait_for(:timeout =>100) { element_exists("* id:'loginInput;")}
   check_element_exists("* id:'loginInput;")
end

执行测试项目

要执行测试项目,请使用以下命令

calabash-android run "APK Path" "feature file Path" – tags "tag name"

Execute The Test Project

Execute The Test Project

摘要

  • Calabash 是一个新的开源框架,有助于自动化和测试任何 iOS 或 Android 应用程序。
  • 要使用 Calabash,测试应该使用 Cucumber 用 Ruby 编写。
  • 它使用行为驱动开发 (BDD) 的概念
  • 它通过将其工作分为以下四个层来自动化代码
  • 第一层
  • 业务层
  • 技术层
  • 最终层