2016-12-05 15 views
3

複数のシナリオを並列実行する場合のベストプラクティスはありますか?たとえば、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)) 

) 

} 

答えて

3

何をしているのかはまったく問題ありません。

設定を実行する方法によって、要求が並行して実行されていることがわかります。

+1

シナリオは:シナリオ( "シナリオ名")として構成されますか?exec(Search.search、Browse.browse、Edit.edit) 'は並行して実行されますか?または、3つのコンポーネントが順番に実行されますか? – Sergio

+1

@Sergio並行して実行され、順序どおりに実行されません。 –

+0

ありがとうございます。上のイディオムを並列実行に使用する必要があるときは、やはり混乱します。また、次のように別の「ユーザー」を使用する必要があるのはいつですか?setUp(users.inject(atOnceUsers(1)、admin.inject(atOnceUsers ))。プロトコル(httpConf)) 'あなたは明確にできますか? – Sergio

3

ギャトリングは、シナリオで定義された各アイテムがsequentiallyとして実行されるように、SetUp内の各アイテムを並行して実行します。あなたは、リンク

から見ることができるように、ユーザーの注入プロファイルの定義は 注入方式で行われます。このメソッドは、引数として一連のインジェクションのシーケンスを順番に処理される 個のステップをとります。

だからあなたの上記のコードは、並列にscenario01 ramp to 30 over x secondsscenario02 ramp to 70 over y secondsを実行します。

関連する問題