2016-07-12 9 views
0

Я пытаюсь динамически создавать заголовки для каждого запроса с помощью питателя JSon в Гатлинга, используя следующий код:Динамический заголовок в тесте Гатлинга нагрузки

import io.gatling.core.Predef._ 
import io.gatling.http.Predef._ 
import scala.concurrent.duration._ 

class LoadTest extends Simulation { 

val httpConf = http 
.baseURL("http://example.com") 

val tokensFeeder = jsonFile("Tokens.json"); 

val user1 = scenario("Download") 
    feed(tokensFeeder) 
    .exec(
    http("req") 
    .post("/download") 
    .headers("${header}") 
    .body(StringBody("""{ "Device_Type":"iOS","Locations":[{"Latitude":"51.50719197","Longitude":"-0.127214091"}] }""")).asJSON 
) 

setUp(
user1.inject(atOnceUsers(2)) 
).protocols(httpConf) 
} 

Где Tokens.json имеет данные в следующем формате:

[ 
    {"header" : {"token" : "12234"}}, 
    {"header" : {"token" : "12235"}}, 
    {"header" : {"token" : "12236"}} 
] 

Однако я получаю следующее сообщение об ошибке:

type mismatch; 
found : String("${header}") 
required: Map[String,String] 
11:23:07.862 [ERROR] i.g.c.ZincCompiler$ -   .headers("${header}") 
11:23:07.864 [ERROR] i.g.c.ZincCompiler$ -     ^
11:23:07.908 [ERROR] i.g.c.ZincCompiler$ - one error found 
11:23:07.910 [ERROR] i.g.c.ZincCompiler$ - Compilation crashed 
sbt.compiler.CompileFailed: null 

Это мое понимание т штыри содержат вектор карт, поэтому не следует «$ {header}» оценивать до {токена: 12234}?

Любая помощь будет оценена по достоинству.

ответ

1

Fixed со следующими изменениями к заголовкам:

.headers(Map("token" -> "${header.token}"))