このセクションでは、REST Client ツールを構成して適用する方法について説明します。このツールは RESTful サービスにメッセージを送ります。 HTTP の GET、POST、OPTIONS、HEAD、PUT、DELETE、TRACE、またはカスタム メソッドを使ってメッセージを送ることができます。REST Client ツールは SOAtest および Virtualize で使用できます。
このセクションの内容:
REST Client の移行 (9.7.x 以前のバージョンから)
REST Client ツールはバージョン 9.8 でリニューアルされ、構成プロセスがより簡単になり、柔軟性が増しました。
9.7.x 以前のバージョンで作成された REST Client ツールを開いて、現在のバージョンの製品で .tst または .pvn
を保存すると、自動的に新しいフォーマットを使用するよう更新されます。
自動で移行プロセスが実行されるとき、従来の入力モードの設定が新しい入力モードにマッピングされます。従来の REST Client にはフォーム、リテラル、およびスクリプト入力モードがありました。
現行の REST Client には、制約に従う (OpenAPI/Swagger、RAML、WADL) サービス定義モードおよび制約なしのサービス定義モードがあります。
移行は次のように行われます。
- 既存のツールでリテラル モードが使用されている場合、新しいツールは制約なしのモードを使用し、URL フィールドには、既存のリテラル設定のデータが入力されます。
- 既存のツールでスクリプト モードが使用されている場合、新しいツールは制約なしのモードを使用し、URL フィールドはスクリプト値に設定されます。既存のスクリプトが適用されます。
- 既存のツールでペイロードにフォーム入力モードが使用され、content-type が application/x-www-form-urlencoded または multipart/form-data の場合、新しいツールのペイロード タブはテーブルビューに設定されます。
- 既存のツールでフォーム モードが使用され、WADL に従うよう設定されている場合 (WADL URL が指定され、それに従うよう設定されている場合)、新しいツールは WADL モードを使用し、既存の WADL URL を保持します。
- 既存のツールでフォーム モードが使用され、WADL に従うよう設定されていない場合 (または WADL URL が指定されていない場合)、新しいツールは制約なしのモードを使用します。制約なしのモードの設定は、ベース URL がスクリプト値であるか、クエリーが完全にスクリプト値である場合を除き、既存のフォーム ビューの設定に基づいて定義されます。
以下の場合には、正確なマッピングが行われません。
- 既存のツールが WADL に従うよう設定されておらず、ベース URL にスクリプト オプションを使用している場合、制約なしのモードが使用され、スクリプトの設定は移行されません。
- 既存のツールが WADL に従うよう設定されておらず、フォーム入力モードのクエリー タブでスクリプト オプションが使用されている場合、制約なしのモードが使用され、スクリプトの設定は移行されません。
- 既存のツールが WADL を使用しているが、WADL に従うよう設定されておらず、いずれかのパラメーター (パス、クエリー、またはペイロード) で自動設定が使用されている場合、自動設定は移行されません。
これらのマッピングがサポートされていないツールを移行した場合、詳細がコンソールに表示されます。
マッピングがサポートされていない既存のツールを実行すると、ツールが失敗し、品質タスク ビューにマッピングの問題の概要が表示されます。
[リソース] タブ
[リソース] タブで、メッセージを送信するリソースを指定します。デフォルトのサービス定義モード (制約なし) では、サービスにアクセスするための URL およびクエリーを指定できます。サービス定義 (OpenAPI/Swagger、Swagger、WADL) がある場合、いずれかの制約付きのモードに変更することができます。
サービス定義フィールドに設定した内容によって、利用できるオプションが異なります。
- なし: 「制約なしの構成」 の説明を参照
- OpenAPI/Swagger: 「OpenAPI/Swagger の構成」 の説明を参照
- RAML: 「RAML の構成」 の説明を参照
- WADL: 「WADL の構成」 の説明を参照
パラメーターは、「パラメーターの構成」で説明されているとおり、[パス] および [クエリー] タブで構成できます。
制約なしの構成
制約なしのモードの場合 ([サービス定義] オプションが [なし] に設定されている場合)、URL をリテラル値として指定できます。値は固定値、パラメーター値、またはスクリプト値を使用できます。また、呼び出すメソッドも固定値、パラメーター値、またはスクリプト値として指定できます。
値のパラメータライズについては、以下のセクションを参照してください。
スクリプト値の詳細については「スクリプトを使用した拡張機能の基礎」を参照してください。固定値では、${var_name} 構文を使ってデータ ソース値にアクセスできます。また、定義済みの環境変数を使用できます。環境の詳細については、 異なる環境でのテスト構成 または Virtualize 環境の構成 を参照してください。
URL で環境変数を使用した場合、解決された実際の URL が [解決済み URL] フィールドに表示されます。
ただし、環境変数がマスクされている場合、[解決済み URL] フィールドには実際の値は表示されません (「変数値のマスキング」も参照)。
パラメーターは、「パラメーターの構成」で説明されているとおり、[パス] および [クエリー] タブで構成できます。URL に対して行った変更は、自動的に [パス] および [クエリー] テーブルに反映されます。また、[パス] および [クエリー] テーブルで行った変更も、URL に反映されます。
RAML の構成
RAML 構成モードでは、以下の URL コンポーネントを指定できます。
- RAML URL: 特定の RAML URL または RAML URL を参照する変数を指定します。ここで入力された値は、[ベース URL] および [操作] フィールドに値を設定するのに使用されます。
- URL: サービスにアクセスするための URL 全体のプレビューです。[ベース URL]、[操作] の値、および [パス]/[クエリー] タブで入力した値から組み立てられます。このフィールドは、組み立てられた URL 全体を表示しますが、変数を解決しません。解決された変数を確認するには、[解決済み URL] を参照してください。
- 解決済み URL: 解決済みの RAML URL です。環境変数を使用してツールを構成している場合、実際に解決された URL がこのフィールドに表示されます。たとえば、 HOST および PORT が環境変数であり、var_name がデータ ソースの列名である場合、http://${HOST}:${PORT}/some/url/${var_name} という URL は [解決済み URL] に http://localhost:8080/some/url/${var_name} のように表示されます。
- ベース URL: 使用するプロトコル (HTTP または HTTPS)、ホスト、ポート、およびパスを指定します。
- 操作: RAML 定義が構成済みの場合、このボックスから操作および HTTP メソッドを選択できます。[パス]/[クエリー] テーブルのフォーム入力ビューおよび [ペイロード] タブは、ここで選択された操作および HTTP メソッドに基づいて更新されます。
[ベース URL] フィールドは、(指定された RAML URL によって) 制約された値、固定値 (編集可能)、またはスクリプト値を使用するよう設定できます。
値のスクリプトの詳細については「スクリプトを使用した拡張機能の基礎」を参照してください。
固定値では、${var_name} 構文を使ってデータ ソース値にアクセスできます。また、定義済みの環境変数を使用できます。環境の詳細については、 異なる環境でのテスト構成 または Virtualize 環境の構成 を参照してください。
パラメーターは、「パラメーターの構成」で説明されているとおり、[パス] および [クエリー] タブで構成できます。また、[パス] および [クエリー] テーブルで行った変更も、URL に反映されます。
OpenAPI/Swagger の構成
OpenAPI/Swagger 成モードでは、以下の URL コンポーネントを指定できます。
- OpenAPI/Swagger URL: 特定の OpenAPI/Swagger URL、または OpenAPI/Swagger URL を参照する変数を指定します。ここで入力した値は、[ベース URL] および [操作] フィールドに値を設定するのに使用されます。
- URL: サービスにアクセスするための URL 全体のプレビューです。[ベース URL]、[操作] の値、および [パス]/[クエリー] タブで入力した値から組み立てられます。このフィールドは、組み立てられた URL 全体を表示しますが、変数を解決しません。解決された変数を確認するには、[解決済み URL] を参照してください。
- 解決済み URL: 解決済みの OpenAPI/Swagger URL です。環境変数を使用してツールを構成している場合、実際に解決された URL がこのフィールドに表示されます。たとえば、 HOST および PORT が環境変数であり、var_name がデータ ソースの列名である場合、http://${HOST}:${PORT}/some/url/${var_name} という URL は [解決済み URL] に http://localhost:8080/some/url/${var_name} のように表示されます。
- ベース URL: 使用するプロトコル (HTTP または HTTPS)、ホスト、ポート、およびパスを指定します。
- 操作: OpenAPI/Swagger 定義が構成済みの場合、このボックスから操作および HTTP メソッドを選択できます。[パス]/[クエリー] テーブルのフォーム入力ビューおよび [ペイロード] タブは、ここで選択された操作および HTTP メソッドに基づいて更新されます。
[ベース URL] フィールドは、(指定された OpenAPI/Swagger URL によって) 制約された値、固定値 (編集可能)、またはスクリプト値を使用するよう設定できます。
値のスクリプトの詳細については「スクリプトを使用した拡張機能の基礎」を参照してください。
固定値では、${var_name} 構文を使ってデータ ソース値にアクセスできます。また、定義済みの環境変数を使用できます。環境の詳細については、 異なる環境でのテスト構成 または Virtualize 環境の構成 を参照してください。
パラメーターは、「パラメーターの構成」で説明されているとおり、[パス] および [クエリー] タブで構成できます。また、[パス] および [クエリー] テーブルで行った変更も、URL に反映されます。
WADL の構成
WADL 構成モードでは、以下の URL コンポーネントを指定できます。
- WADL URL: 特定の WADL URL または WADL URL を参照する変数を指定します。ここで入力された値は、[ベース URL] および [操作] フィールドに値を設定するのに使用されます。
- URL: サービスにアクセスするための URL 全体のプレビューです。[ベース URL]、[操作] の値、および [パス]/[クエリー] タブで入力した値から組み立てられます。このフィールドは、組み立てられた URL 全体を表示しますが、変数を解決しません。解決された変数を確認するには、[解決済み URL] を参照してください。
- 解決済み URL: 解決済みの WADL URL です。環境変数を使用してツールを構成している場合、実際に解決された URL がこのフィールドに表示されます。たとえば、 HOST および PORT が環境変数であり、var_name がデータ ソースの列名である場合、http://${HOST}:${PORT}/some/url/${var_name} という URL は [解決済み URL] に http://localhost:8080/some/url/${var_name} のように表示されます。
- ベース URL: 使用するプロトコル (HTTP または HTTPS)、ホスト、ポート、およびパスを指定します。
- 操作: WADL が構成済みの場合、このボックスから操作および HTTP メソッドを選択できます。[パス]/[クエリー] テーブルのフォーム入力ビューおよび [ペイロード] タブは、ここで選択された操作および HTTP メソッドに基づいて更新されます。
[ベース URL] フィールドは、(指定された OpenAPI/Swagger URL によって) 制約された値、固定値 (編集可能)、またはスクリプト値を使用するよう設定できます。
値のスクリプトの詳細については「スクリプトを使用した拡張機能の基礎」を参照してください。
固定値では、${var_name} 構文を使ってデータ ソース値にアクセスできます。また、定義済みの環境変数を使用できます。環境の詳細については、 異なる環境でのテスト構成 または Virtualize 環境の構成 を参照してください。
パラメーターは、「パラメーターの構成」で説明されているとおり、[パス] および [クエリー] タブで構成できます。また、[パス] および [クエリー] テーブルで行った変更も、URL に反映されます。
ビューの切り替え
制約されたモード ([サービス定義] に [RAML]、[OpenAPI/Swagger] または [WADL] を指定) から制約なしのモード ([サービス定義] に [なし] を指定) に切り替える場合、制約なしのビューに制約されたビューの値を自動的に投入することができます。
たとえば、WADL ビューに次のように入力されているとします。
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 ツールは、他のクライアント ツールと [入力モード] オプションを共有します。これらの共有オプションの詳細については、 「Input Modes」 を参照してください。
スキーマが関連付けられた XML または JSON の場合、該当するフォーム ビューは、定義の値に従って自動的に値が入力され、メッセージが指定されたスキーマに準拠するよう、編集操作が制限されます。たとえば、ツリー ノードの挿入、削除、名前の変更、コピー、貼り付けを行うことはできません。
[HTTP オプション] タブ
HTTP オプションを使用すると、リクエストを送るためにどのプロトコル (HTTP 1.0 または 1.1) を使用するかを決定できるだけでなく、プロトコルに関連するさまざまなオプションを決定できます。
[トランスポート] ドロップダウン リストから適切なプロトコルを選択し、そのプロパティを設定します。詳細については、以下のセクションで説明します。
SOAtest
Virtualize
[その他] タブ
REST Client ツールの [成功条件] タブでは以下のオプションを指定できます。
- 有効な HTTP レスポンス コード: ツールの動作をカスタマイズし、200 番台以外のHTTPレスポンス コードを成功とすることができます。コードおよび/またはコードの範囲をカンマで区切って入力します。たとえば「302, 500-599」を使用した場合、「302 のコード」 または「500 番台の任意のコード」が許容されます。 データ ソースに格納された値を使用する場合も、必ず同じフォーマットを使用してください (「302, 500-599」 など)。
タイムアウト (ミリ秒): FTP 、 telnet 、 HTTP リクエストをタイムアウトと見なす遅延時間をミリ秒で指定します。デフォルトは、 [設定] パネルに設定されたタイムアウト時間に対応します。[カスタム] を選択すると任意のタイムアウト時間を設定できます。タイムアウト時間を設定しない場合は、負の値を指定します。
- タイムアウト時にテストは失敗する: 指定したタイムアウト時間でツールを失敗させるには、このオプションをオンにします。
- タイムアウトが発生した場合だけテストは成功する: 指定のタイムアウト時間に達した場合に (つまり、テストが指定の時間内に完了しない場合に) ツールをパスさせるには、このオプションを選択します。
送信メッセージのエンコード: ドロップダウン メニューから [カスタム] を選択し、送信メッセージのエンコーディングを選択します。デフォルトでは、直接の親テスト スイートで設定されたエンコーディングを使用します (「クライアント オプションの設定」を参照)を参照してください。このオプションは Parasoft 設定の [その他] でも指定できます。
関連するチュートリアル
以下のチュートリアルでこのツールの使い方を説明しています。