Robot+JUnitによる、Webアプリケーションの自動テスト

ダウンロードとセットアップ

動作条件

確認済みの動作環境は以下の通り。

Java

Java8のみ確認しています。

セキュリティサポートのあるJDKのダウンロード元などについて不明な場合は、こちらをご覧ください。

Eclipse

よほど古いバージョンでなければ動作すると思いますが、確認済みのバージョンはoxygen以降です。

テスト対象

LANに接続されたホスト上のWebサーバ(Webアプリケーションサーバ)で稼働するアプリケーションのみ、テスト対象とできます。

インターネット上のホストに配置されているアプリケーションに接続することはできません。

提供物について

提供形式は、Eclipseのプロジェクトという形で提供します。

通常のJavaプロジェクトと、Mavenプロジェクトを用意しています。

ご利用の環境に合わせてダウンロードしてください。

通常のJavaプロジェクトは、必要なライブラリを全て含んだ形で提供しますが、HTTPやサーブレットといった、セキュリティ的にシビアなライブラリを含んでいるので、可能な限り最新のライブラリを使用してください。

Mavenプロジェクトは、可能な限り最新のライブラリを使用するような指定としています。

必要なライブラリのリビジョンが上がった場合でも、今までのところ問題なく動作していますが、何らかの問題が発生する可能性もあります。動作チェックは極力行いますが、間に合わない場合もあるかもしれません。その際はご容赦ください。

何らかの問題があり、プログラムの修正が必要な場合は、このコンテンツで新しいバージョンを公開するので、確認してください、

ダウンロード

下記からダウンロードしてください。

Eclipse Javaプロジェクト

日付: サイズ: byte

[SHA256]

Eclipse Mavenプロジェクト

日付: サイズ: byte

[SHA256]

テストライブラリのみ

このファイルには、サンプルや必要な他のライブラリなどは、含まれません。

日付: サイズ: byte

[SHA256]

セットアップ

ダウンロードしたファイルを解凍し、Eclipseからプロジェクトをインポートしてください。

Mavenプロジェクトの場合は、「Maven->プロジェクトの更新」で、依存関係を更新してください。

サンプル実行前の注意事項

当ツールは、テスト用のツールです。ツールの使用者自身が管理するコンテンツのテスト及びプレゼンテーション以外の目的では使用できません。

このツールは、実際のマウスイベントやキーボードイベントを発生させます。何らかの原因で意図しない動作をした場合、ご利用のコンピュータに重大な影響を与える可能性が有ります。

ファイラー(エクスプローラ等)のWindowが開いていると、最悪、ファイルの選択・移動・削除などが(偶然)起きる可能性もあります。

不要なアプリケーション(特に、マウスやキーボードの操作で重大な結果を引き起こす可能性のあるプログラム)を実行していない環境で、テストしてください。

何らかの問題が発生しても、当社は責任を取れませんので、ご了解ください。

ポップアップWindowのオープンを許可していない場合、その旨のメッセージが表示されてテストが中断します。

ポップアップを許可して、再度テストを実行してください。

ポップアップをタブとしてオープンする指定の場合、正しく動作しません。

Robotにより、マウスカーソルが移動している最中にマウスを操作すると、テストケースが中断します。

テストケースが暴走した場合に、テストを中断させるための仕様です。

また、Manager.htmlを表示しているWebブラウザの画面をマウスでクリックしても、テストを中断できます。

テストを中断した場合でも、テストケースがすぐに終了しない場合があります。放置すれば、一定時間でタイムアウトし、JUnitが終了しますが、場合によっては数分掛かることもあります。

テストケースがすぐに終了しない場合は、JUnitを強制的に終了してください。

意図と異なる動きをした場合は、上記いずれかの方法でテストを中断してください。

リモートデスクトップ(又はそれに類する方式)で接続したマシンでテストする場合、マウスカーソルの動作が遅れて正常にテストできない可能性があります。

キーボードのCapsLockが押された状態では、正しく動作しない可能性があります。

サンプルの実行

下記クラスを、実行->JUnitテストで実行してください。

com.yscjp.webunit.sample.SampleTest

以下のメッセージがコンソールに表示されるので、Webブラウザで指定のURLにアクセスしてください(ポートは条件により、クエリ部分は毎回、異なります)。

**************************************************
* サーバの準備が整いました。
* [http://localhost:8080/servlet/Manager.html?1555913756853]に、アクセスしてください。
**************************************************

待ち時間は30秒です。30秒以内にアクセスしない場合は、タイムアウトします。

サンプルコードは、テストケースが終了した時点でオープンしたWindowを閉じるようになっています。

何らかの理由でWindowが閉じなかった場合、次のテストケースは正しく実行できないので、注意してください。

何らかの理由でWindowが閉じなかった場合、手動でWindowを閉じてから、次のテストケースを実行してください。