REST サービスの API テストの作成と実行

このレッスンでは、UFT One のサービスのプロトタイプ・モデルを使用して、REST サービスの API テストを作成して実行する方法について説明します。

このレッスンでは、REST サービスのプロトタイプ・モデルを作成し、これらのメソッド・モデルを使用してテストを作成する基本的な手順について説明します。

REST サービスのテストの作成

MyFlight アプリケーション・ソリューションに REST サービスのテストを追加して、MyFlights アプリの Web(API)層をテストします。

次の手順を実行します。

  1. UFT One を起動し、MyFlight アプリケーション・ソリューションを開きます。

    詳細については、「テストの計画とソリューションの作成」を参照してください。

  2. ツールバーの[追加]ドロップダウンを選択し、[新規テストの追加]を選択します。
  3. [新規テストの追加]ダイアログで、次の操作を行います。

    • API テスト]を選択します。
    • 名前]フィールドに「MyFlightRESTService」と入力します。
    • 場所]フィールドで、テストが C:\%HOMEPATH%\Unified Functional Testing ディレクトリに保存されることを確認します。

    追加]をクリックして、テストをソリューションに追加します。

  4. 「REST サービスの構造の作成」に進んでください。

先頭に戻る

REST サービスの構造の作成

この実習では、UFT One で REST メソッドとプロパティのモデルを作成して、REST サービスのパフォーマンスをテストする際に、テスト・ステップで UFT One が使用できるようにする方法について説明します。

サービス、リソース、およびメソッドの作成

次の手順を実行します。

  1. Flight API アプリを起動します。詳細については、「Flights API 層」を参照してください。

    注意: このレッスンを行っている間は[Micro Focus Service APIs]ダイアログを開いたままにし、UFT One でテストが実行されている間、確実に Flights API サービスが実行されているようにしてください。

  2. Micro Focus Flights Service APIs]ダイアログで[ヘルプ]をクリックして、すべてのメソッドの詳細を含むブラウザ・ウィンドウを表示します。

  3. UFT One で、[REST サービスの追加]ツールバー・ボタンをクリックします。

  4. REST サービスの追加]ダイアログで、次の手順を実行します。

    • 新規サービスの名前を「Flights REST Service」に置き換えます。
    • リソースの追加]ツールバー・ボタンをクリックします。

    新しいリソース・ノードがツリーに追加されます。このリソースの名前を FlightOrders に変更します。

  5. 引き続き[REST サービスの追加]ダイアログで、[メソッドの追加]ツールバー・ボタンをクリックします。

    新しいメソッド・ノードがツリーに追加されます。このメソッド名を「ReserveOrder」に変更します。

  6. 「REST サービス・メソッド・モデル URL の設定」に進んでください。

REST サービス・メソッド・モデル URL の設定

UFT One に、サービス、リソース、およびメソッドのレベルで、アプリケーションのサービス URL を提供します。

次の手順を実行します。

  1. 引き続き[REST サービスの追加]ダイアログで、ツリー内の[Flights REST Service]ノードを選択します。

  2. 右側の[一般]タブで、URL プロパティの値を次のように定義します。

    http://localhost:8000

  3. 左側のツリーで、[FlightOrders]ノードを選択します。入力した URL がここに URL 値として表示されていることを確認してください。

    右側の[一般]タブで、[相対 URL]プロパティの値を次のように定義します。

    Flights_REST

  4. 「ReserveOrder メソッド・モデルの要求の情報の追加」に進んでください。

ReserveOrder メソッド・モデルの要求の情報の追加

ReserveOrder メソッドのプロパティ値を定義します。

次の手順を実行します。

  1. 引き続き[REST サービスの追加]ダイアログで、左側のツリー内の[ReserveOrder]ノードを選択します。

  2. 右側で、[HTTP 入力/チェックポイント]タブをクリックし、次のプロパティ値を定義します。

    相対 URL /FlightOrders
    HTTP メソッド POST
  3. 右側の[HTTP]タブをクリックし、次の手順を実行します。

    • 要求本文]と[応答本文]の両方のドロップダウンから、[XML]を選択します。

    • 要求本文]テキスト・エディタ領域に、次のコードを入力します。

      <FlightOrderDetails xmlns="HP.SOAQ.SampleApp">
        <Class>Business</Class>
        <CustomerName>John Parker</CustomerName>
        <DepartureDate>2115/02/28</DepartureDate>
        <FlightNumber>3233</FlightNumber>
        <NumberOfTickets>1</NumberOfTickets>
        </FlightOrderDetails>

      入力したプロパティをグリッド・ビューで表示するには、をクリックします。

  4. HTTP 入力/チェックポイント]タブをもう一度クリックします。

  5. [入力]領域を下にスクロールし、[RequestHeaders]>[RequestHeaders[1]]ノードを展開します。

    後の手順で必要になるため、この応答の設定を確認してください。

  6. 「ReserveOrder メソッド・モデルの出力プロパティの作成」に進んでください。

ReserveOrder メソッド・モデルの出力プロパティの作成

次の手順を実行します。

  1. 引き続き[REST サービスの追加]ダイアログで、左側のツリー内の[ReserveOrder]ノードを選択した状態で、右側の[カスタム入力/チェックポイント]タブを選択します。

  2. [追加]>[出力プロパティの追加]をクリックします。

  3. [出力プロパティの追加]ダイアログで、次の値を入力します。

    • 名前:Total_Price
    • タイプ:Int

    OK]をクリックしてプロパティを追加します。

  4. 前の手順を繰り返して、Order_Number という名前のタイプ Int の別の出力プロパティを追加します。

  5. 「ReserveOrder メソッド・モデルのテスト」に進んでください。

ReserveOrder メソッド・モデルのテスト

前の手順で作成したモデルをテストして、テストへの追加を完了します。

次の手順を実行します。

  1. REST サービスの追加]ダイアログ・ボックスで、ReserveOrder メソッドノードを左側で選択した状態で、[メソッドの実行ツールバー・ボタンをクリックします。

    このノードを表示するには、左側の表示枠を展開する必要がある場合があります。

    UFT One でメソッドが実行されてテストされ、[REST サービスの追加]ダイアログの下部に結果が表示されます。

    例:

  2. OK]をクリックすると、作成したサービス・モデルがツールボックスに追加されます。
  3. 「REST Service Test へのメソッドの追加」に進んでください。

先頭に戻る

REST Service Test へのメソッドの追加

上記の REST サービス・モデルで作成したメソッドを REST API テストに追加します。

データ・ソースのテストへのインポート

  1. テストで使用するデータ・ソースをインポートします。[データ]表示枠([表示]>[データ])で、[新規データ ソースをクリックして[Excel]を選択します。

  2. [新規 Excel データ ソース]ダイアログで、[データ ソース名]に「Flights_REST」を入力します。

  3. <UFT One インストール・フォルダ>\samples\Flights Application ディレクトリに保存されている Excel ファイルを参照して選択します。

  4. 元の場所にある Excel ファイルへのリンク]を選択し、[OK]をクリックして、Excel ファイルのデータをテストに追加します。

  5. 「ステップの追加とそのプロパティのデータ・ソースへのリンク」に進んでください。

ステップの追加とそのプロパティのデータ・ソースへのリンク

次の手順を実行します。

  1. [ツールボックス]表示枠で、[ローカル アクティビティ]>[Flights REST Service]ノードを展開し、[ReserveOrder]ステップをキャンバスにドラッグします。

  2. キャンバスで[ReserveOrder]ステップを選択し、[プロパティ]表示枠を表示します。

  3. 右側の[HTTP]タブをクリックします。

    グリッド]ボタンをクリックし、[データ ソース カラム]の値を使用して、次の値を定義します。

    • Class
    • CustomerName
    • DepartureDate
    • FlightNumber
    • NumberofTickets

    プロパティごとに、次の手順を実行します。

    1. ]セルをクリックするかカーソルを合わせてから、[データ ソースにリンクをクリックします。
    2. [リンク元の選択]ダイアログで、[データ ソース カラム]を選択し、左側の[Flights_REST! input]ノードを選択します。
    3. 右側で、パラメータ化するプロパティの関連するカラムを選択します。
  4. 「[ReserveOrder]ステップのチェックポイントの設定」に進んでください。

[ReserveOrder]ステップのチェックポイントの設定

テストにチェックポイントを追加して、API 応答値を確認します。

次の手順を実行します。

  1. キャンバスで[ReserveOrder]ステップを選択して[プロパティ]表示枠を表示し、[HTTP]タブを選択します。

  2. 次のコードを UFT One マシンの response.xml という名前のファイルに保存します。

    <?xml version="1.0"?>
    <CreatedOrderParams xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="HP.SOAQ.SampleApp">
    	<OrderNumber>93</OrderNumber>
    	<TotalPrice>374.400024</TotalPrice>
    </CreatedOrderParams>
  3. HTTP]タブの下部にある[応答]領域で、[応答本文]に[XML]が選択されていることを確認します。

  4. をクリックし、作成した response.xml ファイルを参照して選択します。

    XML スキーマがロードされます。

  5. ロードされた新しいスキーマで、次の値を更新します。

    OrderNumber > 10
    TotalPrice < 500
  6. 「REST サービスのテストの実行」に進んでください。

先頭に戻る

REST サービスのテストの実行

前の実習で作成したテストを実行し、実行結果を表示します。

次の手順を実行します。

  1. Flight API アプリが起動中であることを確認します。詳細については、「テストの計画とソリューションの作成」を参照してください。

  2. テストの反復回数を定義します。キャンバスで、[テスト フロー]ボックスを選択します。

  3. [プロパティ]表示枠の[入力]タブで、次の操作を行います。

    • 'For' ループ]オプションを選択します。
    • 反復回数]フィールドに、「8」と入力します。
  4. テスト実行でのデータ処理方法を設定します。次の手順を実行します。

    1. キャンバスで[テスト フロー]ボックスを選択して、テスト・フローの[プロパティ]表示枠を表示します。

    2. [プロパティ]表示枠で[データ ソース]タブを選択します。

    3. テーブルで[Flights_REST!Input]エントリを選択し、[編集]をクリックします。

    4. データ ナビゲーション]ダイアログで、データ・ナビゲーションの詳細を次のように指定します。

      開始位置: 最初の行
      移動単位: 1 行進む
      終了位置: 最後の行
      最終行への到達時 折り返す
    5. OK]をクリックして、テストを保存します。

  5. 実行]ツールバー・ボタンをクリックします。

    MyFlightRESTService テストが選択されていることを確認し、[実行]をクリックしてテストを実行します。

  6. テストが完了して実行結果が表示されたら、[テスト フロー]内を下に移動し、ReserveOrder ノードのいずれかを選択します。

    右側の[キャプチャ データ]領域に、テスト実行中に生成された要求と応答のデータを表示します。

    • テーブル内のリンクのいずれかをクリックして、完全要求コードまたは応答コードを表示します。

      例:

    • 一番下までスクロールして、チェックポイント・データを表示します。

      この例では、500 より大きい価格が含まれていたため、チェックポイントの 1 つが失敗しました。

  7. 「REST サービスの競合の解決」に進んでください。

先頭に戻る

REST サービスの競合の解決

テストの作成後にサービス・モデルのプロパティが変更された場合は、REST サービスの競合を解決します。この実習では、UFT One の競合の解決ウィザードがテストの更新にどのように役立つかについて説明します。

サービス・モデルのプロパティの編集

更新されたサービス・モデルと比較するときに、サービス・モデルのプロパティを編集して、テストで競合を作成します。

次の手順を実行します。

  1. [ツールボックス]表示枠で、[ローカル アクティビティ]>[Flights REST Service]ノードを右クリックし、[サービスの編集]を選択します。

  2. [REST サービスの編集]ダイアログで、[ReserveOrder]ノードを選択します。

  3. 右側で、[カスタム入力/チェックポイント]タブを選択します。

  4. Total_Price]プロパティを選択し、上部の[プロパティの編集]ボタンをクリックします。

  5. 名前を[TotalPrice]に変更します(単語間のアンダースコアを削除します)。

  6. 前の手順を繰り返して、[Order_Number]プロパティ名を「OrderNumber」に変更します。

  7. OK]をクリックし、サービスに対する変更を行ってダイアログ・ボックスを閉じます。

    変更内容が保存され、値が一致しなくなったことを示すアラートがキャンバスに表示されます。

  8. 「作成した競合の解決」に進んでください。

作成した競合の解決

テストと API サービス・モデルの間に競合があるため、それを解決してテストを新しい値で更新します。

次の手順を実行します。

  1. キャンバスでアラートをクリックして詳細を表示し、アラートのテキストをクリックして REST 競合の解決ウィザードを開きます。

  2. 最初の画面([ステップの選択])で、[ReserveOrder]ステップのチェックボックスを選択し、[次へ]をクリックします。

  3. ウィザードの[競合の解決]画面では、競合のあるすべてのステップが赤で強調表示されます。

    下部の[出力プロパティ]領域の[変更後]ボックスで、[Total_Price]プロパティを選択します。

  4. 変更前]ボックスと[変更後]ボックスの間にある[削除]ボタンをクリックして、[Total_Price]プロパティを削除します。

  5. これらの手順を繰り返して、[Order_Number]プロパティも削除します。

  6. 次へ]をクリックします。[完了]画面で、すべての競合が正常に削除されたことを確認してください。

  7. 完了]をクリックしてウィザードを終了し、アラートがキャンバスから削除されたことを確認します。

    テストのプロパティ名が、サービス・モデルの新しい名前を反映するように更新されました。

  8. テストを保存し、このチュートリアルの他のレッスンに進んでください。

先頭に戻る

次のステップ: