Selenium/Selenium on Rails http://www.ark-web.jp/sandbox/wiki/3377.html

FrontPage

[edit]

official

http://seleniumhq.org/projects/on-rails/

[edit]

概要

[edit]

install

基本は上記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

[edit]

テストケース

Seleneseは .sel RSeleneseは .rselの拡張子で test/selenium/ 配下に記述するとファイル名をテストケース名として自動で読み込んでくれる。
後はブラウザから example.com/selenium/ のようにしてアクセスする。
Selenese,RSeleneseともにロケータはDOM,XPath,id又はnameで記述できる。

[edit]

Selenese

パイプ区切りでseleniumのコマンドを記述していく。
wikiのテーブル記法に似ているが数を合わせる必要はない。

|open|/|
|type|//input[@id='text1']|abc|
|click|//button[@id='button1']|
|waitForPageToLoad|30000|
[edit]

RSelenese

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 }
[edit]

再利用

ファイル名の先頭にアンダースコアを付けるとテストケースとしては認識されず、再利用可能な状態になる。

|pause|5000|
|waitForPageToLoad|30000|

などを_pause.sel、_wait.selとして保存しておき、必要になったら、

|includePartial|pause|   (Selenese)
include_partial "wait"    (RSelenese)

として呼び出せる。

[edit]

テストスイート

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/, '/')を加えた所、ディレクトリ単位でのテストスイートが動作するようになった。

[edit]

状況

機能調査中

投稿者斉藤 | パーマリンク

| append.gif

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2009-02-09 (月) 18:49:33 (4607d)

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