我试图让加特林为每个 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)
Run Code Online (Sandbox Code Playgroud)
但是,当我运行此代码时,它仅调用我的 feeder 一次来创建单个 UUID,并在整个负载测试过程中重复使用相同的 UUID。
我在关注此线程后创建了上面的代码。我正在使用加特林 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)
}
Run Code Online (Sandbox Code Playgroud)
Jam*_*arr -1
在您的设置中,您只创建一个用户 - 因此您的场景仅执行一次,这意味着“feed”仅在您开始循环请求之前发生一次。
将您的场景更改为
val scn = scenario("some load test")
.feed(feeder)
.exec(createPostRequest)
Run Code Online (Sandbox Code Playgroud)
并进行设置(将 100 替换为您想要的任意数量的用户)
setUp(scn.inject(atOnceUsers(100)))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2459 次 |
| 最近记录: |