我有如下代码:
private val payloadBatchSizes = (1..1001 step 100).toList()
private val httpProtocol = http
.baseUrl(apiGatewayUrl)
.acceptHeader("application/json")
.header("A", "foo")
.header("B", "bar")
.header("C", "foo")
.header("Authorization", authToken)
private val success = scenario("""
basic scenario
""".trimIndent()).foreach(payloadBatchSizes, "item", "counter").on(
exec { session ->
http("collector")
.post("/v1/events")
.body(StringBody(getPayloadBatch(session.getInt("item"))))
session
}
)
init {
setUp(success.injectOpen(
atOnceUsers(1)
).protocols(httpProtocol)
)
}
我试图发出一个请求,不同的批量大小范围从1.. 1001具有100间隔步长。但是,当我运行它时,它会失败,并出现以下情况:
模拟在0秒内完成
正在分析日志文件...正在分析日志文件已完成正在生成报告...线程“main”出现异常java.lang.UnsupportedOperationException:在模拟期间没有发送请求,报告将不会在io.gatling.charts.report.ReportsGenerator.generateFor(ReportsGenerator.scala:46)在io.gatling.app.RunResultProcessor.generateReports(RunResultProcessor.scala:63)在io.gatling.app.RunResultProcessor.processRunResult(RunResultProcessor.scala:38)在io.gatling.app.Gatling$.start(Gatling.scala:99)在io.gatling.app.Gatling$.fromArgs(Gatling.scala:51)在io. gatling.app.Gatling$.main(Gatling.scala:39)在io.gatling.app.Gatling.main(Gatling.scala
1条答案
按热度按时间hec6srdp1#
你在加特林的函数用法错误。
请阅读exec文档:你不能在函数中使用加特林组件。
这是另一种方式:你必须把你的函数传递给Gatling组件see doc。