我想在一个变量中设置StringBody值:
exec(session => {session.set("searchBody", """{"productId":"${productID}","category":"${category}"}""")})
变量${productID}
和${category}
存在。我想使用值作为函数 StringBody 的参数:
http("/products")
.post(appURL + "/search")
.headers(jsonHeader)
.body(StringBody("${searchBody}")).asJSON
但它没有按预期工作。我收到以下错误:i.g.h.a.ResponseProcessor - Request '/products' failed:status.find.is(200), but actually found 403
为什么变量searchBody
的字符串中没有打印变量?
更新:
我正在尝试:
val search= exec(repeat(products.size, "n"){
feed(products.circular)
.uniformRandomSwitch( //5
exec(session => {session.set("searchBody", """{"productId":"${productID}","minPrice":"${minPrice}"}""")}),
exec(session => {session.set("searchBody", """{"productId":"${productID}","category":"${category}"}""")})
)
.exec(
http("/products")
.post(appURL + "/search")
.headers(jsonHeader)
.body(StringBody("${searchBody}")).asJSON
.check(status.is(200), responseTimeInMillis.lessThan("${expectedResponseTime}"))
)
})
我想发送不同类型的请求以统一平衡,并且我不想复制执行部分。端点始终相同,只是正文不同。
你需要利用 scala 的 s 字符串插值方法。请找到以下答案。
http("/products")
.post(appURL + "/search")
.headers(jsonHeader)
.body(StringBody(s"${searchBody}")).asJSON