2008-12-19

4.seleniumを使ってみよう その②

短期集中seleniumシリーズの第5回目です。
この章では前回に引き続き、実際にseleniumを使ってみます。

4.4seleniumIDEの検索ボタン

seleniumIDEでテストコードを書くと、先に述べたとおり、複雑なxpathでlocatorの指定をされがちです。

そこで、自分なりに適宜書き換えることをおすすめします。
ですが、そのときに、間違ったlocatorを書いてしまいますと、実際にテストを実行したときに「ElementLocator Not Found」と表示され、テストが失敗してします。

間違ったlocator名を指定しないために利用するといいのが、seleniumIDEの「検索」ボタンです。

フォーマットをHTMLにし、「テーブル」タブを選択します。
その後、locatorが表示されているはずのページがブラウザ上で開かれていることを確認します。
seleniumIDEの「対象」フォームに確かめたいlocator名を入力し、「検索」ボタンを押します。図4.参照。




図4.SeleniumIDEの検索ボタン



もしも、指定したlocator名が間違っていて存在しない場合には図4のように、赤文字でエラーがでます。
逆に、指定したlocator名が正しくて存在している場合には、ブラウザ上で、指定したlocatorが緑色に点滅します。

テストを実行し、失敗してしまって「ElementLocator Not Found」という表示が出てしまった場合、このようにしてlocator名が間違っていないか、WebページのHTMLソースと比較しながら確認してみてください。

4.5assertとverify

seleniumのAssertionコマンドに、assertとverifyの二種類の検証コマンドがあります。
コマンド名はassert~かverify~で始まります。二つのコマンドの違いは、assertの場合は検証がうまく行われなかったの際にテストを中止するのに対して、verifyの場合はテストをそのまま続行することです。
しかし、javaでverifyコマンドを利用しようとすると「そんなコマンドはない」と怒られてしまうので使えないようです。
verifyコマンドが使えないので、一つのメソッドにあれやこれやとテストを詰め込むのは効率的ではありません。


例えば、下に示す項目をテストしたいとします。

  • 正しいユーザアカウントと正しいパスワードでログインしようとした場合・・・①
  • 正しいユーザアカウントと間違ったパスワードでログインしようとした場合・・・②
  • 間違ったユーザアカウントと正しいパスワードでログインしようとした場合・・・③
  • 間違ったユーザアカウントと間違ったパスワードでログインしようとした場合・・・④

このような場合、下の図5のようにテスト項目を書くことは賢明ではありません。

というのも、下の図5で、テスト項目の①のテスト2のassertが失敗してしまった場合、test01というテストメソッドから抜けてしまいますので、その他の②~④のテストは実行されません。図6のようにテストメソッドを増やせば、テスト2で失敗しても、次のメソッドへ飛んで、②のテストから先のテストも実行してくれます。
























テストメソッドは闇雲にわけるのではなく、ある程度意味を持つ項目ごとに分けるとデバッグしやすいです。

0 件のコメント:

コメントを投稿