【问题标题】:Specifying a request body doing a Gatling POST指定执行 Gatling POST 的请求正文
【发布时间】:2014-12-05 02:07:54
【问题描述】:

我是 Gatling 的新手。我正在尝试使用 Gatling 将 POST 消息发送到 HTTP API。我尝试了以下方法:

package app.basic
import io.gatling.core.Predef._
import io.gatling.http.Predef._
import scala.concurrent.duration._

class basicPost extends Simulation {
  val headers_10 = Map("Content-Type" -> """application/json""")
  object Post {
      // repeat is a loop resolved at RUNTIME
      val post = repeat(50) { 
      exec(http("Post Data")
          .post("/data")
          .queryParam("""size""", "10"))
          .headers(headers_10)
          .body("""{"id1":"0000000000"}""")
          .pause(1)
  }
  }
  val httpConf = http.baseURL("http://amazonperf-env.elasticbeanstalk.com")   
  val users = scenario("Users").exec(Post.post)
  setUp(
    users.inject(rampUsers(1000) over (10 seconds))
  ).protocols(httpConf)
}

但是,编译时出现此错误:值主体不是 io.gatling.core.structure.ChainBuilder 的成员 可能的原因:“值主体”之前可能缺少分号?

如何指定要发送的邮件正文?

【问题讨论】:

    标签: performance gatling


    【解决方案1】:

    这是旧的 Gatling 1 语法(Gatling 1 已弃用且不再维护)。

    请阅读documentation

    在你的情况下,你会得到类似的东西:

    .body(StringBody("""{"id1":"0000000000"}"""))
    

    【讨论】:

      【解决方案2】:

      此外,您关闭exec 博客的速度似乎有点太快了,就在queryParam("""size""", "10") 之后。

      右括号应该在.body(...)之后,而不是.queryParam(...)之后。

      【讨论】:

        【解决方案3】:

        您可以使用方法 formParam(key: Expression[String], value: Expression[Any]) 将消息发布到 API。

        【讨论】:

          【解决方案4】:

          尝试如下发送请求正文

          .body(StringBody("""{
                                     "name": "morpheus",
                                     "job": "leader"
                                 } """)).asJson)
          

          【讨论】:

          • 欢迎来到 Stack Overflow。请edit您的答案解释它是如何回答问题的,以便对有类似问题的用户有用。 Stack Overflow 上不鼓励仅使用代码的答案,因为它们没有解释它是如何解决问题的。
          【解决方案5】:

          根据当前文档,它是这样的:

          .body(StringBody("""{ "id1":"0000000000" }""")).asJson
          

          同时删除额外的右括号:

          .queryParam("""size""", "10"))
          

          正确放置右括号,如下所示:

          .pause(1))
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2020-08-27
            • 1970-01-01
            • 2020-01-13
            • 1970-01-01
            • 2019-03-10
            • 2020-03-29
            • 2020-10-02
            • 1970-01-01
            相关资源
            最近更新 更多