Calabash是什么?
Calabash是一个开源验收测试框架,允许编写和执行iOS和Android应用的测试。 它是一个自动化用户界面框架,允许使用Cucumber用Ruby编写测试。
Calabash的工作原理是在移动应用程序中启用自动UI交互,例如按下按钮、输入文本、验证响应等。它可以配置为在不同的Android和iOS设备上运行,从而提供实时反馈和验证。
在本教程中,我们将学习-
- 为什么使用Calabash做自动化测试?
- 葫芦和BDD
- 如何安装Calabash
- 使用Calabash
Calabash的优势与劣势
优势 | 劣势 |
---|---|
它有助于提高吞吐量/生产力。 | 编写自动化测试脚本需要熟练。 |
提高质量或提高质量的可预测性 | 调试测试脚本是一个主要问题。 |
提高流程或产品的健壮性(一致性)。 | 在回放方法的情况下,测试维护成本很高。 |
提高产量一致性,降低人工成本和费用 | 如果测试脚本测试更多屏幕,则很难维护测试数据文件 |
Calabash和BDD
- Calabash是行为驱动开发(BDD)。它与测试驱动开发(Test Driven Development,TDD)相同,但是指定了应用程序行为,而不是创建测试来描述API的形状。
- BDD是一个多个利益相关者参与的过程,以创建对必须构建的内容的共同理解。
- BDD有助于从企业所有者的角度构建正确的软件和进行设计。
如何安装Calabash
第一部分) 安装Java JDK
第二部分) 下载并安装Ruby。
步骤1) 从url http://rubyinstaller.org/downloads下载ruby
步骤2) 打开可执行文件,按照屏幕上的说明操作。单击完成。
在Windows10上使用Ruby启动命令提示符,然后在命令下面键入。
ruby –v
第三部分) 下载安装Android
第一步) 在http://developer.android.com/sdk/index.html下载Android Studio
步骤2) 打开exe,按照屏幕上的说明完成安装。完成后,单击完成按钮
第四部分) 安装Calabash Android
步骤1) 在控制台中键入install calabash-android。安装将启动,并需要一些时间才能完成
步骤2) 安装完成后,键入calabash-Android版本
使用calabash
打开“calabash-android-0.9.0”文件夹。它位于路径C:23,文件夹名称将与机器上安装的ruby/calabash版本同步更改。 打开文件夹。注意这个基本框架。
- *.feature文件包含我们要自动化的场景。
- 特征文件使用的方法写入“step_definitions”文件夹内的*.rb文件中。
- 常用的方法、环境设置、应用程序安装和钩子应该放在“support”文件夹中。
构建签名应用程序
- Calabash-android resign *.apk
- Calabash-android build *.apk
将设备连接到系统/打开仿真器
检查连接的设备。键入命令
adb devices
应显示连接的设备列表。
如何查找元素定位器
- 打开控制台,键入命令。
calabash android console "APK Path"
start_test_server_in_background
- 上面的命令在设备上启动应用程序。要找到元素定位器,使用以下命令。
query "*"
这将在当前屏幕上显示所有元素定位器。
创建新脚本,打开文件和以下行
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文件中。
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"
总结
- Calabash是一个新的开源框架,可以帮助自动化和测试任何iOS或Android应用程序。
- 要使用Calabash,测试应该使用Cucumber用Ruby编写。
- 它使用行为驱动开发(BDD)的概念
- 它通过将其工作划分为以下四个层来自动执行代码