🐈
Postman を使ったシナリオ付き負荷試験 その2:確率で失敗するAPI呼び出し:Evaluateブロックとifブロック
前回の記事ではPostmanを活用したAPI呼び出しの負荷試験について紹介しました。そのままでは単独API呼び出しに対する機能が提供されるだけですがFlowsと組み合わせることで複数のAPI呼び出しを組み込んだシナリオ付き負荷試験も可能となることをテストしました。
今日はさらにシナリオを作りこむための確率による条件分岐を試していきます。
確率による条件分岐
例えば、stresstest
というAPIをまず呼び出すとします。この次のステップとして処理が完了した場合success
、処理が失敗した場合fail
というAPIを呼び出したいとします。しかしながら意外と処理を失敗させるのは難しくsuccess
とfail
が混ざるテストを行うのは難しかったりします。これをFlowsのEvaluate
ブロックとif
ブロックで実現していきます。
さっそくやってみる
例えばこのようなテストシナリオを想定します。普通ならstresstest
のレスポンスステータスコードが例えば5xx
や4xx
の場合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