加特林 3 的 CSV 进纸器

CSV Feeders for gatling 3

我正在使用 Gatling 3。我有一个 csv 进纸器,其中只有一列名为 accountIds。我需要在我的 POST 请求正文中将其作为 JSON 传递。我尝试了很多不同的语法,但似乎没有任何效果。我也无法打印正文中实际发送的内容。如果我删除“$accountIds”并改用实际值,它就会起作用。下面是我的代码:

val searchFeeder = csv("C://data/accountids.csv").random

val scn1 = scenario("Scenario 1")
  .feed(searchFeeder)
  .exec(http("Search")
  .post("/v3/accounts/")
     .body(StringBody("""{"accountIds": "${accountIds}"}""")).asJson)

setUp(scn1.inject(atOnceUsers(10)).protocols(httpConf))

您是否在 logback.xml 中启用了跟踪级别以查看 post 请求的详细信息? 另外,您能否确认您提到的 "C://data/accountids.csv" 位置是否正确。通常,数据文件夹位于项目位置,在项目中您可以通过以下方式访问数据文件: val searchFeeder = csv("data/stack.csv").random

我刚刚创建了示例脚本并启用了 logging.I 我能够看到 accountId 正在传递:

package basicpackage
import io.gatling.core.Predef._
import io.gatling.http.Predef._

import io.gatling.core.scenario.Simulation

class StackFeeder extends Simulation {

  val httpConf=http.baseUrl("http://example.com")

  val searchFeeder = csv("data/stack.csv").random

  val scn1 = scenario("Scenario 1")
    .feed(searchFeeder)
    .exec(http("Search")
      .post("/v3/accounts/")
      .body(StringBody("""{"accountIds": "${accountIds}"}""")).asJson)

  setUp(scn1.inject(atOnceUsers(1)).protocols(httpConf))

csv file location