feature为主件夹,step_definitions内是你封装的脚本,my_first.feature文件就是你的TC逻辑。再看一下其中的内容:
my_first.feature
Feature: 登陆
Scenario: 输入正确的用户名密码能够正常登陆
When 打开登陆页面
And 输入用户名XXX输入密码XXX
And 点击登陆
Then 验证登陆成功
看起来很简单吧,想要验证其他功能也是类似的语言描述即可。如果你没有用过cucumber或者calabash那么你肯定现在有一个疑问,计算机怎么能识别汉字来进行测试的呢,那么看一下step_definition:
以输入用户名XXX输入密码XXX为例:
When /^ 输入用户名\"([^\\\"]*)\" 输入密码\"([^\\\"]*)\" $/ do |username,password| performAction('enter_text_into_numbered_field',username,1) performAction('enter_text_into_numbered_field',password,2) end |
现在应该能明白为什么你需要写汉字的脚本就可以了吧。在这里解释一下为什么如果业务存在功能修改这种情况,自动化脚本的修改量会小,还是以这个登录脚本为例,加入现在输入用户名和密码的输入框顺序变了,在你的页面显示上,可能是从左下角移到中间了,这种变化,那么feature文件你不用改,只需要改step_definition脚本就好了。
运行报告
calabash-android支持很多报告生成模式,支持html,json,junit等等报告模式,只需要你在run的时候添加-f参数-o参数就可以了。
例如 calabash-android run xxxx.apk -f html -o report.html,上图展示一下强大html报告