すべてのプロダクト
Search
ドキュメントセンター

Performance Testing:出力パラメーター

最終更新日:Jun 22, 2026

実際のストレステストシナリオでは、リクエストの応答から出力パラメーターを抽出し、抽出した情報を次のリクエストの入力として使用できます。単一の API で複数の出力パラメーターを定義できます。このトピックでは、出力パラメーターの抽出方法について説明します。

出力パラメーターの設定

image次の表に、出力パラメーターの要素を示します。

要素

説明

Output Parameter Name

出力パラメーターの名前です。名前には、文字、数字、アンダースコア (_)、ハイフン (-) を使用できます。名前は文字で始まる必要があります。

ソース

応答の解析メソッドです。次のいずれかの解析メソッドを選択できます。

  • Body : JSON:応答ボディを JSON フォーマットで解析します。

  • Body : TEXT:応答ボディをプレーンテキストとして解析します。

  • Header : K/V:応答ヘッダーをキーと値のペアとして解析します。

    説明

    Header : K/V を選択した場合、解析式は目的のヘッダーのキーになります。

  • Cookie : K/V:Cookie をキーと値のペアとして解析します。

  • 応答ステータスコード:応答からステータスコードを抽出します。

Parsing Expression

応答からコンテンツを抽出し、出力パラメーターとして使用するための解析式です。

Nth match

このパラメーターは、ソースBody : TEXT に設定されている場合にのみ適用されます。解析式で複数の一致が見つかった場合、このパラメーターを使用して 1 つを選択します。インデックスは 0 から始まります。-n のような負の数は、末尾から n 番目の一致を選択します。値は [-99, 99] の範囲内である必要があります。ランダムな一致を選択するには、random と入力します。

Body : JSON 解析メソッド

Body : JSON ソースタイプは、`Content-Type` ヘッダーが `application/json` および `text/json` の応答をサポートします。

PTS は、新旧両バージョンの JSONPath 構文をサポートしています。新旧バージョンの JSONPath 式の違いを明確にするため、以下のセクションでは、両バージョンの JSONPath 構造のサンプルと JSONPath 式の構文および説明を示します。

新しいバージョンの JSONPath 構文を使用することを推奨します。

JSONPath 式 (新バージョン)

次のサンプルコードは、新バージョンの JSONPath 構造の例です。次の表に、新バージョンの JSONPath 式の構文と説明を示します。

JSONPath 構造のサンプル

{
    "menu":{
        "header":"SVG Viewer",
        "items":[
            {
                "id":0
            },
            {
                "id":1,
                "label":"Open New"
            },
            null,
            {
                "id":2,
                "label":"Zoom In"
            },
            {
                "id":3,
                "label":"Zoom Out"
            },
            {
                "id":4,
                "label":"Original View"
            },
            null,
            {
                "id":5
            },
            {
                "id":6
            },
            {
                "id":7
            },
            null,
            {
                "id":8,
                "label":"Find..."
            },
            {
                "id":9,
                "label":"Find Again"
            },
            {
                "id":10
            },
            {
                "id":11,
                "label":"Copy Again"
            },
            {
                "id":12,
                "label":"Copy SVG"
            },
            {
                "id":13,
                "label":"View SVG"
            },
            {
                "id":14,
                "label":"View Source"
            },
            {
                "id":15,
                "label":"Save As"
            },
            null,
            {
                "id":16
            },
            {
                "id":17,
                "label":"About Adobe CVG Viewer..."
            }
        ]
    }
}

JSONPath 構文

説明

$

ルートオブジェクトです。たとえば、$.menu.header 式を指定すると、SVG Viewer が返されます。

[num]

配列内の要素を取得します。num 変数は数値を指定します。たとえば、$.menu.items[0] 式を指定すると、{"id":0} の値が返されます。

[num0,num1,num2...]

配列内の複数の要素を取得します。num 変数は数値を指定します。この場合、配列内の複数の要素が返されます。たとえば、$.menu.items[0,3] 式を指定すると、2 つの要素からなる配列が返され、3 で指定された要素は {"id":2,"label":"Zoom In"} です。

[start:end]

配列内の開始要素と終了要素で定義された範囲の要素を取得します。たとえば、$.menu.items[0:3] 式を指定すると、4 つの要素からなる配列が返されます。1 で指定された要素は {"id":1,"label":"Open New"} で、2 で指定された要素は null です。

[?(@.key)]

空でないオブジェクト属性を取得します。たとえば、$.menu.items[?(@.label)] 式を指定すると、12 個の要素からなる配列が返されます。12 個の要素は空でないラベルを持ち、最初の要素は {"id":1,"label":"Open New"} です。

[?(@.key > 123)]

比較演算によって数値型のオブジェクト属性を取得します。サポートされている比較演算子には、等しい (=)、等しくない (!=)、より大きい (>)、以上 (>=)、より小さい (<)、以下 (<=) があります。たとえば、$.menu.items[?(@.id > 5)] 式を指定すると、ID が 5 より大きい 12 個の要素からなる配列が返され、最初の要素は {"id":6} です。

[?(@.key = '123')]

比較演算によって文字列型のオブジェクト属性を取得します。サポートされている比較演算子には、等しい (=)、等しくない (!=)、より大きい (>)、以上 (>=)、より小さい (<)、以下 (<=) があります。たとえば、$.menu.items[?(@.label = 'Copy Again')] 式を指定すると、1 つの要素からなる配列が返され、返される要素は {"id":11,"label":"Copy Again"} です。

[?(@.key like 'aa%')]

like 句によって文字列型のオブジェクト属性を取得します。ワイルドカードとしてパーセント記号 (%) のみを使用できます。not like 句もサポートされています。たとえば、$.menu.items[?(@.label like 'Copy%')] 式を指定すると、2 つの要素からなる配列が返されます。2 つの要素は `Copy` 文字列を含むラベルを持ち、最初の要素は {"id":11,"label":"Copy Again"} です。$.menu.items[?(@.label not like 'Copy%')] 式を指定すると、10 個の要素からなる配列が返されます。10 個の要素は `Copy` 文字列を含まないラベルを持ち、最初の要素は {"id":1,"label":"Open New"} です。

[?(@.key rlike 'regexpr')]

正規表現によって文字列型のオブジェクト属性を取得します。Java 開発キット (JDK) の構文が使用され、not rlike 句もサポートされています。たとえば、$.menu.items[?(@.label rlike 'Copy ([A-Z]+)')] 式を指定すると、`Copy` 文字列と大文字を含むラベルを持つ 1 つの要素からなる配列が返されます。返される要素は {"id":12,"label":"Copy SVG"} です。$.menu.items[?(@.label not rlike 'Copy ([A-Z]+)')] 式を指定すると、11 個の要素からなる配列が返され、最初の要素は {"id":1,"label":"Open New"} です。

[?(@.key in ('v0', 'v1'))]

in 句によってオブジェクト属性を取得します。文字列型および数値型のオブジェクトがサポートされています。not in 句もサポートされています。たとえば、$.menu.items[?(@.id in (1, 2))] 式を指定すると、ID が 1 と 2 の 2 つの要素からなる配列が返され、最初の要素は {"id":1,"label":"Open New"} です。$.menu.items[?(@.id not in (1, 2))] 式を指定すると、ID が 1 または 2 ではない 16 個の要素からなる配列が返され、最初の要素は {"id":0} です。

[?(@.key between 234 and 456)]

between 句によってオブジェクト属性を取得します。数値型のオブジェクトがサポートされています。not between 句もサポートされています。たとえば、:$.menu.items[?(@.id between 0 and 3)] 式を指定すると、ID が 0 から 3 の範囲にある 4 つの要素からなる配列が返され、最初の要素は {"id":0} です。

length() or size()

配列内の要素数を取得します。たとえば、$.menu.items.size() または $.menu.items.length() 式を指定すると、22 が返されます。

..

特定の属性を取得します。たとえば、$.menu.items..id 式を指定すると、18 個の要素からなる配列が返されます。各要素は ID 値に対応します。

*

オブジェクト内のすべての属性を取得します。たとえば、$.menu.items.* 式を指定すると、items 配列内のすべてのデータが返されます。

randomIndex()

配列内のランダムな要素を取得します。たとえば、$.menu.items[randomIndex()] 式を指定すると、items 配列のランダムな要素が返されます。

['key']

属性を取得します。たとえば、$['menu']['items'] 式を指定すると、items 配列の値が返されます。

['key0','key1']

複数の属性を取得します。たとえば、$['menu']['items'][3]['id', 'label'] 式を指定すると、2 つの要素からなる配列が返されます。返される ID は 2 で、返されるラベルは Zoom In です。

説明

$.store.book[0].title$['store']['book'][0]['title'] 式のセマンティクスは同じです。

JSONPath 式 (旧バージョン)

次のサンプルコードは、旧バージョンの JSONPath 構造の例です。次の表に、旧バージョンの JSONPath 式の構文と説明を示します。

{
    "info": "success",
    "message": "Succeeded.",
    "data": {
        "id":13509, "code":0,
        "items": [
            {"name": "name1", "value": "1234"},
            {"name": "name2", "value": "8448"},
            {"name": "name3", "value": "1298"},
            {"name": "name4", "value": "3049"},
            {"name": "name5", "value": "7648"}
        ]
    }
}
            

出力パラメーター値

旧バージョンの解析式

新バージョンの解析式 (比較用)

info オブジェクトの値。

info

$.info

data 配列の ID 値。

data.id

$.data.id

items 配列の最初の要素の値。相対位置がサポートされています。

data.items[0].value

$.data.items[0].value

items 配列の最後から 2 番目の要素の値。相対位置がサポートされています。

data.items[-2].value

サポートされていません

items 配列全体。

data.items[ALL]

$.data.items[*]

items 配列のランダムな要素。

data.items[RANDOM]

$.data.items[randomIndex()]

Body : TEXT 解析メソッド

Body : TEXT ソースタイプは、任意のテキスト形式をサポートし、正規表現を使用してデータを抽出します。正規表現で複数の一致が見つかった場合、インデックスでどの一致を使用するかを指定できます。デフォルトのインデックスは 0 で、最初の一致を選択します。

次のサンプルコードは、API 応答の例です。

<input name="id" value="34729XXXX">
<input name="token" value="acdfo4dfopasdf44dXXXX">
...
<script>
    var planId=4587;
    var planId=5689;
    var planId=8906;
</script>
            

目的の値

Parsing Expression

N 番目の一致

名前が id の値。

<input name="id" value="([0-9]*)">

0

名前が token の値。

name="token" value="([A-Za-z0-9]*)"

0

3 番目の PlanID 要素の値。

var planId=([0-9]*);

2

ランダムな PlanID 要素の値。

var planId=([0-9]*);

random

フォーマット規則:

  • スキャンはレスポンスボディの先頭から開始されます。式に一致する最初の値が使用され、スキャンは停止します。したがって、複数の一致のいずれかが許容される場合を除き、解析式が目的の値のみに一致するように十分に具体的であることを確認してください。

  • 一致するテキストには、中括弧 ({}) や丸括弧 (()) などの特殊文字を含めることはできません。

  • 正規表現を使用して JSON 応答から情報を抽出する場合、キーと値のペアのキーと値の間のコロンの後にスペースを追加する必要はありません。JSON データの視覚効果を最適化するために、各キーと値のペアのキーと値の間のコロンの後にスペースを追加できます。

Cookie : K/V および Header : K/V 解析メソッド

Cookie : K/V および Header : K/V 解析メソッドは、それぞれ Cookie フィールドと Header フィールドを抽出するために使用されます。解析式で抽出したいキーを指定できます。たとえば、Cookie フィールドに token=1234;path=/ が含まれており、token の値を抽出したい場合は、解析式に token と入力します。

ステータスコード解析メソッド

ステータスコード解析メソッドを使用して、リクエストの応答ステータスコードを抽出できます。ほとんどの場合、この解析メソッドはチェックポイントや条件付きジャンプに使用します。ステータスコードが異なると、返されるページ情報も異なります。

JDBC ノードの出力パラメーター

SQL クエリの結果から出力パラメーターを抽出するには、[Body : JSON] ソースを選択します。結果は次の JSON オブジェクトとして構造化されています:

{
    "data": [
        
         {
             "Column 1": "value",
             "Column 2": "value"
           },
         
           {
              "Column 1": "value",
              "Column 2": "value"
           }
           ...
  ]
}

たとえば、次のテーブルは SQL クエリの結果を示しています。最初の行の name 列の値 (name1) を出力パラメーターとして解析するとします。

id

name

1

name1

2

name2

次の解析式を使用します。

$.data[0].name

出力パラメーターのデバッグ

解析式が正しいかどうかを判断できない場合は、シナリオデバッグで解析式と関連する出力パラメーターをデバッグできます。次のステップを実行します。

  • PTS Scenarioページで、下部にある Debugをクリックします。表示される Debug Scenarioダイアログボックスで、シナリオ名をクリックします。右側の詳細ペインで API を選択し、Click to test the regular expression for the output parameterをクリックします。

  • 表示されるダイアログボックスで、ソースタイプを選択し、解析式を入力し、N 番目の一致を指定し、出力パラメーター名を入力します。Test Expressionをクリックします。応答の詳細と一致結果を照合して、抽出されたコンテンツが正しいことを確認します。

  • 構成を保存するには、Sync Output Parameterをクリックして、この式を API の出力パラメーターのリストに追加します。

    説明

    シナリオのデバッグが完了した後、出力パラメーターを同期した場合は、ストレステストのシナリオ設定タブに戻ります。その API の Output Parameter Definitionタブで、同期された出力パラメーターの名前を設定する必要があります。

例:出力パラメーターの設定

財務管理ビジネスでは、顧客の消費能力に基づいて適切なサービスを推奨したい場合があります。この場合、各顧客の消費能力レベルを出力パラメーターとして抽出し、その出力パラメーターを使用してサービスを推奨する必要があります。

次のステップを実行します。

  1. PTS コンソールにログインし[パフォーマンステスト] > [シナリオの作成] を選択して、[PTS] をクリックします。

  2. PTS Scenarioページで、消費能力を取得し、プロダクトを推奨するための API を追加します。たとえば、それぞれ消費能力 (出力パラメーター付き)プロダクト推奨という名前を付け、それぞれの URL を入力します。

  3. 消費能力 (出力パラメーター付き) API について、応答から消費能力情報を抽出するための出力パラメーターを設定します。出力パラメーター名 (例:output) と解析式 (例:data.items[0].value) を入力します。

  4. PTS Scenarioページの左下隅にあるパラメーターリストをクリックします。カスタムパラメータータブで、作成した出力パラメーターを表示できます。パラメーター名 (例:output) またはコピーアイコン 复制图标 をクリックして、パラメーターリファレンスをクリップボードにコピーします。

  5. プロダクト推奨 API の設定で、Body Definitionタブに移動します。コピーしたパラメーターリファレンスを本文に貼り付けます。image

    文字列、パラメーター、または関数を組み合わせるなど、本文のコンテンツを編集することもできます。