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

Performance Testing:出力パラメーター

最終更新日:Jan 08, 2025

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

出力パラメーターの設定

image次の表は、出力パラメーターの要素について説明しています。

要素

説明

出力パラメーター名

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

ソース

レスポンスの解析方法。次の解析方法のいずれかを選択できます。

  • 本文 : JSON: レスポンス本文を JSON 形式で解析します。

  • 本文 : TEXT: レスポンス本文を TEXT 形式で解析します。

  • ヘッダー : K/V: レスポンスヘッダーをキーと値のペア形式で解析します。

    説明

    ヘッダー : K/V 解析方法を選択した場合、指定する解析式は標準の MIME(Multipurpose Internet Mail Extensions)タイプの形式である必要があります。

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

  • ステータスコード: レスポンスのステータスコードを抽出します。

解析式

レスポンスから出力パラメーターとして使用するコンテンツを抽出するために使用される解析式。

N番目の一致

このパラメーターは、ソース パラメーターを 本文 : TEXT に設定した場合にのみ使用できます。指定した解析式がレスポンスに複数一致する場合、このパラメーターを使用して、出力パラメーターとして使用する文字列の序数を指定します。序数は 0 から始まります。負の値は、末尾から N 番目の文字列を指定します。有効な値:-99~99。ランダムな文字列を出力パラメーターとして使用する場合、random と入力します。

本文 : JSON 解析方法

次のタイプのレスポンスがサポートされています:application/json および text/json。

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

JSONPath 構文の新バージョンを使用することをお勧めします。

JSONPath 式(新バージョン)

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

JSONPath 構造のサンプル

{
    "menu":{ // メニュー
        "header":"SVG Viewer", // ヘッダー
        "items":[ // アイテム
            {
                "id":0 // ID
            },
            {
                "id":1, // ID
                "label":"Open New" // ラベル
            },
            null,
            {
                "id":2, // ID
                "label":"Zoom In" // ラベル
            },
            {
                "id":3, // ID
                "label":"Zoom Out" // ラベル
            },
            {
                "id":4, // ID
                "label":"Original View" // ラベル
            },
            null,
            {
                "id":5 // ID
            },
            {
                "id":6 // ID
            },
            {
                "id":7 // ID
            },
            null,
            {
                "id":8, // ID
                "label":"Find..." // ラベル
            },
            {
                "id":9, // ID
                "label":"Find Again" // ラベル
            },
            {
                "id":10 // ID
            },
            {
                "id":11, // ID
                "label":"Copy Again" // ラベル
            },
            {
                "id":12, // ID
                "label":"Copy SVG" // ラベル
            },
            {
                "id":13, // ID
                "label":"View SVG" // ラベル
            },
            {
                "id":14, // ID
                "label":"View Source" // ラベル
            },
            {
                "id":15, // ID
                "label":"Save As" // ラベル
            },
            null,
            {
                "id":16 // ID
            },
            {
                "id":17, // ID
                "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')]

正規表現による文字列型オブジェクト属性の取得。JDK(Java Development Kit)構文が使用され、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, // ID、コード
        "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()]

本文 : TEXT 解析方法

すべてのテキスト形式がサポートされています。正規表現を使用して情報を抽出できます。正規表現に複数の一致がある場合は、どの値を使用するかを指定できます。デフォルトでは、0 は最初の一致を示します。

次のサンプルコードは、API レスポンスの例を示しています。

<input name="id" value="34729XXXX"> <!-- id、値 -->
<input name="token" value="acdfo4dfopasdf44dXXXX"> <!-- トークン、値 -->
...
<script> <!-- スクリプト -->
    var planId=4587; <!-- プランID -->
    var planId=5689; <!-- プランID -->
    var planId=8906; <!-- プランID -->
</script>
            

出力パラメーター値

解析式

N番目の一致

name が id の値。

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

0

name が 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 および ヘッダー : K/V 解析方法

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

ステータスコード解析方法

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

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

SQL クエリ結果から出力パラメーターを抽出するには、前のセクションで説明した 本文 : JSON 解析方法 を選択する必要があります。次のサンプルコードは、JSON データ構造の例を示しています。

{ // データ
    "data": [ // データ
        
         { // 列1、列2
             "Column 1": "value", // 列 1
             "Column 2": "value" // 列 2
           },
         
           { // 列1、列2
              "Column 1": "value", // 列 1
              "Column 2": "value" // 列 2
           }
           ...
  ]
}

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

id

name

1

name1

2

name2

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

$.data[0].name

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

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

  • PTS シナリオ ページの下部にある [デバッグ] をクリックします。[シナリオのデバッグ] ダイアログボックスで、シナリオの名前をクリックします。シナリオの詳細は、ダイアログボックスの右側に表示されます。シナリオの詳細から API を選択し、[出力パラメーターの正規表現をテストするには、ここをクリックします] をクリックします。

  • 表示されるダイアログボックスで、ソース形式を選択し、正規表現を入力し、N番目の一致パラメーターの値を指定し、出力パラメーターの名前を入力して、[式のテスト] をクリックします。レスポンスの詳細に基づいて一致結果が取得され、抽出されたコンテンツが期待どおりであるかどうかが予測されます。

  • 出力パラメーターをリセットする場合、[出力パラメーターの同期] をクリックして、正規表現を API の出力パラメーターリストに同期します。

    説明

    シナリオのデバッグが完了したら、シナリオに出力パラメーターが同期されている場合は、[シナリオ設定] タブに戻る必要があります。対応する API の [出力パラメーターの定義] タブで、同期された各出力パラメーターの名前を指定します。

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

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

次の手順を実行します。

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

  2. PTS シナリオ ページで、消費能力(出力パラメーターを含む) および 商品推奨 という名前の API を追加し、対応する URL を入力します。

  3. 消費能力(出力パラメーターを含む) という名前の API では、リクエストのレスポンスの詳細に基づいて、消費能力に関する情報が出力パラメーターとして抽出されます。output などの出力パラメーター名と、data.items[0].value などの解析式を入力します。

  4. PTS シナリオ ページの左下隅にある [パラメーター] をクリックします。表示されるパネルの [カスタムパラメーター] タブで、作成された出力パラメーターを表示します。output などの出力パラメーター名をクリックするか、出力パラメーターに対応する 复制图标 アイコンをクリックします。パラメーターの内容が自動的にコピーされます。

  5. 商品推奨 という名前の API の本文で、抽出された出力パラメーターを指定します。[本文の定義] タブのテキストエディターに、パラメーターの内容を貼り付けます。image

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