[[FrontPage]]
 
 #contents
 
 ** official [#r6be618d]
 http://seleniumhq.org/projects/on-rails/
 
 ** 概要 [#p28c4a6d]
 - テストケースをrubyで書ける(RSelenese)
 - テストケースをwikiのテーブル記法で書ける(Selenese)
 - 共通部分(indexを開く、ログインする等)を分けてincludePartialで再利用できる
 - 複数の処理をrubyのeachを使って大量に生成できる(Rselenese, ex. (1..10).each {|c| RSelenese構文 })
 - ただし、ページの状態からif文を使って条件分岐などはできないため、waitForConditionなどでJSを記述する必要あり
 - railsのfixtureと組み合わせてテストできる
 - テストケースをディレクトリでわけておくと、そのディレクトリ単位でテストスイートになる
 - Selenium on Railsはただテーブルを生成するだけなので、表示されたページを保存しておけばSeleniumIDEなどから読み込むことができる
 - テスト対象のページがrailsで作成されたものである必要は無い(fixtureを使う場合は同等の機能を作る必要あり(DBのダンプをロードするphpを作成しておき、テスト前にそのページをopenするなど))
 
 ** install [#qb3f9fba]
 基本は上記urlに書いてある通りだが、まだrails2.2に対応していないため、rails2.2で使うためにはパッチを当てたgitリポジトリから
 インストールする必要がある。
  インストール例
  script/plugin install git://github.com/paytonrules/selenium-on-rails.git
 
 上記リポジトリのurl
 http://github.com/paytonrules/selenium-on-rails/tree/master
 
 officialのフォーラム
 http://clearspace.openqa.org/message/53575
 
 ** テストケース [#kafe85f1]
 Seleneseは .sel RSeleneseは .rselの拡張子で test/selenium/ 配下に記述するとファイル名をテストケース名として自動で読み込んでくれる。
 後はブラウザから example.com/selenium/ のようにしてアクセスする。
 Selenese,RSeleneseともにロケータはDOM,XPath,id又はnameで記述できる。
 
 *** Selenese [#j3f9ddbc]
 パイプ区切りでseleniumのコマンドを記述していく。
 wikiのテーブル記法に似ているが数を合わせる必要はない。
  |open|/|
  |type|//input[@id='text1']|abc|
  |click|//button[@id='button1']|
  |waitForPageToLoad|30000|
 
 *** RSelenese [#b35de468]
 Rubyで書く。
 seleniumのコマンドがそのままメソッド名になっている(命名規則は小文字アルファベットとアンダースコアの組み合わせ)
  open "/"
  type "//input[@id='text1']" "abc"
  click "//button[@id='button1']"
  wait_for_page_to_load "30000"
 
 eachの例
  (1..10).each { |index| type "//input[@class='text[" + index.to_s + "]'" index }
 
 *** 再利用 [#t4facae1]
 ファイル名の先頭にアンダースコアを付けるとテストケースとしては認識されず、再利用可能な状態になる。
  |pause|5000|
  |waitForPageToLoad|30000|
 などを_pause.sel、_wait.selとして保存しておき、必要になったら、
  |includePartial|pause|   (Selenese)
  include_partial "wait"    (RSelenese)
 として呼び出せる。
 
 ** テストスイート [#a65def0e]
 test/selenium/ 配下にディレクトリを作ってそのディレクトリ配下にテストケースを記述すると、ディレクトリ名がテストスイート名になる。
 example.com/selenium/ の左上のフレームのドロップダウンリストから特定のテストスイートを選んでその中のテストケースだけを実行することが可能。
 
 webrickでは動いていたが、開発環境上のApache+fcgiではテストスイートやテストケースは認識するものの、実際にアクセスするとNot Foundと表示されてしまう。
 URLを見てみると、example.com/selenium/tests/1779%2F1779_00.sel のように / が %2Fになっている。
 これを / に変更してアクセスすると正常に表示されるので、リンクを作成しているlink_toの呼び出し元である vendor/plugins/selenium-on-rails/lib/views/test_suite.rhtml の24行目を修正して、gsub(/%2F/, '/')を加えた所、ディレクトリ単位でのテストスイートが動作するようになった。
 
 ** 状況 [#za6196c1]
 機能調査中
 
 #blikifooter(斉藤)

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS

アークウェブのサービスやソリューションはこちら