[英]Make dynamic request using Gatling
我想使用 Gatling 发出动态请求。 使用 Gatling,我们开始使用我们向其发布 SMS 请求的 rest-API 我希望每个请求都应该使用不同的 mob no 发送来完成。
exec(http("Sms Delivery")
.post(s"/deliveries")
.body(StringBody(
s"""{ "template":
|{ "type":"inline", "inline":
| { "channels":
| "sms":{ "body":{ "layout":"{greeting}", "fragments":{ "greeting":{"en-US":"ABC123 Interested to hear about some jobs?"}}}} }} },
| "recipients":[ { "contactDetails":{ "mobileNumber" : "+1${Random.nextInt(123123123)}" } }],
| "requester": "${UUID.random.toString}"}""".stripMargin)).asJson
.check(status.is(202))
.check(jsonPath("$.messageId").ofType[String])
)
}
setUp(
scenario("Create message-Cmd")
.exec(createMessageServiceSms()).inject(
rampConcurrentUsers(0) to (6) during(1),
constantConcurrentUsers(5) during (testTime seconds)
)
)
假设 Gatling 发送了 100 个请求,对于所有这些请求,我的暴民没有保持不变,每个请求都相同,比如说+12011705515
。 但是,我要全部不。 应该不同。
该字符串仅创建一次,然后解析为Expression Language ,它允许您替换session attributes 。
如果您想要创建UUID
和调用Random.nextInt
等自定义函数,则需要将 function 传递给StringBody
。
StringBody(_ =>
s"""{ "template":
|{ "type":"inline", "inline":
| { "channels":
| "sms":{ "body":{ "layout":"{greeting}", "fragments":{ "greeting":{"en-US":"ABC123 Interested to hear about some jobs?"}}}} }} },
| "recipients":[ { "contactDetails":{ "mobileNumber" : "+1${Random.nextInt(123123123)}" } }],
| "requester": "${UUID.random.toString}"}""".stripMargin)
)
我们丢弃的参数是虚拟用户的Session
。
值得注意的是,您的mobileNumber
数字可能太少,但这是创建动态请求之外的另一个问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.