Seleniumでif文が使える「flow control」アドオンが超便利!

Selenium IDE等でテストケースを作る際に、以下のようなシチュエーションに遭遇したことはないでしょうか?

flow-control-addon-site-flow.png

  • 商品購入ボタンを押すと、ログイン中の場合はそのまま配送選択ページに遷移する。
  • ログアウト時はログイン画面に遷移するので、アカウント情報を入力。

flow-control-addon-logo.pngこれってモロに条件分岐なんですよ。
しかしSeleniumのみでこれを行うのは意外と至難の業なのです。

そこで登場するのが今回ご紹介するSeleniumの機能拡張アドオン「flowControl」。

flowControl導入で使えるようになるコマンド一覧

アドオンをインストールすると、次のようなコマンドが使えるようになります。

コマンド 対象 解説
gotolabel ラベル名   ラベル名にジャンプする
label ラベル名   ラベル付けする
gotoIf 条件文 ラベル名 条件文を満たすとラベル名にジャンプする
while 条件文   条件を満たす間、endWhileまでを実行する
endWhile     whileスコープの終端

flowControlを活用した条件分岐テストケース

では、flowControlで拡張されたコマンドを使って最初のケースを実行してみましょう。

flow-control-addon-site-flow.png

配送選択ページのURLは「…/deliver.php」と仮定しています。

step コマンド 対象
1 clickAndWait id=buy  
2 getEval win = this.page().getCurrentWindow();  
3 gotoIf win.location.href.match(/deliver.php/) logged_in
4 type name=login_email testuser@example.com
5 type name=login_password ******
6 clickAndWait id=login  
7 label logged_in  
8 clickAndWait id=next  
  1. 購入ボタンをクリック
  2. テスト中のウィンドウを取得
  3. 遷移先が配送先選択ページだったら「logged_in」ラベルまでジャンプ
  4. メールアドレスを入力
  5. パスワードを入力
  6. ログインボタンをクリック
  7. logged_inラベル
  8. 次へボタンをクリック

これでテストケースの柔軟性が飛躍的に高まること間違いなしです。
「flowControl」アドオンはSelenium 0.6以上で利用可能です。

このページをシェアする

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

2013-04-04