Selenium IDE: Gosub Control: サブルーチン化のコツ

BASIC言語に倣って、サブルーチンではない部分をグローバル部と呼ぶことにします。

(1) サブルーチンは後半にまとめて記述する。
グローバル部とサブルーチンが交互に現れると、グローバル部が途切れ途切れになってしまい、読む人にとって見通しが悪くなるように思います。

推奨例

gosub myfunc1
verifyText ...
gosub myfunc2
verifyText ...
#
sub myfunc1
endsub
#
sub myfunc2
endsub

推奨しない例

gosub myfunc1
verifyText ...
#
sub myfunc1
endsub
#
gosub myfunc2
verifyText ...
#
sub myfunc2
endsub

(2) サブルーチン内でverifyをしない。

Selenium IDEでテストケースを実行すると、verifyの失敗箇所が赤く表示されて、どこで失敗したのか一目瞭然です。

ところがサブルーチン内でverifyしていて2回gosubで呼んでいる場合、表示されているのは2回目の実行結果です。1回目の実行結果を知るには、ログを見る必要があります。

そこでサブルーチン内では調べたい値をverifyせずにstoreして、グローバル部に戻ってからverifyするようにしましょう。1回目、2回目、どちらの実行結果もグローバル部に赤・緑が残ります。

推奨例

gosub new_post
gosub get_post_count
verifyExpression ${POST_COUNT} 1
#
gosub new_post
gosub get_post_count
verifyExpression ${POST_COUNT} 2
#
sub new_post
~記事を新規投稿する~
endsub
#
sub get_post_count
storeText id=post_count POST_COUNT
endsub

推奨しない例

gosub new_post
store 1 EXPECTED_POST_COUNT
gosub verify_post_count_equals_to
#
gosub new_post
store 2 EXPECTED_POST_COUNT
gosub verify_post_count_equals_to
#
sub new_post
~記事を新規投稿する~
endsub
#
sub verify_post_count_equals_to
verifyText id=post_count ${EXPECTED_POST_COUNT}
endsub