GUIを操作してテストを行う場合、大きく
- 画面の操作
- 期待値と実際の値との比較
の2つを行うことになります。
前回の記事で画面の操作を記録して再生する方法については説明したので、今回は「どうやって期待値と実際の値とを比較するか」の説明をします。
前回の記事はこちら。
アサーションを使って比較を行う
Selenium IDEで値(や状態など、あるべき姿と実際と)の比較を行うには、assertを使います。
アサーションとは、
プログラミング言語などの仕様・機能の一つで、プログラムの前提として満たされるべき条件を記述し、実行時にそれが満たされていない場合にエラーや例外を発生させたり、メッセージを表示して処理を中断したりする機能をアサーションチェックあるいは略してアサーションという。 via アサーション(アサート)とは - IT用語辞典 e-Words
IT関係ではなくコミュニケーションスキルの文脈でも「アサーション」というのがあるようですが、それとは別です。
記録した操作にアサーションを追加する
Selenium IDE上では、記録した操作の途中、値の比較を行いたいところの次の行で右クリックをすると、Insert new commandで行の追加ができます。
追加できたら、Commandのところからassert ****
を選びます。ここで選べる種類はたくさんあるので、それぞれのassertの意味やできることは公式のドキュメントを確認しましょう。
https://www.seleniumhq.org/selenium-ide/docs/en/api/commands/
ここでは試しにassert text
を使うことにします。
次にTargetの右にある、四角に矢印が重なっているアイコンをクリックして、テストしたい箇所を選択してみましょう。
すると、Selenium IDEのTargetの欄に、今選択した要素を特定するための値が入ります。
最後に、Valueのところに期待値を入れます。今回はわざと失敗させるために、最後の一文字を削って「Selenium+JUnit4+ApachePOIでデータ駆動テス」にしておきましょう。
これで、テストを実行してみると・・・。 (※実際には別のポイントで何度か失敗したので、このタイミングでコード修正しました)
無事、想定どおりに失敗しました。
Valueのところを正しく直して再度実行すると、こんどはPassとなりました。
操作記録時にアサーションも追加する
記録した操作にいちいちアサーションを挿入していくのは面倒なので、記録時についでに入れてしまいたい。そんなときには、操作記録中に比較したい箇所を選んで右クリック→Selenium IDE→Assert Text/Assert Titleを選択です。