この章では、テスト基盤にデータを取り込む方法を説明します。Parasoft SOAtest および Virtualize に付属の Parabank サンプル アプリケーションを使用し、アプリケーションにプロキシ設定を追加してデータをキャプチャし、データ リポジトリに取り込みます。
このセクションの内容:
前提条件
- SOAtest/Virtualize サーバーが実行されていること。「SOAtest/Virtualize Server WAR ファイルのデプロイ」を参照してください。
- ParaBank サンプル プロジェクトがデプロイされていること。(「ParaBank の設定」を参照)
- データ リポジトリ サーバーがデプロイされ、CTP に登録されていること。「リモート Data Repository サーバーのインストール」を参照してください。
ParasoftJDBC ドライバーのデプロイ
まず、Parabank に ParasoftJDBC ドライバーをデプロイして SOAtest/Virualize サーバーへの接続を設定します。Parasoft JDBC ドライバーはアプリケーションと通常の JDBC ドライバーの仲介機能を持つ特別な JDBC ドライバーです。詳細は「Parasoft JDBC ドライバーについて」を参照してください。
- <SOATEST/VIRTUALIZE_INSTALL>/proxies ディレクトリを開きます。
- ParasoftJDBCDriver.jar ファイルを <WORKSPACE>/ParaBank/WebContent/WEB-INF/lib ディレクトリにコピーします。
ParaBank/src/jdbc.properties ファイルを開いて下記の設定を指定します。
jdbc.driverClassName=com.parasoft.xtest.jdbc.virt.driver.JDBCProxyDriver jdbc.url=jdbc:parasoft:proxydriver:org.hsqldb.jdbcDriver:@jdbc:hsqldb:hsql://localhost/parabank jdbc.username=sa jdbc.password=
- Virtualize で Java パースペクティブを開き、[実行] > [実行構成] をクリックします。
- [Apache Tomcat] > [ParaBank Tomcat 8.5 Server] を選択します。
[Arguments] タブの VM 引数セクションで、すでに設定されている引数に以下の Parasoft JDBC ドライバー フラグを追加します。
-Dparasoft.virtualize.server.url=http://localhost:9080 -Dparasoft.virtualize.group.id=parabank -Dparasoft.virtualize.driver.register.jdbcproxydriver.in.drivermanager=true -Dparasoft.virtualize.driver.proxy.direct=true
- 変更された実行構成で ParaBank を再起動します。Virtualize のデスクトップでコンソール ビューを開き、ParaBank へのログインとログアウトを行ってプロキシが動作していることを確認できます。
ユーザー自身のプロジェクトでこのチュートリアルを試す場合、いくつかのアプリケーションに Parasoft JDBC ドライバーをデプロイする手順がマニュアルに記載されています。「Parasoft JDBC ドライバーの使用」を参照してください。
データベース クエリーの記録
このステップでは、データベース クエリーを記録し、それを使用して仮想アセットを作成します。データベース クエリーの記録では、データ リポジトリにデータは追加されません。データをキャプチャするには、リポジトリに接続された仮想アセットにメッセージを送信するなどのアクションが必要です。Virtualize のデスクトップ または CTP で、このステップを実行できます。このチュートリアルでは CTP を使用します。それには、追加の設定が必要です。
環境の作成
CTP で新しいシステム、環境、データベース コンポーネントを作成します。システムは開発基盤を表現するものです。システムには "regression testing"、"integration testing" などの環境を表現するものが 1 つ以上あります。さらに、テストのニーズに合わせて 1 つの環境の複数のインスタンスを作成できます。
システムはパレットであり、そこにデータベース、サーバー、クライアントなどのコンポーネントを配置します。各コンポーネントのインスタンスには、特定の環境で使用される設定が含まれます。現実的なシステムには複数のコンポーネントが含まれるでしょうが、このチュートリアルでは、データベース コンポーネントだけを使用してワークフローを表現します。
- CTP を開き、アプリケーション メニューから [Environment Manager] を選択します。
- ツールバーの [システムの追加] をクリックし、[空のシステムを作成] オプションを選択します。
- [作成] をクリックし、[新規システム] ラベルの隣にある編集 (えんぴつ) アイコンをクリックします。
- システムの名前を “Parabank” に変更し、適用 (チェックマーク) ボタンをクリックして変更を保存します。
- ダイアグラム エリアにデータベース コンポーネントをドラッグし、[保存] ボタンをクリックします。
- システム ページのアクション ドロップダウン メニューから [新規環境] を選択します。
- 新規環境の編集ボタンをクリックし、名前を “Silo 1” に変更します。
- 環境を保存します。
これで、1 つのデータベースで構成される Parabank という名前のシステムができました。このシステムには Silo 1 環境があります。次に、データベース コンポーネントの複数のインスタンスを追加して、異なる状態を構成します。
環境へのデータベース コンポーネントの追加
コンポーネントは、環境に表示できるオブジェクトの一種です。コンポーネントが役割を果たすには、特定の機能を実行するインスタンスを追加する必要があります。
- データベース コンポーネント右上隅にポインターを置くと、オプション ドロップダウン メニュー ボタンが表示されます。
- ドロップダウン メニューをクリックして [新規インスタンス] を選択します。
- [名前] フィールドに “Passthrough” と入力します。
- [実エンドポイント] セクションで [HTTP] オプションを選択し、ホスト、ポート、アプリケーションへのパスを指定します。
- [JDBC コントローラー] オプションを選択し、[JDBC コントローラーの選択] をクリックします。
- “parabank” コントローラーを選択し、モードとして Passthrough を指定します。このセクションの他の設定は、すべてデフォルトのままにします。これらの設定のさらに詳細については「JDBC コントローラーの構成」を参照してください。
- [終了] をクリックし、手順 1 から 6 を繰り返して “Record” インスタンスを設定します。
- Record インスタンスの設定が完了したら、[終了] をクリックします。
これで、データベース コンポーネントに対してパススルー モードと記録モードが構成されました。次は、記録を有効化してクエリーをキャプチャします。
CTP 環境からのデータベース クエリーの記録
- データベース コンポーネントの Record インスタンスが有効であることを確認し、[セットアップ] ボタンをクリックします。
- セットアップが正常に完了したことを示すオーバーレイが表示されます。
- ダイアグラム エディターを閉じて Parabank アプリケーションを開きます。
- Parabank にログインし (ユーザー名/パスワード: john/demo)、ログアウトします。このアクションは、データベースにデモ ユーザーのアカウント情報を照会します。
- CTP でデータベース コンポーネントのインスタンスを Passthrough に切り替え、[セットアップ] をクリックして記録を停止します。
- 記録を停止すると、Virtualize サーバーにデータベース記録ファイルを含む新しいディレクトリが追加されます。CTP で Service Virtualization モジュールに切り替えてファイルを参照できます。
次のステップでは、データ リポジトリに接続された仮想アセットを作成し、クエリーに関連するデータをキャプチャします。Virtualize のデスクトップを使用してこのステップを実行します。
データベースの記録からの仮想アセットの作成
JDBC ドライバーを使用してデータベース クエリーを記録したとき、データはキャプチャされません。クエリー テンプレートが作成されるだけです。データベース クエリー テンプレートを使用して仮想アセットを作成し、データ リポジトリとメッセージ レスポンダーを接続してデータをキャプチャします。
- Virtualize デスクトップの仮想アセット エクスプローラーで [VirtualAssets] フォルダーを右クリックし、[新規追加] > [仮想アセット (.pva) ファイル] を選択します。
- [ファイル名] フィールドに
ParabankLogin
と入力し、[次へ] をクリックします。 - [Recorded Database Queries] を選択し、 [次へ] をクリックします。
- [サーバー] ドロップダウン メニューからデータベース クエリーを記録した Virtualize サーバーを選択します。
- [データベース] ドロップダウン メニューからデータベースの場所を選択します。
- [Responder データ ソース タイプ] セクションで [データ リポジトリ] オプションを選択し、[次へ] をクリックします。
- データ リポジトリ サーバーおよび認証情報を指定します。
- [リポジトリ名] フィールドに
ParabankDB
と入力します。既存のリポジトリを指定することもできますが、仮想アセットがデータベースを照会したときにキャプチャしたデータで既存のデータが上書きされます。リポジトリは関連するデータ セットの集合です。 - [SQL データ セット] セクションの [名前] フィールドに
parabank-login
と入力します。 データ セットは関連するデータ フィールドの集合です。 - [検証] をクリックして設定が正しいことを確認し、準備ができたら [終了] をクリックします。
仮想アセットは、SQL テンプレートを使用して記録したデータベースのデータをデータ リポジトリに取り込みます。データにアクセスするには、CTP で Test Data モジュールを開き、リポジトリをクリックします。
これで、データベースのデータがキャプチャされたので、今度はデータ リポジトリのスナップショットを作成し、必要な時にいつでもデータを初期状態にリセットできるようにします。
リポジトリのバックアップの作成
- [データ] タブで ParabankDB リポジトリを選択し、[エクスポート] をクリックします。
- エクスポート名を指定し、[エクスポート] ボタンをクリックします。
- サーバー ノードをクリックしてエクスポートされたリポジトリを参照します。すべてのエクスポートにこの画面からアクセスできます。
- 管理オプションにアクセスしたり、詳細を参照したりするには、エクスポートをクリックします。
次に、テストのためにリポジトリからデータを取得する仮想データベース インスタンスを構成します。
仮想データベース インスタンスの作成
- Environment Manager モジュールを開き、環境ダイアグラムを表示します。
- [ワークスペース] タブで Silo 1 を選択し、[ダイアグラムの編集] をクリックします。
- データベース コンポーネントの上にポインターを置き、ドロップダウン メニューをクリックします。
- [新規インスタンス] を選択し、[名前] フィールドに “Virtual” と入力します。
- [JDBC コントローラー] オプションを選択し、[JDBC コントローラーの選択] をクリックします。
- parabank コントローラーをクリックし、ノードを Virtualize に設定します。
- [終了] をクリックし、[セットアップ] をクリックして環境インスタンスを有効化します。
Test Data を使用して変更を行うことで、リポジトリのデータを格納した仮想データベースが使用されているこをと検証できます。
- Test Data モジュールを開いて ParabankDB データ リポジトリに移動します。
- parabank-login データ セットをクリックしてレコードを表示します。
- 残高情報を含む SQL テンプレートをクリックします。このレコードは行 4 にあるはずです。
- 行を展開してレコード データにアクセスし、編集 (ペン) アイコンをクリックします。
- 残高の値を変更し、保存 (チェックマーク) ボタンをクリックします。
- ParaBank に戻り、ログインします。残高の更新が反映されているはずです。
この時点で、レコードを複製して変更し、API テストおよび手動 UI テストで利用することが可能です。しかし、Test Data のさらに強力な機能を使用して、テスト ライフサイクルのどんなステージにも対応できるよう、テスト データの規模を拡大し、データを変更します。