SOAtest と Virtualize は、GraphQL クエリー言語を使用して HTTP 呼び出しを行うことができるため、1 回の呼び出しで複数のソースから特定のデータを取得できます。このトピックでは、GraphQL Client ツールを構成して使用する方法について説明します。

このセクションの内容:

[リソース] タブ

[リソース] タブでは、サービスにアクセスするための URL とクエリーを指定して、メッセージを送信するリソースを指定します。URL は、固定値またはスクリプト化された値のいずれかであるリテラル文字列として指定されます。また、呼び出すメソッドを固定値またはスクリプト値として指定することもできます。 

スクリプト値の詳細については「スクリプトを使用した拡張機能の基礎」を参照してください。

Parameter Configuration」の説明にあるように、パラメータを設定できます。URL に加えられた変更は、[パス/クエリー] テーブルに加えられた変更が自動的に URL を更新するのと同様に、[パス/クエリー] テーブルに自動的に反映されます。 

パラメーターの構成

パラメーターは、[パス] および [クエリー] タブで構成できます。

テンプレート パラメーター

[パス] タブでは、選択されている操作に対するテンプレート パラメーターを構成できます。たとえば、"/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

[クエリー] タブ

[クエリー] タブでは、送信されるメッセージの GraphQL クエリーを指定できます。

クエリーを指定する前に、GraphQL サービスでサポートされているメディア タイプを [コンテンツ タイプ] ドロップダウン リストから選択してください。リクエスト構造は、この選択に基づいて実行時に変換されます。使用可能なオプションは以下のとおりです。

コンテンツ タイプHTTP メソッドリクエスト構造
application/jsonPOST
HTTP ボディは、次の形式の JSON オブジェクトです。
{
  "query": "...",
  "operationName": "...",
   "variables": {
       "myVariable" : "..."
       }
}
application/graphql+jsonPOST上記の application/json と同じ。
application/graphqlPOSTHTTP ボディで送信されるクエリー。クエリー文字列で送信される変数とオペレーション名。
application/x-www-form-urlencodedPOSTHTTP ボディで URL エンコードされた文字列として送信されるクエリー、変数、およびオペレーション名。
N/AGETクエリー文字列のパラメーターとして送信されるクエリー、変数、およびオペレーション名。

次に、[入力モード] ドロップダウン リストから リテラル または スクリプト のいずれかを選択し、[テキスト] または [ファイル] オプションのいずれかを選択できます。[テキスト] オプションを使用すると、スクリプトをテキスト入力フィールドに手動で追加できます。[ファイル] オプションを使用すると、ツールが呼び出されたときに実行される外部スクリプト ファイルを参照できます。

ペイロードをリテラルからフォーム GraphQL に変換するときに、クエリーとフィールドの選択の順序が変更される場合があります。クエリーの順序を維持する必要がある場合は、リテラル モードで作業する必要があります。

[オペレーション名] フィールドに、実行時に送信する操作の名前を指定します。これは、クエリーに複数の操作が含まれている場合に特に重要です。

クエリーで宣言されている変数があれば、[変数] テーブルに追加します。

[HTTP オプション] タブ

HTTP オプションを使用すると、リクエストを送るためにどのプロトコル (HTTP 1.0 または 1.1) を使用するかを決定できるだけでなく、プロトコルに関連するさまざまなオプションを決定できます。 

[トランスポート] ドロップダウン リストから適切なプロトコルを選択し、そのプロパティを設定します。詳細については、以下のセクションで説明します。

SOAtest

Virtualize

クライアント ツールの内部トランスポート

レスポンダーに連結されたクライアントは、localhost、127.0.0.1、または特別なホスト名 host.virt.internal を使用して、HTTP 接続を消費することなく、ローカル サーバー上の仮想アセットにメッセージをルーティングできます。localhost または 127.0.0.1 を使用する場合、指定のポートは Virtualize がデプロイされているポートと一致する必要があります。host.virt.internal を使用する場合、指定のポートは使用されません。たとえば、http://localhost:9080/myVirtualAsset にデプロイされた仮想アセットには、http://host.virt.internal/myVirtualAsset を使用して、連結されたクライアントからアクセスすることもできます。

[その他] タブ

[その他] タブでは以下のオプションを設定できます。

  • 有効な HTTP レスポンス コード: ツールの動作をカスタマイズし、200 番台以外のHTTPレスポンス コードを成功とすることができます。コードおよび/またはコードの範囲をカンマで区切って入力します。たとえば「302, 500-599」を使用した場合、「302 のコード」 または「500 番台の任意のコード」が許容されます。  データ ソースに格納された値を使用する場合も、必ず同じフォーマットを使用してください (「302, 500-599」 など)。
  • タイムアウト (ミリ秒): FTP 、 telnet 、 HTTP リクエストをタイムアウトと見なす遅延時間をミリ秒で指定します。デフォルトは、 [設定] パネルに設定されたタイムアウト時間に対応します。[カスタム] を選択すると任意のタイムアウト時間を設定できます。タイムアウト時間を設定しない場合は、負の値を指定します。

    • タイムアウト時にテストは失敗する: 指定したタイムアウト時間でツールを失敗させるには、このオプションをオンにします。
    • タイムアウトが発生した場合だけテストは成功する: 指定のタイムアウト時間に達した場合に (つまり、テストが指定の時間内に完了しない場合に) ツールをパスさせるには、このオプションを選択します。
  • 送信メッセージのエンコード: ドロップダウン メニューから [カスタム] を選択し、送信メッセージのエンコーディングを選択します。デフォルトでは、直接の親テスト スイートで設定されたエンコーディングを使用します  (「クライアント オプションの指定」を参照)。このオプションは Parasoft 設定の [その他] でも指定できます。


  • No labels