skillup

技術ブログ

Java

Seleniumでの画面テスト

投稿日:

普段テストはJunitで単体テストを書いていますが、画面からのテストなどは当然チェックできません。

フレームワークだとどうしても内部構造がわからず画面から直接うごかして確認しなくてはいけないようなケースも出てきます。

目視とはいえ、テストデータの取込→入力ぐらいは自動化できているとやはり便利です。

このような画面からのテストの場合、Seleniumを使うことが一般的だと思います。

Firefoxを立ち上げて動かすパターンでもよいですが(SeleniumIDE)、Javaのテストコードから起動して、値をソースから取込、ブラウザを稼働させることができます。

Seleniumのインストール

pom.xmlに下記のように依存関係を定義すればOKです。

注意点としてはバージョンにより結構不安定になるようで、ブラウザのバージョンアップなどには気を付ける必要があるようです。

現状の環境はFirefox38.0.5です。

テストコード

通常のテストコードとJunitを使って同じように記述して構いません。

下記が実際のサンプルです。

@Before,@Afterなどは通常通り使えます。

あとは画面のテキスト文字列を取得するメソッドなどもありますが、おいおい紹介していこうと思います。

また私は画面側をJSFで実装していますが、JSFで注意する点としてはinputのid=”hogehoge”などと設定しても画面に出力されるときは親の要素と結合してでてきます。

<form id=”foo”>
<input id=”hogehoge” ・・・・
</form>

のような場合、画面でみるとinputのidは”foo:hogehoge”になっています。

親要素のidがない場合、jsfが自動ではくidになります。

ちなみに下記リンクを参考にしました。

http://d.hatena.ne.jp/suzukij/20110828/1314549996

 

-Java
-

執筆者:


comment

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

関連記事

no image

JavaEEとは?

JavaEEのブログといいつつ、JavaEEについて全然書いていませんでした・・・ ちょっとJavaEEについて書かせていただきます。 Contents1 そもそもJavaとは?1.1 Javaの定義 …

no image

CSVの入出力に関して

業務でCSVの入出力と格闘中。 まあよくある頻出の作業だったりするんですが、自前でやるとなかなか面倒です。 面倒なポイントとしては クオートのエスケープ カンマのエスケープ ヘッダーとの結合 ですかね …

no image

JPAのdetach

このブログで何回か書いてきたんですが、JPAを使うときにpersisit=insert,merge=updateではないです。 参考リンク JPAまとめ JPAでのデータベースとの同期 実はJPAでf …

no image

JSFのメッセージのレンダリング

ManagedBeanとJSFでメッセージのやり取りをする場合、直接メッセージを変数として持たせるよりは、JSFの仕組みを通じてメッセージを出力させたほうが適切です。 Contents1 エラーメッセ …

no image

日付けのメソッド

どのプログラムでも必須となる日付け処理。 言語が違うといろいろと面倒です。 とりあえず頻出のものを整理したいと思います。 Contents1 現在時刻の出力2 日付けの設定・取得3 日付けの整形4 文 …