2

我有一个如下所示的 csv 文件。

id1,id2
123,-8
124,-9
125,-10

我尝试使用 CSV 馈送器对 CSV 文件中的每一行执行 POST 请求。帖子不起作用。但是,使用相同的馈线文件的 GET 可以工作。我的语法错了吗?或者它不是使用馈线进行 POST 的正确方法吗?

下面是我的课。

package test

import io.gatling.core.Predef._
import io.gatling.http.Predef._
import scala.concurrent.duration._

class FeederSimulation extends Simulation {

  val ids = csv("ids.csv").random

  val httpConf = http
                .baseURL("http://localhost:3001/api")
                .acceptHeader("text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8")
                .doNotTrackHeader("1")
                .acceptLanguageHeader("en-US,en;q=0.5")
                .acceptEncodingHeader("gzip, deflate")
                .userAgentHeader("Mozilla/5.0 (Windows NT 5.1; rv:31.0) Gecko/20100101 Firefox/31.0")

  val scn = scenario("post-example")
            .feed(ids)
            .exec(http("post-example")
            .post("/create")
            .body(StringBody("""{"id1":${id1}, "id2":${id2}""")).asJSON)


  setUp(scn.inject(atOnceUsers(1)).protocols(httpConf))
}

下面的 GET 确实有效:

val scn = scenario("get-example")
            .feed(ids)
            .exec(http("get-example")
            .get("/someUrl")
            .queryParam("id1", "${id1}")
            .queryParam("id2", "${id2}")
4

1 回答 1

1

不正确的 Gatling EL 语法中的 StringBody:缺少 $:

StringBody("""{"id1":${id1}, "id2":${id2}""")
于 2014-08-28T21:29:03.300 回答