実際のパフォーマンステストのシナリオでは、リクエストのレスポンスから出力パラメーターを抽出し、抽出された情報を次のリクエストの入力として使用できます。 1 つの API に複数の出力パラメーターを定義できます。このトピックでは、出力パラメーターを抽出する方法について説明します。
出力パラメーターの設定
次の表は、出力パラメーターの要素について説明しています。
要素 | 説明 |
出力パラメーター名 | 出力パラメーターの名前。名前に使用できるのは、英字、数字、アンダースコア(_)、ハイフン(-)です。名前は英字で始める必要があります。 |
ソース | レスポンスの解析方法。次の解析方法のいずれかを選択できます。
|
解析式 | レスポンスから出力パラメーターとして使用するコンテンツを抽出するために使用される解析式。 |
N番目の一致 | このパラメーターは、ソース パラメーターを 本文 : TEXT に設定した場合にのみ使用できます。指定した解析式がレスポンスに複数一致する場合、このパラメーターを使用して、出力パラメーターとして使用する文字列の序数を指定します。序数は 0 から始まります。負の値は、末尾から N 番目の文字列を指定します。有効な値:-99~99。ランダムな文字列を出力パラメーターとして使用する場合、random と入力します。 |
本文 : JSON 解析方法
次のタイプのレスポンスがサポートされています:application/json および text/json。
PTS は、新旧両方のバージョンの JSONPath 構文をサポートしています。JSONPath 式の新旧バージョンの違いを明確にするために、以下のセクションでは、両方のバージョンの JSONPath 構造のサンプルと、JSONPath 式の構文と説明を示します。
JSONPath 構文の新バージョンを使用することをお勧めします。
JSONPath 式(新バージョン)
次のサンプルコードは、JSONPath 構造の新しいバージョンの例を示しています。次の表は、JSONPath 式の新しいバージョンの構文と説明を示しています。
JSONPath 構文 | 説明 |
$ | ルートオブジェクト。 |
[num] | 配列内の要素の取得。num 変数は数値を指定します。 |
[num0,num1,num2...] | 配列内の複数の要素の取得。num 変数は数値を指定します。この場合、配列内の複数の要素が返されます。 |
[start:end] | 配列内の開始要素と終了要素で定義された範囲の要素の取得。 |
[?(@.key)] | 空でないオブジェクト属性の取得。 |
[?(@.key > 123)] | 比較演算による数値型オブジェクト属性の取得。サポートされている比較演算子には、等しい(=)、等しくない(!=)、より大きい(>)、以上(>=)、より小さい(<)、以下(<=)があります。 |
[?(@.key = '123')] | 比較演算による文字列型オブジェクト属性の取得。サポートされている比較演算子には、等しい(=)、等しくない(!=)、より大きい(>)、以上(>=)、より小さい(<)、以下(<=)があります。 |
[?(@.key like 'aa%')] | like 句による文字列型オブジェクト属性の取得。ワイルドカードとして使用できるのはパーセント記号(%)のみです。not like 句もサポートされています。 |
[?(@.key rlike 'regexpr')] | 正規表現による文字列型オブジェクト属性の取得。JDK(Java Development Kit)構文が使用され、not rlike 句もサポートされています。 |
[?(@.key in ('v0', 'v1'))] | in 句によるオブジェクト属性の取得。文字列型と数値型のオブジェクトがサポートされています。not in 句もサポートされています。 |
[?(@.key between 234 and 456)] | between 句によるオブジェクト属性の取得。数値型オブジェクトがサポートされています。not between 句もサポートされています。 |
length() or size() | 配列内の要素数の取得。 |
.. | 特定の属性の取得。 |
* | オブジェクト内のすべての属性の取得。 |
randomIndex() | 配列内のランダムな要素の取得。 |
['key'] | 属性の取得。 |
['key0','key1'] | 複数の属性の取得。 |
$.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 オブジェクトの値。 |
|
|
data 配列の ID 値。 |
|
|
items 配列の最初の要素の値。相対位置がサポートされています。 |
|
|
items 配列の最後から 2 番目の要素の値。相対位置がサポートされています。 |
| サポートされていません |
items 配列全体。 |
|
|
items 配列のランダムな要素。 |
|
|
本文 : 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 の値。 |
| 0 |
name が token の値。 |
| 0 |
3 番目の PlanID 要素の値。 |
| 2 |
ランダムな PlanID 要素の値。 |
| 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 の [出力パラメーターの定義] タブで、同期された各出力パラメーターの名前を指定します。
例:出力パラメーターの設定
財務管理業務では、顧客の消費能力に基づいて適切なサービスを推奨したいと考えています。この場合、各顧客の消費能力レベルを出力パラメーターとして抽出し、出力パラメーターを使用してサービスを推奨する必要があります。
次の手順を実行します。
PTS console にログインし、 を選択し、 をクリックします。PTS
PTS シナリオ ページで、消費能力(出力パラメーターを含む) および 商品推奨 という名前の API を追加し、対応する URL を入力します。
消費能力(出力パラメーターを含む) という名前の API では、リクエストのレスポンスの詳細に基づいて、消費能力に関する情報が出力パラメーターとして抽出されます。output などの出力パラメーター名と、
data.items[0].valueなどの解析式を入力します。PTS シナリオ ページの左下隅にある [パラメーター] をクリックします。表示されるパネルの [カスタムパラメーター] タブで、作成された出力パラメーターを表示します。output などの出力パラメーター名をクリックするか、出力パラメーターに対応する
アイコンをクリックします。パラメーターの内容が自動的にコピーされます。商品推奨 という名前の API の本文で、抽出された出力パラメーターを指定します。[本文の定義] タブのテキストエディターに、パラメーターの内容を貼り付けます。

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