ストレステストのシナリオにおいて、前のリクエストの応答値に応じて呼び出す API を変えるなど、分岐ロジックが必要になることがあります。このような場合、条件判断命令を使用することで、指定した条件を満たしたときにのみ特定の API を実行するように制御できます。
条件ロジックの仕組み
PTS は、シナリオエディターでの配置方法によって決まる、2つの論理関係をサポートしています。
| 配置 | 論理関係 | 動作 |
|---|---|---|
| ネスト (ある条件を別の条件内に入れる) | AND | API を実行するには、すべての条件が true である必要があります |
| 並列 (条件を同じレベルに配置する) | OR | いずれかの条件が true であれば API が実行されます |
PTS はストレステスト中に条件を順番に評価します。API は、そのブランチの条件が満たされた後にのみ実行されます。
条件でサポートされる値のタイプ
条件内の判断オブジェクトと比較値は、次のタイプをサポートしています。
| 値のタイプ | サポート | 説明 |
|---|---|---|
| 文字列リテラル | はい | "success" や "200" |
| レスポンスパラメーター | はい | シナリオ内の前の API から抽出された出力値 |
| グローバルパラメーター | はい | シナリオレベルで定義されたパラメーター |
| カスタムパラメーター | はい | ユーザー定義の変数 |
| ファイルパラメーター | はい | 外部データファイルからロードされた値 |
| システム関数 | いいえ | 判断オブジェクトまたは比較値として使用できません |
| パラメーターと文字列の混合式 | いいえ | パラメーターと文字列の連結はサポートされていません |
複数の値やパターンに一致させるには、比較値で正規表現を使用します。
条件判断命令の追加
PTS コンソールにログインし、[性能テスト] > [シナリオの作成] を選択します。[PTS] をクリックします。
HTTP ノードのリクエストパラメーターを設定します。詳細については、「リクエストの基本パラメーター」をご参照ください。
後続の条件が出力値を参照できるように、最初の API のレスポンスパラメーターを設定します。詳細については、「API のレスポンスパラメーター」をご参照ください。

[ビジネスセッション] セクションで、[命令の追加] ドロップダウンリストをクリックし、[条件判断] を選択します。
[条件判断の開始] を展開し、[条件] パラメーターを設定します。

条件判断命令は、開始ブロックと終了ブロックのペアで使用する必要があります。判断オブジェクトは、ファイルパラメーター、前の API からのレスポンスパラメーター、またはカスタムパラメーターなどのパラメーターを参照する必要があります。
例
AND 条件:両方の条件が true である必要がある場合
目標:para が 10 以上 100 以下の場合にのみ API を実行する。
ロジック:para >= 10 AND para <= 100
設定:2番目の条件 (para <= 100) を最初の条件 (para >= 10) の中にネストします。ネストすることで AND 関係が作成され、API を実行するには両方の条件が true である必要があります。

OR 条件:いずれかの条件が満たされればよい場合
目標:para が 10 から 100 の範囲外の場合に API を実行する。
ロジック:para < 10 OR para > 100
設定:両方の条件を同じレベル (並列) に配置し、各ブランチの下に同じ API 呼び出しを追加します。並列配置により OR 関係が作成され、いずれかの条件が true であれば API が実行されます。

AND/OR の組み合わせ条件
目標:para3 が 100 に等しく、かつ para4 > 100 または para4 < 10 のいずれかである場合に API を実行する。
ロジック:para3 = 100 AND (para4 > 100 OR para4 < 10)
設定:2つの OR 条件 (para4 > 100 と para4 < 10) を同じレベルに配置し、それらを AND 条件 (para3 = 100) の中にネストします。外側の条件が true であり、かつ内側の条件の少なくとも1つが true である必要があります。
