サイトマップ

AntDriver - AntでWebをテストする

XmlDriver - WebDriverをXMLから呼び出す』でXMLからWebDriverを呼び出して使う方法は、そんなに捨てたもんじゃないということがわかりました。しかしテストの自動化のためにはもっとやることはたくさんあります。そういうときはAntと組み合わせるのが常道なんでしょうが、結局JUnitなどで書いたテストケースをAntのタスクとして呼び出すだけになっては面白くありません。

そこで、Antから直接WebDriverを実行してみようというのが、この試みです。調べてみると、Antに独自タスクを追加することはさほど難しい話ではないようです。だったらWebDriverを呼び出す独自タスクを定義して使えるようにすれば素敵なことができそうです。そこでまず、どういう仕様にすべきかを考えます。

タスクの種別

AntDriverで追加するタスクには以下の種類があります。

 
ブラウザ操作系タスク
driver, screenshot, quit
 
検証系タスク
element, text, title
 
アクション系タスク
click, frame, navigate, script, sendkeys, submit, window
 
タスク補助系タスク
loop, thread, reporter

ロケータ

各タスクの説明の前に、ロケータについて説明します。Selenium/WebDriverには、要素を見つける手段は複数用意されています。ここではSeleniumの伝統に従い、すべてをひっくるめてロケータと呼ぶことにします。ロケータはそれを必要とするタスクの属性として指定します。指定可能なロケータ属性は以下の種類があります。

 
classname
HTML要素のclass属性を指定します。
 
id
HTML要素のid属性を指定します。
 
linktext
HTMLのA要素内のテキストを指定します。
 
name
HTML要素のname属性を指定します。
 
tagname
HTML要素のタグ名を指定します。
 
xpath
XPath式によって要素を指定します。

これらのロケータは、複数指定された場合は記述された順に評価されていき、最初に対象の要素が見つかった時点で探索を終了し、各タスクに渡されます。

driverタスク

説明

ブラウザを起動します。driverは通常スレッドに1つだけ割り当てられるため、Antのメインスレッド内では一度呼び出すだけで、後続のタスクではそれが利用されます。つまり、同じスレッド内で複数の異なるブラウザ名を指定しても、2番目以降の指定は無効となります。複数のブラウザを利用する場合は、threadタスク内でdriverタスクを呼び出すことで行います。

属性

 
capabilities
使用するブラウザの設定を指定します。指定可能な値はブラウザによります。
 
description
このタスクの説明を記述します。
 
name
使用するブラウザを指定します。指定可能な値は'ie','firefox','htmlunit'のいずれかとなります。
 
onerror
'ignore', 'fail'のいずれかを指定します。'ignore'が指定された場合は、失敗してもメッセージを出力するだけで後続のタスクを継続します。'fail'を指定した場合は、失敗するとAntの実行を中止します。デフォルトは'fail'です。 この値はこのドライバーを使用するすべての子タスクのonerror属性のデフォルト値となります。
 
timeout
正の整数値を秒単位で、指定した要素が見つかるまでの待機時間を指定します。デフォルト値は'10'です。この値はこのドライバーを使用するすべての子タスクのtimeout属性のデフォルト値となります。
 
verbose
'true'または'false'を指定します。デフォルト値は'true'です。'true'の場合は冗長なメッセージを出力します。この値はこのドライバーを使用するすべての子タスクのverbose属性のデフォルト値となります。
 
version
使用するブラウザのバージョンを指定します。指定可能な値はブラウザにより、指定したバージョンが実行環境にない場合は・・・

子要素

なし

elementタスク

説明

検証系のタスクです。指定した要素が存在するかどうかを調べます。

属性

 
description
このタスクの説明を記述します。
 
displayed
'true'または'false'を指定します。'true'を指定するとこの要素が表示されていることを、'false'を指定すると表示されていないことを検証します。
 
enabled
'true'または'false'を指定します。'true'を指定するとこの要素が有効かどうか、'false'を指定すると無効かどうかを検証します。
 
id, name, linktext, classname, tagname, xpath
ロケータを指定します。いずれかの指定が必須です。
 
onerror
'ignore', 'fail'のいずれかを指定します。'ignore'が指定された場合は、失敗してもメッセージを出力するだけで後続のタスクを継続します。'fail'を指定した場合は、失敗するとAntの実行を中止します。デフォルトは'fail'です。
 
present
'false'を指定すると、指定の要素が「存在しない」ことを確認します。その場合、timeoutの時間だけ待たされることになるため、明らかにすべてのデータが読み込まれている状態である場合はtimeout=“0”と同時に指定すべきです。
 
selected
'true'または'false'を指定します。'true'を指定するとこの要素が選択されていることを、'false'を指定すると選択されていないことを検証します。
 
timeout
正の整数値を秒単位で、指定した要素が見つかるまでの待機時間を指定します。明示的に指定されない場合はdriverタスクのtimeout属性の値が使用されます。
 
verbose
'true'または'false'を指定します。'true'の場合は冗長なメッセージを出力します。明示的に指定されない場合はdriverタスクのverbose属性の値が使用されます。

子要素

 
click
このタスクに指定されたロケータで見つかった要素のすべてに対して、clickタスクを実行します。
 
element
このタスクに指定されたロケータで見つかった要素のすべてに対して、elementタスクを実行します。
 
navigate
このタスクに指定されたロケータで見つかった要素のすべてに対して、navigateタスクを実行します。
 
select
このタスクに指定されたロケータで見つかった要素のすべてに対して、selectタスクを実行します。
 
submit
このタスクに指定されたロケータで見つかった要素のすべてに対して、submitタスクを実行します。
 
sendkeys
このタスクに指定されたロケータで見つかった要素のすべてに対して、sendkeysタスクを実行します。
 
text
このタスクに指定されたロケータで見つかった要素のすべてに対して、textタスクを実行します。

textタスク

説明

検証系のタスクです。指定した要素がテキストを含むかどうかを検証します。

属性

 
description
このタスクの説明を記述します。
 
id, name, linktext, classname, tagname, xpath
テキストを含む要素のロケータ指定します。どれも指定されない場合は、HTMLのbody要素内のすべてのテキストが対象となります。
 
match
検索対象のテキストを指定します。
 
onerror
'ignore', 'fail'のいずれかを指定します。'ignore'が指定された場合は、失敗してもメッセージを出力するだけで後続のタスクを継続します。'fail'を指定した場合は、失敗するとAntの実行を中止します。デフォルトは'fail'です。
 
present
'false'を指定すると、指定のテキストが「存在しない」ことを確認します。その場合、timeoutの時間だけ待たされることになるため、明らかにすべてのデータが読み込まれている状態である場合はtimeout=“0”と同時に指定すべきです。
 
timeout
正の整数値を秒単位で、指定した要素が見つかるまでの待機時間を指定します。明示的に指定されない場合はdriverタスクのtimeout属性の値が使用されます。
 
verbose
'true'または'false'を指定します。'true'の場合は冗長なメッセージを出力します。明示的に指定されない場合はdriverタスクのverbose属性の値が使用されます。

子要素

なし。

titleタスク

説明

検証系のタスクです。ドキュメントのタイトルがテキストを含むかどうかを検証します。

属性

 
description
このタスクの説明を記述します。
 
match
検索対象のテキストを指定します。
 
onerror
'ignore', 'fail'のいずれかを指定します。'ignore'が指定された場合は、失敗してもメッセージを出力するだけで後続のタスクを継続します。'fail'を指定した場合は、失敗するとAntの実行を中止します。デフォルトは'fail'です。
 
present
'false'を指定すると、指定のテキストが「存在しない」ことを確認します。その場合、timeoutの時間だけ待たされることになるため、明らかにすべてのデータが読み込まれている状態である場合はtimeout=“0”と同時に指定すべきです。
 
timeout
正の整数値を秒単位で、指定した要素が見つかるまでの待機時間を指定します。明示的に指定されない場合はdriverタスクのtimeout属性の値が使用されます。
 
verbose
'true'または'false'を指定します。'true'の場合は冗長なメッセージを出力します。明示的に指定されない場合はdriverタスクのverbose属性の値が使用されます。

clickタスク

説明

アクション系のタスクです。ロケータで指定した要素をクリックします。

属性

 
description
このタスクの説明を記述します。
 
id, name, linktext, classname, tagname, xpath
ロケータを指定します。いずれかの指定が必須です。
 
onerror
'ignore', 'fail'のいずれかを指定します。'ignore'が指定された場合は、失敗してもメッセージを出力するだけで後続のタスクを継続します。'fail'を指定した場合は、失敗するとAntの実行を中止します。デフォルトは'fail'です。
 
timeout
正の整数値を秒単位で、指定した要素が見つかるまでの待機時間を指定します。明示的に指定されない場合はdriverタスクのtimeout属性の値が使用されます。
 
verbose
'true'または'false'を指定します。'true'の場合は冗長なメッセージを出力します。明示的に指定されない場合はdriverタスクのverbose属性の値が使用されます。

子要素

なし。

submitタスク

説明

アクション系のタスクです。ロケータで指定した要素をsubmitします。

属性

 
description
このタスクの説明を記述します。
 
id, name, linktext, classname, tagname, xpath
ロケータを指定します。いずれかの指定が必須です。
 
onerror
'ignore', 'fail'のいずれかを指定します。'ignore'が指定された場合は、失敗してもメッセージを出力するだけで後続のタスクを継続します。'fail'を指定した場合は、失敗するとAntの実行を中止します。デフォルトは'fail'です。
 
timeout
正の整数値を秒単位で、指定した要素が見つかるまでの待機時間を指定します。明示的に指定されない場合はdriverタスクのtimeout属性の値が使用されます。
 
verbose
'true'または'false'を指定します。'true'の場合は冗長なメッセージを出力します。明示的に指定されない場合はdriverタスクのverbose属性の値が使用されます。

子要素

なし。

scriptタスク

説明

アクション系のタスクです。指定したJavaScriptをブラウザで実行します。

属性

 
description
このタスクの説明を記述します。
 
onerror
'ignore', 'fail'のいずれかを指定します。'ignore'が指定された場合は、失敗してもメッセージを出力するだけで後続のタスクを継続します。'fail'を指定した場合は、失敗するとAntの実行を中止します。デフォルトは'fail'です。
 
timeout
正の整数値を秒単位で、指定した要素が見つかるまでの待機時間を指定します。明示的に指定されない場合はdriverタスクのtimeout属性の値が使用されます。
 
value
ここで指定した値がJavaScriptのreturnで戻される値と一致するかどうかを調べます。より複雑な条件、たとえば数値の大小などを指定したい場合は、JavaScript側で検証を行い、true/falseで返すようにすることで対応可能です。
 
verbose
'true'または'false'を指定します。'true'の場合は冗長なメッセージを出力します。明示的に指定されない場合はdriverタスクのverbose属性の値が使用されます。

子要素

 
テキスト
実行するスクリプト。

selectタスク

説明

アクション系のタスクです。指定したselect要素のプルダウン項目を選択します。

属性

 
id, name, linktext, classname, tagname, xpath
ロケータを指定します。いずれかの指定が必須です。
 
text
プルダウンの選択するoptionをテキストで指定します。text、valueのいずれかが必須です。
 
onerror
'ignore', 'fail'のいずれかを指定します。'ignore'が指定された場合は、失敗してもメッセージを出力するだけで後続のタスクを継続します。'fail'を指定した場合は、失敗するとAntの実行を中止します。デフォルトは'fail'です。
 
timeout
正の整数値を秒単位で、指定した要素が見つかるまでの待機時間を指定します。明示的に指定されない場合はdriverタスクのtimeout属性の値が使用されます。
 
value
プルダウンの選択するoptionの値を指定します。
 
verbose
'true'または'false'を指定します。'true'の場合は冗長なメッセージを出力します。明示的に指定されない場合はdriverタスクのverbose属性の値が使用されます。

sendkeysタスク

説明

アクション系タスクです。指定した要素に対してテキストを入力します。

属性

 
description
このタスクの説明を記述します。
 
id, name, linktext, classname, tagname, xpath
ロケータを指定します。いずれかの指定が必須です。
 
onerror
'ignore', 'fail'のいずれかを指定します。'ignore'が指定された場合は、失敗してもメッセージを出力するだけで後続のタスクを継続します。'fail'を指定した場合は、失敗するとAntの実行を中止します。デフォルトは'fail'です。
 
text
入力するテキストを指定します。
 
timeout
正の整数値を秒単位で、指定した要素が見つかるまでの待機時間を指定します。明示的に指定されない場合はdriverタスクのtimeout属性の値が使用されます。
 
verbose
'true'または'false'を指定します。'true'の場合は冗長なメッセージを出力します。明示的に指定されない場合はdriverタスクのverbose属性の値が使用されます。

子要素

 
テキスト
入力するテキストを指定します。text属性と両方指定された場合は、text属性の値にこちらの内容が追加されます。改行や'<','>','&'などのXML特殊文字を含む場合は、ここで<![CDATA[ .. ]]>内に記述することができます。

navigateタスク

説明

アクション系タスク。URLを指定してページを読み込んだり、履歴の移動や表示中のページの再読み込みを行います。

属性

 
action
'back','forward','refresh'のいずれかを指定します。'action'属性か'to'属性のいずれかが必須です。
 
description
このタスクの説明を記述します。
 
onerror
'ignore', 'fail'のいずれかを指定します。'ignore'が指定された場合は、失敗してもメッセージを出力するだけで後続のタスクを継続します。'fail'を指定した場合は、失敗するとAntの実行を中止します。デフォルトは'fail'です。
 
timeout
正の整数値を秒単位で、指定した要素が見つかるまでの待機時間を指定します。明示的に指定されない場合はdriverタスクのtimeout属性の値が使用されます。
 
to
指定したURLをブラウザで開きます。
 
verbose
'true'または'false'を指定します。'true'の場合は冗長なメッセージを出力します。明示的に指定されない場合はdriverタスクのverbose属性の値が使用されます。

子要素

なし。

windowタスク

説明

ブラウザが開いたウインドウに制御を移し、子要素に指定された各タスクを実行します。

属性

 
description
このタスクの説明を記述します。
 
name
ウインドウの名前を指定します。
 
onerror
'ignore', 'fail'のいずれかを指定します。'ignore'が指定された場合は、失敗してもメッセージを出力するだけで後続のタスクを継続します。'fail'を指定した場合は、失敗するとAntの実行を中止します。デフォルトは'fail'です。
 
timeout
正の整数値を秒単位で、指定した要素が見つかるまでの待機時間を指定します。明示的に指定されない場合はdriverタスクのtimeout属性の値が使用されます。
 
verbose
'true'または'false'を指定します。'true'の場合は冗長なメッセージを出力します。明示的に指定されない場合はdriverタスクのverbose属性の値が使用されます。

子要素

click, element, frame, navigate, script, screenshot, select, sendkeys, submit, text, title, window

frameタスク

ドキュメント内のフレームに制御を移し、子要素に指定された各タスクを実行します。

属性

 
description
このタスクの説明を記述します。
 
name
フレームの名前を指定します。
 
onerror
'ignore', 'fail'のいずれかを指定します。'ignore'が指定された場合は、失敗してもメッセージを出力するだけで後続のタスクを継続します。'fail'を指定した場合は、失敗するとAntの実行を中止します。デフォルトは'fail'です。
 
timeout
正の整数値を秒単位で、指定した要素が見つかるまでの待機時間を指定します。明示的に指定されない場合はdriverタスクのtimeout属性の値が使用されます。
 
verbose
'true'または'false'を指定します。'true'の場合は冗長なメッセージを出力します。明示的に指定されない場合はdriverタスクのverbose属性の値が使用されます。

子要素

click, element, frame, navigate, script, screenshot, select, sendkeys, submit, text, title, window

screenshotタスク

説明

現在ブラウザに表示されている内容をPNG形式のファイルに保存します。

属性

 
file
保存ファイル名

子要素

なし。

reporterタスク

説明

reporterタスクは2つの役割があります。

  1. targetとprojectの完了毎に統計情報をコンソールに出力する。
  2. テスト結果のレポートを生成する。

これらの出力は、このタスクが呼び出された時点からのものとなりますので、プロジェクトの最初の方で1回だけ呼び出しておくという使い方をします。

属性

 
file
レポートの出力先ファイル名。

子要素

なし。

loopタスク

説明

負荷テスト用に、同じ処理を指定回数繰り返すタスクです。

属性

 
count
繰り返し回数を正の整数値で指定します。

子要素

すべてのタスク。

threadタスク

説明

負荷テスト用に、同じ処理を指定の数だけ並行して実行するタスクです。

属性

 
count
並列数を正の整数値で指定します。デフォルト値は'1'となります。並列処理をしたいわけではなく、ブラウザを切り替えたい場合に'1'を指定し、子要素でdriverタスクを実行するとこのタスク内だけで使用されるdriverを利用できます。
 
increment
正の整数値が指定された場合、countの値に達するまでその数だけ徐々に並列処理数を増やしていきます。つまり、count=“10” increment=“1”を指定すると、10回のループで、それぞれ1+2+3+4+5+6+7+8+9+10=55回分の処理が行われることになります。テスト対象のアプリケーションがどの程度の並列処理に耐えうるかを検証するために使われます。

子要素

すべてのタスク。

関連記事

 
research/1333937374.txt · 最終更新: 2012/04/16 14:07 by Kazuyuki Matsuda
特に明示されていない限り、本サイトの内容は次のライセンスに従います:Copyright(C) 2011 Shorindo, Inc. All Rights Reserved
Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki