我正试图根据POST请求创建随机数据。我关注了关于stackoverflow和其他地方的几篇文章。我想到了这种情况-
def randomUuid = UUID.randomUUID().toString
val feeder = Iterator.continually(Map("user" -> randomUuid))
def createPostRequest = {
http("createuser")
.post("http://jsonplaceholder.typicode.com/posts")
.body(StringBody("${user}"))
.check(status.is(201))
}
val scn = scenario("some load test")
.feed(feeder)
.forever(exec(createPostRequest))
setUp(scn.inject(atOnceUsers(1)))
.maxDuration(20 minutes)
但是,当我运行这段代码时,它只会调用一次供稿器来创建一个UUID,并在整个负载测试中重复使用相同的UUID。
我在遵循this thread之后创建了上面的代码。我正在使用加特林2.2.5。这是我的sbt配置-
import sbt._
object Dependencies {
private val gatlingHighcharts = "io.gatling.highcharts" % "gatling-
charts-highcharts" % "2.2.5" % "test"
private val gatlingTest = "io.gatling" % "gatling-test-framework" % gatlingHighcharts.revision % "test"
val gatlingDependencies = Seq(gatlingHighcharts, gatlingTest)
}
答案 0 :(得分:0)
由于您不会在循环中调用feed
,通常不会在forever
循环中调用,因此实际上每个虚拟用户只会生成一个值。
如果您希望每个循环迭代具有唯一值,请在循环内移动feed
调用。
答案 1 :(得分:-1)
在您的设置中,您仅创建一个用户-因此您的方案仅执行一次,这意味着“提要”仅在开始遍历请求之前发生一次。
将您的情况更改为
val scn = scenario("some load test")
.feed(feeder)
.exec(createPostRequest)
进行设置(将100个用户替换为所需数量的用户)
setUp(scn.inject(atOnceUsers(100)))