指定执行Gatling POST的请求正文

时间:2014-10-10 01:06:43

标签: performance gatling

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

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)
}

但是,编译时出现此错误:value body不是io.gatling.core.structure.ChainBuilder的成员 可能的原因:在'value body'?

之前可能缺少分号

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

4 个答案:

答案 0 :(得分:5)

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

请阅读documentation

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

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

答案 1 :(得分:0)

此外,您似乎在exec之后暂时关闭了queryParam("""size""", "10")博客。

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

答案 2 :(得分:0)

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

答案 3 :(得分:0)

尝试按以下方式发送请求正文

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