2017-05-31 5 views
0

私のGatlingのシナリオでは、値はユーザのセッションに格納されます。 後で同じシナリオで、フィードが呼び出され、カスタムフィーダが渡されます。カスタムフィーダーは、セッション内に格納された値を使用して次の値を生成する必要があります。Gatlingのフィーダ内からセッションに格納された値にアクセスする方法

val MyScenario = scenario("ScenerioName") 
    .repeat(10, "repetition") { 
    exitBlockOnFail { 
     group("WorkflowGroupName") { 
     exec(session => { 
      // SETTING A VALUE INTO THE USER'S SESSION 
      session.set("sessionVariable", 99) // value that is stored changes for every run of the workflow (99 just for example purposes) 
     }) 
     // CUSTOM FEEDER THAT GENERATES ITS NEXT VALUE USING THE SESSION VARIABLE 'sessionVariable' STORED ABOVE 
     .feed(myFeeder) 
     .group("RequestGroup1") { 
      exec(httpPost1) 
     } 
     } 
    } 
    } 

val myFeeder = Iterator.continually(Map("jsonFileValue" -> { 

    // WANT TO RETRIEVE VALUE OF 'sessionVariable' STORED IN THE SESSION 
    val returnValue = /* logic that generates its value based on value of 'sessionVariable' retrieved */ 
    returnValue 

} 
)) 

val httpPost1 = http("Request1") 
    .post("http://IPAddress/service.svc") 
    .headers(httpHeaders) 
    .body(ELFileBody("MyJsonFile.json")) 
    .check(status.is(200)) 
val httpHeaders = Map(
    "Content-Type" -> "application/json; charset=UTF-8", 
    "X-Pod" -> "" 
) 

この保存されたセッション値をフィーダに渡す方法、またはフィーダがセッションからこの値を取得する方法はありますか? documentation状態として

答えて

0

:たまに

、あなたは 上のセッションからいくつかの情報を依存注入されたデータをフィルタリングすることができます。

フィーダはこれを単なる反復子なので、これを達成できません。そのため、 というコンテキストは認識されません。

あなたの値は実行するテストとは無関係であれば、テストを実行する前にcsvを生成し、テストにこのcsvをフィードするのが良い方法でしょう。

関連する問題