2017-01-09 4 views
1

- 私は初期化されたit'sが定義されていない、ここで私は最初のシナリオの繰り返しで、いくつかのステップを実行したいガトリング、私のコードdoIfは、セッション

def create(): ScenarioBuilder = { 
    scenario(name) 
     .exec(session => session.set("DEBUG", debug_set)) 
     .exec(session => session.set("client_id", session.userId)) 
     .doIf(session => session("initialized").asOption[String].isEmpty) { 
     exec(Identity.getIdentityToken) 
     exec(session => session.set("initialized", "true")) 
     } 
     .exitHereIfFailed 
     .during(Duration(15, MINUTES)) { 
     exec(X.setupVars) 
      .exec(X.create) 
      .pause(Duration(1, SECONDS)) 
      .exec(X.get) 
     } 
    } 
} 

どういうわけか最初の反復を使用しようと取り組んでいません私はログにステップの1つの実行を見ないので、そこには到達していません。

私は間違っていますか?

答えて

10

1ドットは、あなたのdoIf第二execのために欠落しています。同様

.doIf(session => session("initialized").asOption[String].isEmpty) { 
    exec(Identity.getIdentityToken) 
    .exec(session => session.set("initialized", "true")) 
} 

乾杯、
ポール:)
ガトリングチーム

+0

ガトリングは文句ができるが!たくさんありがとうございましたブロックを実行してブロックを実行しないでください。 – paul

+0

ガトリングがこれをチェックする方法はほとんどありません。あなたがやっていることは、メソッド呼び出しによって返された値を破棄することです。 AFAIKはJavaコンパイラでもこれをチェックせず、SonarQubeのような静的解析ツールだけがいくつかの警告を出します。 –

+0

シナリオのスコープがユーザー/シナリオごとに異なるため、すべてのシナリオでこれがなぜ実行されたのか、考えてみてください。ユーザー/シナリオ間でこれらのセッション値を共有する方法このシナリオにつき100人のユーザーがいますが、100回初期化したくありません。 – paul

関連する問題