Watirで自動テストを書いてみた

More than 3 years have passed since last update.


はじめに


  • 私最近、SeleniumWebDriver+capybara+cucumberでテストをゴリゴリ書いています

  • しかし今や骨董品なのかもしれないWatirを使って自動テストを書いてみようと思ったので、導入手順 / テスト作成 / 実行方法のメモを残してみた

  • 正直Seleniumとできることは似ていると思ったが、手軽さはなんとなくこっちかな


  • ここにも書いてあるが確かに5分でテストが書ける!

  • JavascriptベースのSeleniumとなら、いくつか使うメリットがあるかもしれない


    • 例えば、セキュリティ上の都合でJavascriptでは難しい操作が可能など

    • 比較されている記事があった



  • しかし、Selenium 2.0(Selenium WebDriver)があるので、あえてWatirを使う人は少ないだろうと感じた

  • 検証環境は以下の通り


    • OS: Windows7

    • Ruby: 1.9.3

    • gem: watir 4.0.2, mini_magick 3.5.0




Watirとは


  • Watirは自動的にブラウザを操作してテストを行うためのツール



  • ダウンロード数(2013/06/06時点)



  • 最終更新日時


    • 2012/10/31 (Version 4.0.2)



  • 「Web Application Testing in Ruby」の頭字語で「ウォーター(water)」と読む

  • サポートされているブラウザ


    • Internet Explorer

    • Firefox

    • Chrome

    • Safari

    • Opera




Watirのインストール


  • gemインストール



    • gem install watir (selenium-webdriverもインストールされる)


    • gem install mini_magick (依存パッケージ:インストールされていなければ入れる必要あり)




Watirを使ってできるブラウザ操作


テスト作成


  • Rubyとググってみるテストを作成


watir_test.rb

require "watir"

browser = Watir::Browser.new :ie
browser.goto('https://www.google.co.jp') # https://www.google.co.jpにアクセスする
browser.text_field(:name, 'q').set('Ruby') # googleの検索ボックスにRubyと入力する
browser.button(:name, 'btnG').click # btnGというname属性を持つボタンを押す
sleep 5
browser.close # ブラウザを閉じる




  • ここによるとブラウザ操作で自動記録してくれるツールがあると書いてあった


    • Selenium IDE的な感じの代物でしょう

    • ただ、これがなければ書けないレベルではないので今回は無視




テスト実行


  • rubyコマンドで実行するだけ


    • ruby watir_test.rb



  • ブラウザが立ち上がってRubyとググってくれる


その他


  • もちろんcucumberを導入しても実行可能



参考文献


~ただの宣伝~


  • 全国のSeleniumer必読

  • Seleniumerといっていますが、Selenium, SauceLabs, Travis, Jenkinsに関するノウハウ書いているのでよかったら参考にしてみてください