複数のシナリオの並列実行のベストプラクティスは何ですか?たとえば、30%のユーザーがシナリオ1を実行し、70%のユーザーがシナリオ2を実行します。
以下のコードは正しい方法ですか、それともRESTの呼び出しを定期的に実行するシナリオを1つ作成する方がよいでしょうか?
class MySimulation extends Simulation {
val userIdsData = csv(userIdsCSV).queue
...
val scenario1 = scenario("Scenario 1")
.feed(userIdsData)
.get(...)
val scenario2 = scenario("Scenario 2")
.feed(userIdsData)
.get(...)
.post(...)
setUp(scenario1.inject(rampUsers(30) over (ramp seconds))
.protocols(HttpConfig.value(baseURL)),
scenario2.inject(rampUsers(70) over (ramp seconds))
.protocols(HttpConfig.value(baseURL))
)
}
あなたがしていることは何でも絶対に大丈夫です。
セットアップの実行方法を見ると、リクエストが並行して実行されていることがわかります。
ガトリングはSetUp内の各アイテムを並行して実行します。シナリオで定義された各アイテムは 順次 で実行されます。リンクからわかるように
ユーザーのインジェクションプロファイルの定義は、injectメソッドを使用して行われます。このメソッドは、連続して処理される一連の注入ステップを引数として取ります。
したがって、上記のコードはscenario01 ramp to 30 over x seconds
とscenario02 ramp to 70 over y seconds
を並行して実行します。