前のトピック: チュートリアル 8 - Web サービスのテスト次のトピック: チュートリアル 10 - クイック テストのステージング


チュートリアル 9 - データベースの検査およびテスト

このチュートリアルでは、チュートリアル 5 で使用した Web アプリケーションの一部であるデータベース テーブルを検査およびテストします。

SQL データベース実行(JDBC)ステップを使用して、テスト ケースでデータベースと対話し、アサーションを使用して応答をテストします。 アプリケーションの一部である Derby データベースの Users テーブルを検査します。

チュートリアルのタスク

このチュートリアルでは、以下のことを行います。

前提条件

手順 1 - テスト ケースの作成

次の手順に従ってください:

  1. プロジェクト ペインで Tests フォルダを右クリックし、[新規テスト ケースの作成]を選択します。
  2. ファイル名を「tutorial9」に設定します。
  3. 保存]をクリックします。

手順 2 - 設定へのデータベース プロパティの追加

データベースへの接続に必要なプロパティを設定に保存します。 この方法は、DevTest の標準プラクティスであり、テスト ケースの移植性が高まります。

次の手順に従ってください:

  1. project.config がアクティブな設定でない場合は、プロジェクト ペインで project.config を右クリックし、[アクティブ化]を選択します。
  2. project.config 設定を開きます。
  3. 以下のプロパティを追加します。
    DBDriver

    org.apache.derby.jdbc.ClientDriver

    DBConnect

    jdbc:derby://localhost:1529/lisa-demo-server.db

    DBUserID

    sa

    DBPwd

    sa

    チュートリアル 9 のプロパティ エディタのスクリーンショット

  4. 保存]をクリックします。

手順 3 - SQL データベース実行(JDBC)テスト ステップの追加

SQL データベース実行(JDBC)テスト ステップでは、JDBC を使用してデータベースに接続し、データベースに対して SQL クエリを実行することができます。

次の手順に従ってください:

  1. [tutorial9]タブをクリックします。
  2. LISA--icon_image_whiteplussignbluecircleステップの追加]をクリックします。
  3. 他のトランザクション]を選択し、[SQL データベース実行(JDBC)]を選択します。

    JDBC がモデル エディタに追加されます。

  4. ステップ エディタを開くには、JDBC ステップをダブルクリックします。

    チュートリアル 9 の JDBC ステップ エディタのスクリーンショット

手順 4 - データベースへの接続

接続情報を指定するには、project.config 設定に追加したプロパティを使用します。

次の手順に従ってください:

  1. ステップ エディタの[接続情報]領域および[実行情報]領域に以下の値を入力します。 パスワードを入力する際には、値がマスクされます。
    JDBC ドライバ

    {{DBDriver}}

    接続文字列

    {{DBConnect}}

    ユーザ ID

    {{DBUserID}}

    パスワード

    {{DBPwd}}

    チュートリアル 9 のステップ エディタの[接続情報]および[実行情報]領域のスクリーンショット

  2. ステップ エディタの下部にある[テスト接続]ボタンをクリックします。

    接続が有効であることを示すメッセージが表示されます。

    JDBC ステップ エディタのメッセージ[接続は成功しました。]のスクリーンショット。 チュートリアル 9

  3. OK]をクリックします。

手順 5 - SQL クエリの実行

ここでは、Users テーブルからデータを取得する SQL ステートメントを指定して実行します。

次の手順に従ってください:

  1. SQL ステートメント]ペインに以下のステートメントを入力します。
    SELECT LNAME, LOGIN FROM Users
    

    チュートリアル 9 の[SQL ステートメント]ペイン

  2. ステップ エディタの下部にある[SQL をテスト/実行]ボタンをクリックします。

    メッセージで有効なクエリであることが確認され、返された行の数が表示されます。

    結果セットの結果に関する JDBC ステップ エディタのメッセージのスクリーンショット

  3. OK]をクリックします。

    結果セット]タブが表示されます。

    チュートリアル 9 の[JDBC 結果セット]タブのスクリーンショット

手順 6 - アサーションの追加

結果セットに特定の姓が存在することをテストするアサーションを追加します。

次の手順に従ってください:

  1. 結果セット]タブで、[LNAME]列のセルを選択します。
  2. アイコン - 青いページから白いページへの矢印セルの値に対するアサーションの生成]をクリックします。

    JDBC 結果セット値アサーションの生成]ダイアログ ボックスが表示されます。

    チュートリアル 9 の[JDBC 結果セット値アサーションの生成]ダイアログ ボックス

  3. ドロップダウン リストから[テストを失敗させる]オプションを選択します。

    選択した姓が見つからない場合、テストは失敗します。

    チュートリアル 9 の[JDBC 結果セット値アサーションの生成]ダイアログ ボックスのスクリーンショット

  4. OK]をクリックします。
  5. 保存]をクリックします。

手順 7 - テスト ケースの実行

次の手順に従ってください:

  1. ツールバーの 青い歯車アイコン対話型テスト ラン(ITR)の開始]をクリックします。
  2. LISA--icon_image_rightarrowtolineingreencircle次のステップの実行]をクリックします。

    テストが正常に実行されます。 結果セットが[応答]タブに表示されます。

    チュートリアル 9 の ITR の[結果]タブのスクリーンショット

  3. ITR トレイを隠します。

手順 8 - アサーションの変更

ここでは、テストが失敗するようアサーションを変更します。

次の手順に従ってください:

  1. モデル エディタで、JDBC SELECT Users テスト ステップをクリックします。
  2. エレメント ツリーの[アサーション]タブを開きます。

    チュートリアル 9 の JDBC Select Users ステップの[アサーション]タブのスクリーンショット

  3. 先に作成したアサーションをダブルクリックします。

    アサーション エディタが開きます。 下の部分に、このアサーションでは、指定した値が結果セットの最初の列にあることを確認することが示されています。

  4. 正規表現]フィールドの値を「Johns」に変更します。

    チュートリアル 9 の[結果セット コンテンツ]ペインのスクリーンショット

  5. 新しい ITR を開始して、テスト ケースを再度実行します。

    このテストは失敗します。

  6. ITR トレイを隠します。

手順 9 - フィルタの追加

データベース フィルタを追加して、結果セットの最初の列および 4 番目の行の値を取得します。 値はプロパティに格納されます。

次の手順に従ってください:

  1. モデル エディタで、JDBC SELECT Users テスト ステップを選択します。
  2. エレメント ツリーの[フィルタ]タブを開きます。
  3. アイコン - プラス記号追加]をクリックします。
  4. データベース]フィルタ サブメニューから、[JDBC 結果セットから値を抽出]を選択します。

    フィルタ エディタが開きます。

  5. ]フィールドに「1」と入力します。 または、実際の列名として「LNAME」と入力します。
  6. ]フィールドに「3」と入力します。

    このフィールドはゼロ ベースです。 そのため、値 3 は 4 番目の行を表わします。

  7. プロパティ]フィールドに「DBProperty」と入力します。

    チュートリアル 9 の[JDBC 結果セットの値を解析]ダイアログ ボックスのスクリーンショット

  8. 保存]をクリックします。

手順 10 - フィルタおよびアサーションのテスト

次の手順に従ってください:

  1. 新しい ITR を開始して、テスト ケースを再度実行します。

    結果セットで「Johns」が見つからないため、このテストは失敗します。

  2. テスト イベント]タブをクリックします。
  3. プロパティの設定]イベントをクリックします。

    DBProperty にフィルタによって指定された値が設定されていることに注目します。

  4. アサーションの起動]イベントをクリックします。

    詳細フィールド]領域に、結果セットの最初の列に「Johns」という値が含まれていなかったため、アサーションが起動したことが示されています。

    チュートリアル 9 の ITR の[詳細フィールド]のスクリーンショット

  5. プロパティ]タブをクリックします。
  6. DBProperty の行を見つけて確認します。

    チュートリアル 9 の ITR 結果のスクリーンショット

チュートリアル 9 - レビュー

このチュートリアルでは、テスト ケースを作成し、データベースに対してクエリを実行しました。 デモ サーバのアプリケーションに付属している Apache Derby データベースの Users テーブルを使用しました。 また以下の方法を学習しました。