🐈

Postman を使ったシナリオ付き負荷試験 その2:確率で失敗するAPI呼び出し:Evaluateブロックとifブロック

2025/03/10に公開

前回の記事ではPostmanを活用したAPI呼び出しの負荷試験について紹介しました。そのままでは単独API呼び出しに対する機能が提供されるだけですがFlowsと組み合わせることで複数のAPI呼び出しを組み込んだシナリオ付き負荷試験も可能となることをテストしました。
https://zenn.dev/kameoncloud/articles/c3b6f6a2ac3445

今日はさらにシナリオを作りこむための確率による条件分岐を試していきます。

確率による条件分岐

例えば、stresstestというAPIをまず呼び出すとします。この次のステップとして処理が完了した場合success、処理が失敗した場合failというAPIを呼び出したいとします。しかしながら意外と処理を失敗させるのは難しくsuccessfailが混ざるテストを行うのは難しかったりします。これをFlowsのEvaluateブロックとifブロックで実現していきます。

さっそくやってみる


例えばこのようなテストシナリオを想定します。普通ならstresstestのレスポンスステータスコードが例えば5xx4xxの場合failを呼び出すのですが、際限が難しい場合stresstestと次のAPIコールの間にまずはEvaluateブロックを挿入します。

Math.random() < 0.9 ? "firstApi" : "secondApi";

こうした場合90%の確率でfirstApi、10%の確率でsecondApiが次のブロックに渡されます。次にifブロックがこれを受け取ります。

こうすることで90%がTHEN、10%がELSEへ分岐します。

random()による乱数値のセット

EvaluateブロックはAPI呼び出しパラメータにおける乱数値のセットにも使えます。
例えば以下のコレクションを作成します。

{{random}}として変数がセットされています。
FlowsのEvaluateブロックからこのようにして乱数をセットできます。

Discussion