このセクションでは、REST Client ツールを構成して適用する方法について説明します。このツールは RESTful サービスにメッセージを送ります。 HTTP の GET、POST、OPTIONS、HEAD、PUT、DELETE、TRACE、またはカスタム メソッドを使ってメッセージを送ることができます。REST Client ツールは SOAtest および Virtualize で使用できます。
このセクションの内容:
REST Client ツールはバージョン 9.8 でリニューアルされ、構成プロセスがより簡単になり、柔軟性が増しました。
9.7.x 以前のバージョンで作成された REST Client ツールを開いて、現在のバージョンの製品で .tst
を保存すると、自動的に新しいフォーマットを使用するよう更新されます。
自動で移行プロセスが実行されるとき、従来の入力モードの設定が新しい入力モードにマッピングされます。従来の REST Client にはフォーム、リテラル、およびスクリプト入力モードがありました。
現行の REST Client には、制約に従う (OpenAPI/Swagger、RAML、WADL) サービス定義モードおよび制約なしのサービス定義モードがあります。
移行は次のように行われます。
以下の場合には、正確なマッピングが行われません。
これらのマッピングがサポートされていないツールを移行した場合、詳細がコンソールに表示されます。
マッピングがサポートされていない既存のツールを実行すると、ツールが失敗し、品質タスク ビューにマッピングの問題の概要が表示されます。
[リソース] タブで、メッセージを送信するリソースを指定します。デフォルトのサービス定義モード (制約なし) では、サービスにアクセスするための URL およびクエリーを指定できます。サービス定義 (OpenAPI/Swagger、Swagger、WADL) がある場合、いずれかの制約付きのモードに変更することができます。
サービス定義フィールドに設定した内容によって、利用できるオプションが異なります。
パラメーターは、「Parameter Configuration」で説明されているとおり、[パス] および [クエリー] タブで構成できます。
制約なしのモードの場合 ([サービス定義] オプションが [なし] に設定されている場合)、URL をリテラル値として指定できます。値は固定値、パラメーター値、またはスクリプト値を使用できます。また、呼び出すメソッドも固定値、パラメーター値、またはスクリプト値として指定できます。 値のパラメータライズについては 「テストのパラメータライズ (データ ソース、変数、または他のテストの値を使用)」を参照してください。スクリプト値の詳細については「スクリプトを使用した拡張機能の基礎」を参照してください。
固定値では、${var_name} 構文を使ってデータ ソース値にアクセスできます。また、定義済みの環境変数を使用できます。環境の詳細については、 異なる環境でのテスト構成URL で環境変数を使用した場合、解決された実際の URL が [解決済み URL] フィールドに表示されます。
ただし、環境変数がマスクされている場合、[解決済み URL] フィールドには実際の値は表示されません 。
パラメーターは、「Parameter Configuration」で説明されているとおり、[パス] および [クエリー] タブで構成できます。URL に対して行った変更は、自動的に [パス] および [クエリー] テーブルに反映されます。また、[パス] および [クエリー] テーブルで行った変更も、URL に反映されます。
RAML 構成モードでは、以下の URL コンポーネントを指定できます。
[ベース URL] フィールドは、(指定された RAML URL によって) 制約された値、固定値 (編集可能)、またはスクリプト値を使用するよう設定できます。
値のスクリプトの詳細については「スクリプトを使用した拡張機能の基礎」を参照してください。
固定値では、${var_name} 構文を使ってデータ ソース値にアクセスできます。また、定義済みの環境変数を使用できます。環境の詳細については、 異なる環境でのテスト構成
パラメーターは、「Parameter Configuration」で説明されているとおり、[パス] および [クエリー] タブで構成できます。また、[パス] および [クエリー] テーブルで行った変更も、URL に反映されます。
OpenAPI/Swagger 成モードでは、以下の URL コンポーネントを指定できます。
[ベース URL] フィールドは、(指定された OpenAPI/Swagger URL によって) 制約された値、固定値 (編集可能)、またはスクリプト値を使用するよう設定できます。
値のスクリプトの詳細については「スクリプトを使用した拡張機能の基礎」を参照してください。
固定値では、${var_name} 構文を使ってデータ ソース値にアクセスできます。また、定義済みの環境変数を使用できます。環境の詳細については、 異なる環境でのテスト構成
パラメーターは、「Parameter Configuration」で説明されているとおり、[パス] および [クエリー] タブで構成できます。また、[パス] および [クエリー] テーブルで行った変更も、URL に反映されます。
WADL 構成モードでは、以下の URL コンポーネントを指定できます。
[ベース URL] フィールドは、(指定された OpenAPI/Swagger URL によって) 制約された値、固定値 (編集可能)、またはスクリプト値を使用するよう設定できます。
値のスクリプトの詳細については「スクリプトを使用した拡張機能の基礎」を参照してください。
固定値では、${var_name} 構文を使ってデータ ソース値にアクセスできます。また、定義済みの環境変数を使用できます。環境の詳細については、 異なる環境でのテスト構成
パラメーターは、「Parameter Configuration」で説明されているとおり、[パス] および [クエリー] タブで構成できます。また、[パス] および [クエリー] テーブルで行った変更も、URL に反映されます。
制約されたモード ([サービス定義] に [RAML]、[OpenAPI/Swagger] または [WADL] を指定) から制約なしのモード ([サービス定義] に [なし] を指定) に切り替える場合、制約なしのビューに制約されたビューの値を自動的に投入することができます。以下の例では、モードを切り替えた後に自動的に入力される設定がいくつかあります。
モードを切り替えて、サービス定義の値を使ってクライアントの設定値を入力することを確認します。
サービス定義の設定値を上書きすることを確認すると、クライアントが更新されます。
すべてのモード (制約ありまたは制約なし) において、[パス] または [クエリー] タブでパラメーターを構成できます。
[パス] タブでは、現在選択されている操作に対するテンプレート パラメーターを構成できます。たとえば、"/parabank/services/bank/accounts/{accountId}" というパスには、1 つのパス パラメーター "accountId" があります。制約なしのモードでは、パラメーターは固定値、パラメータライズ値、スクリプト値を使用できます。
制約に従うモードでは、パラメーターには固定値、パラメータライズ値、自動生成値、またはスクリプト値を設定できます。
[クエリー] タブでは、現在選択されている操作に対する URL クエリー パラメーターを構成できます。固定値、パラメータライズ値、またはスクリプト値を追加できます。
制約なしのモードでは、パラメーターは固定値、パラメータライズ値、スクリプト値を使用できます。
制約に従うモードでは、パラメーターには固定値、パラメータライズ値、自動生成値、またはスクリプト値を設定できます。
エンコーディングに関する注意点
URL クエリー パラメーターは、"application/x-www-form-urlencoded" コンテント タイプに従ってフォーマットされます。空白文字は '+' に置換されます。英数字以外の文字は、文字コードを表す 2 桁の 16 進数の先頭にパーセント記号を付けたものに置換されます。パラメーターの名前と値は '=' で区切られ、名前と値のペアは '&' で区切られます。
他のフォーマットを使用する場合、([クエリー パラメーター] セクションではなく) ツールのエンドポイント URL の末尾に直接的にクエリー パラメーターを指定することもできます。たとえば、次の図の例は、次のように指定することもできます: http://host:8080/path?a=1&b=2&c=3
マトリクス パラメーターは、リソース URL の最後のパスセグメントに直接的に追加することで指定できます。たとえば、次の図のパラメーターは、次のように指定することもできます: http://host:8080/path;jsessionid=12345
使用しているメソッドがデータを送る場合 (たとえば PUT、POST、DELETE)、送るメッセージのペイロードを [ペイロード] タブで指定できます。
ペイロード自体を指定する前に、ペイロードのフォーマットおよびメディア タイプを指定する必要があります ( [ペイロード フォーマット] および [Content-Type] ボックスで)。[リソース] タブの [サービス定義] オプションに [RAML]、[OpenAPI/Swagger]、または [WADL] が指定されている場合、ペイロード フォーマットおよび Content-Type は、指定された URL および選択されたリソースに従うよう強制されます。
これら 2 つのオプションは、Content-Type HTTP ヘッダーを制御し、利用できる入力モードを決定します。たとえば、[フォーム JSON] ビューは JSON メディア タイプでだけ使用できます。 [フォーム XML] ビューは XML メディア タイプでだけ使用できます。 メディア タイプが "application/x-www-form-urlencoded" で、現在選択されている操作のレプリゼンテーション パラメーターを WADL が定義している場合、[フォーム入力] ビューを使ってそのパラメーターを設定できます。これは、[パス] および [クエリー] タブで使用される [フォーム入力] に似ています。
ペイロードを指定するために、[入力モード] ドロップダウン リストから入力モードを選択できます。REST Client ツールは、他のクライアント ツールと [入力モード] オプションを共有します。これらの共有オプションの詳細については、 「メッセージ ツールとレスポンダーのオプション」 を参照してください。
スキーマが関連付けられた XML または JSON の場合、該当するフォーム ビューは、定義の値に従って自動的に値が入力され、メッセージが指定されたスキーマに準拠するよう、編集操作が制限されます。たとえば、ツリー ノードの挿入、削除、名前の変更、コピー、貼り付けを行うことはできません。
HTTP オプションを使用すると、リクエストを送るためにどのプロトコル (HTTP 1.0 または 1.1) を使用するかを決定できるだけでなく、プロトコルに関連するさまざまなオプションを決定できます。
[トランスポート] ドロップダウン リストから適切なプロトコルを選択し、そのプロパティを設定します。詳細については、以下のセクションで説明します。
SOAtest
REST Client ツールの [その他] タブでは次のオプションを設定できます。
タイムアウト (ミリ秒): FTP 、 telnet 、 HTTP リクエストをタイムアウトと見なす遅延時間をミリ秒で指定します。デフォルトは、 [設定] パネルに設定されたタイムアウト時間に対応します。[カスタム] を選択すると任意のタイムアウト時間を設定できます。タイムアウト時間を設定しない場合は、負の値を指定します。
送信メッセージのエンコード: ドロップダウン メニューから [カスタム] を選択し、送信メッセージのエンコーディングを選択します。デフォルトでは、直接の親テスト スイートで設定されたエンコーディングを使用します (クライアント オプションの指定 を参照)。このオプションは Parasoft 設定の [その他] でも指定できます。
以下のチュートリアルでこのツールの使い方を説明しています。