0

我在加特林写了这个简单的测试

val createUser = http("create user")
  .post("form/submit")
  .body(StringBody(RequestBuilder.createRandomUser())).asJSON
  .check(status.is(200))

setUp(
  scn.inject(
     atOnceUsers(25),
     rampUsers(10) over (5 seconds),
     constantUsersPerSec(30) during(10 minutes)
  )
).protocols(httpConf)

我测试了超过 10000 次调用的 createRandomUser 方法,它总是生成随机用户。

但是这段代码在 Gatling 内部运行时,仅在 10 秒内就开始抱怨重复用户

我怀疑 Gatling 中的每个用户都会调用我的随机方法一次,但随后会重复使用同一个对象。

我做了一些谷歌搜索并找到了Feeders

val feeder = Iterator.continually(Map("user"  -> 
    (RequestBuilder. createRandomUser(emails))))

val createUser = http("create user")
  .post("form/submit")
  .body(StringBody(feed(feeder))).asJSON
  .check(status.is(200))

但这不起作用。

我怎样才能确保每次发出请求......我的随机数据方法被调用。

4

1 回答 1

1

我在这里找到了答案

https://www.reddit.com/r/scala/comments/6p1za3/any_gatling_experts_here/dkm64nc/

val feeder = Iterator.continually(Map("user" -> (RequestBuilder.createRandomRequest())))

def createRespondent = http("createuser")
   .post("form/submit")
   .body(StringBody("${user}").asJSON
   .check(status.is(200))

scenario("my load test")
    .feed(feeder)
    .exec(createRespondent) 
于 2017-07-24T14:34:40.193 回答