capybara是一个简单的API,它提供了抽象层在你真实自动化库之上。如果它帮助,认为capybara是你的翻译,你告诉它做一些事情,它将优雅的将命令转换为你应用驱动的API。
所以当我们使用capybara进行翻译时,我们需要告诉capybara做什么并且需要一个API自动化库去进行翻译。
capybara是一个非常灵活的库,
通过这本书我们将看到它在各种场景中应用。然而。目前为止最常见的情景是应用cucumber作为capybara测试驱动,去驱动selenium webdriver 开展浏览器自动化。
当cucumber被调用来解析这些简单易懂的英语场景时,它将使用正则表达式去将这些匹配
cucumber介绍
cucumber是一种可以使用文本描述语言来执行自动测试用例的工具,使用的语言叫做Gherkin.
Gherkin用于描述软件的行为而不需要了解具体的实现,使用Gherkin主要有两个目的文档和自动测试用例(我们希望能够和手工测试用例也统一)。 Gherkin支持超过40种语言,包括英文、中文。 Gherkin可以在任何地方新增注释,注释以#开头,每一个文件都是已.feature结尾,在feature文件中输入功能描述、场景、步骤,当执行这个功能时每一个步骤都需要编写ruby代码块来实现具体的功能,当前cucumber支持多种语言,除了ruby还可以使用java、javascript来编写具体定义层的实现。
以下是一个cucumber 场景的例子
Feature: Search for Videos on Baidu
Scenario: Search for Videos
Given I am on the baidu home page
When I search for "capybara"
Then search result are returned
我们设置可以采用中文实现场景
中文的话最前面必须增加# language: zh-CN
1 | # language: zh-CN |
下面的流程图说明了从cucumber到底层驱动如何实现,capybara在整个流程里面充当是中间价的作用。
安装
1 | gem install cucumber |
如果你使用的是 bundler,只是需要添加以下代码到Gemfile:
1 | group :test do |
初始化features目录:
1 | cucumber --init |
查看完帮助列表:
1 | cucumber --help |
运行所有features:
1 | cucumber |
Cucumber-Rails
如果你使用capybara 来测试rails应用,你应该安装cucumber-rails gem 而不是标准的rails gem。
这个gem需要capybara和cucumber作为依赖。
所以当你安装cucumber-rails gem时,会自动安装这些依赖,我们只需要运行以下命令
1 | gem install cucumber-rails |
如果你使用bundle,只需要将以下代码添加进gemfile:
1 | group :test, :development do |
然后运行
1 | bundle install |
运行生成器帮助我们生成目录
1 | rails generate cucumber:install |
最新内容请见作者的GitHub页:http://qaseven.github.io/