このセクションでは、Web ブラウザーで記録されたアクションを表す JUnit テストの生成方法について説明します。
このセクションの内容:
SOAtest では、新規または以前に記録した Web シナリオを表す JUnit テストを生成できます。Web アプリケーションに対して機能テストを設定し、生成された JUnit テスト ケースを使用して、JUnit フレームワークを使用するテスト結果を検証できます。これは、テスト スクリプトの柔軟性と SOAtest の使いやすいインターフェイスを提供します。新しいテスト スクリプト言語を学習する必要はありません。
結果として生じるクラス ファイルは JUnit ベースであり、次の JAR ファイルに依存します。
<Parasoft Test install dir>/plugins/com.parasoft.xtest.libs_<version>/Parasoft から:
<Parasoft Test install dir>/plugins/com.parasoft.xtest.libs_<version>/Parasoft から:
<Parasoft Test install dir>/plugins/com.parasoft.xtest.libs.base_<version> から:
<Parasoft Test install dir>/plugins/com.parasoft.xtest.libs.base_<version>/Parasoft から:
<Parasoft SOAtest install dir>/eclipse/plugins/com.parasoft.xtest.libs.web_<version>/root/lib-java-mod から:
<Parasoft SOAtest install dir>/eclipse/plugins/com.parasoft.xtest.libs.web_<version>/root から:
<Parasoft SOAtest install dir>/eclipse/plugins/com.parasoft.xtest.license.eclipse.core.web_<version>/lib から:
JUnit テストの生成を始める前に、一度だけ次の設定を行います。
シナリオを記録しながら、そのシナリオから JUnit テストを生成するには、次の操作を行います。
次から記録を開始: 機能テストを実行するサイトの URL を入力します。
SOAtest と同じマシン上にあるアプリケーションを記録する際は、localhost を使用しないでください。代わりに、マシン名 (例: mymachine.parasoft.com) または IP アドレス (10.10.11.11) を指定してください。 |
キャプチャしたい機能をブラウザー上で操作して指定します。リンクのクリック、フォームの記入と送信、ナビゲーション バーに URL を入力して開く、ショートカットの使用、ページを戻る・進む、といった操作が可能です。
正確に記録するために、毎回ページが完全に読み込まれるのを待ってから操作を実行してください。 |
フォームを入力するには、実際にサイト操作するように、直接 GUI に値を入力します。たとえば、名前とパスワードの入力、ラジオボタンの選択、チェックボックスのオン/オフなどの操作を直接行います。 セッションを記録する際の注意点:
|
6.ブラウザー ウィンドウを閉じます。
JUnit テスト クラスが指定した出力先に追加されます。新規プロジェクトはテスト ケース エクスプローラーに作成/追加されません。
以前に記録したシナリオを描写する JUnit テストを生成するには、次の操作を行います。
多くのユーザーは、すべてのテストを同じプロジェクトに入れておくと使いやすいと感じています。しかしながら、希望する場合は、複数のプロジェクトを作成することも可能です。 |
生成したテストを実行するには、次の操作を行います。
JUnit のドキュメントに記載のように、コマンドラインからこれらのテストを実行することも可能です。
SOAtest で生成された JUnit テストを実行するには、ライセンス情報が必要です。ライセンス情報の設定方法は 2 通りあります。
SOAtest をインストールしていないマシンからテストを実行したい場合、またはローカルにインストールされている SOAtest で使用しているライセンスとは異なるライセンス情報を使用したい場合、SAOtest を開いて GUI で設定を変更する必要なく、ライセンス情報を操作できます。次のコンストラクターを使用してライセンス情報を渡します。
WebBrowser( String installRoot, int browserType, String ffExePath, String licenseServerLocation, int licenseServerPort, int licenseServerTimeout ) |
SOAtest によって作成された各 JUnit クラスは、SOAtest テストのテスト シーケンスを模擬する 1 つのテスト関数から構成されます。サーバーがレスポンスを返すと、テストはテスト関数内で宣言されたレスポンス オブジェクトに代入します。サーバーからのレスポンスが見込まれていることを検証するために、これらの代入の後にアサーション文を挿入するべきです。
テスト関数内のアサーション挿入位置を推奨する場所にコメント ブロックを作成しました。
例:
public void testA() throws Exception { WebConversation wc = new WebConversation(); WebRequest req = new GetMethodWebRequest("http://mole/tests/"); WebResponse resp = wc.getResponse(req); //Begin assertions //End assertions WebLink link = resp.getLinkWith("popup.html"); link.click(); resp = wc.getCurrentPage(); //Begin assertions //End assertions WebForm form = resp.getFormWithName("childrenForm"); resp = form.submit(); //Begin assertions //End assertions } |
上記の JUnit テスト関数では、WebResponse オブジェクトに新しい値が割り当てられるたびに、コメント ブロックを挿入しています。