繁体   English   中英

使用 Gatling 发出动态请求

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM