WAFに依存しない形でCapybaraを導入してE2Eテストを書けるようになるところまでの導入です。テストの実行自体はRSpecを使います。
$ mkdir capybara-test
$ cd capybara-test
適当にGemfileを作ってbundle installで入れます
# Gemfile
source "http://rubygems.org"
gem "rspec"
gem "capybara"
gem "capybara-webkit"
今回はcapybaraのドライバーはcapybara-webkitを使用しています。
※capybaraのドライバについては下記リンクが詳しいです。
http://qiita.com/take/items/779747e0981355e569ad
$ bundle install
ここでqtがないからインストールできない的なエラーが出るかもしれません。上記リンクに記述がある通りcapybara-webkitがqtに依存しているからです。
その場合は下記リンクより自分の環境に合わせた解決策を実行してみてください。(私の場合はmacだったので、brew install qtでできました)
https://github.com/thoughtbot/capybara-webkit/wiki/Installing-Qt-and-compiling-capybara-webkit
インストールできたら、次にrspec initでspecディレクトリとspec_helper.rbを作ります。
$ bundle exec rspec --init
capybaraを使うためspec_helperに次の記述を追加します。
# spec_helper.rb
require 'capybara'
require 'capybara-webkit'
# ここは各自合わせて下さい
Capybara.app_host = 'url'
Capybara.javascript_driver = :webkit
RSpec.configure do |config|
…
config.include Capybara::DSL
end
ここまでできたらあとはspecファイルをsepcディレクトリ内に作っていってテストを実行していきます。
# spec/login_spec.rb
require 'spec_helper'
describe 'login' do
it do
visit 'http://test.com/login'
fill_in 'login', :with => 'test_user'
fill_in 'password', :with => 'password'
click_button 'Login'
expect(page).to have_content('Logged in as')
end
end
詳しい書き方はREADMEを見て下さい。
https://github.com/jnicklas/capybara
あとはアサーションを書いてキャプチャを撮ったりも簡単にできるのでどんどん書いて実行していってみてください。