2016-03-25 12 views
0

Koşullamaların (senaryolara dayalı olarak), Gatling'de mümkün olup olmadığını bilmek istiyorum.Koşullandırma senaryolarına dayanan koşullu koşullar

Ben mitralyöz bir giriş sonrası gibi pek 2.1.7 vardır: bir çift senaryoları ile birlikte

.exec(http("User login") 
      .post("/api/user_login") 
      .headers(Headers.headers_1)) 

:

val user1 = scenario("user1").exec(
    Action.login, 
    Action.addDocument, 
    Action.logout 
) 
val user2 = scenario("user2").exec(
    Action.login, 
    Action.deleteDocument, 
    Action.logout 
) 

setUp(
    user1.inject(atOnceUsers(1)) 
    user2.inject(atOnceUsers(1)) 
).protocols(httpProtocol) 

Her kullanıcı sahiptir (başlığındaki) ayrı giriş kimlik bilgileri ve Uygulama ile yalnızca belirli şekillerde etkileşimde bulunabilir.

Yani (sözde kodda) Gatling böyle bir şeyi destekliyor mu?

.exec(http("User login") 
      .post("/api/user_login") 
      .doIf(scenario == "users1") { 
       .headers(Headers.headers_1) // login info for user1 
      } 
      .doIf(scenario == "users2") { 
       .headers(Headers.headers_2) // login info for user2 
      }) 

cevap

1

O io.gatling.core.session.Session den scenarioName almak mümkündür:

http("User login") 
    .post("/api/user_login") 
    .headers(if(session.scenarioName.equals("user1")) Headers.headers_1 else Headers.headers_2) 
    session 

Ama, actions size parametrelerini kullanmak için bir seçenek olabilir:

def login(header: Map[String, String]) = { 
    http("User login") 
    .post("/api/user_login") 
    .headers(header) 
} 
//... 
Action.login(Headers.headers_1),