Gatling EL 没有在 ElFileBody 中被替换

Gatling EL not getting replaced in ElFileBody

我是 gatling 性能测试的新手,我正在尝试为我们的服务编写一个模拟。 我正在使用 gatling 3.7.6 版本。

我的 post http 方法有以下请求 json;

{
  "id": "${id}",
  "party": "${party}"
}

下面是来自csv的feeder数据

id,party
 ID333,MC

下面是我的模拟class

val data: BatchableFeederBuilder[String] = csv("data/myData.csv").circular


  val scenario: ScenarioBuilder = scenario("my-API")
    .feed(data)
    .exec(Helper.formRequest("apiname", url, "request/request.json", "myResponse"))


  setUp(/*standard setup call */)

助手如下所示

def formRequest(apiName: String, url:String, requestJson: String, response: String): ChainBuilder = {
    println("....Executing api call....");
    toDefaultChainBuilder({
      createPrivateAuthPlusPostReqBuilderFromSession(apiName, url)
        .body(ElFileBody(requestJson)).asJson
        .check(status.is(200),(regex(".*\"errors\".*").notExists))
        .check(bodyString.saveAs(response)) // captures the response body of this request and saves it in session as response
    })
  }
    .exec(session => {
      println("=========================START "+apiName+" POSTMethod Response=====================================")
      val responseBody = session(response).as[String];
      println("Response ------------>"+ responseBody);
      println("\n=========================END "+apiName+" POSTMethod Response=====================================")
      session;
    })

createPrivateAuthPlusPostReqBuilderFromSession 如下所示

http(apiName).post(postUrl).header("identifier", "sample_"+Util.randomString())

在上面,一切正常,但在 2 个 EL 表达式 idparty 中,只有 party 得到解析和替换,而 id 没有得到解析完全没有。

有人知道为什么会这样吗?

这意味着加特林 EL 字符串中的键与您的供给文件中的 header 列不匹配。

检查您的供稿文件和模板文件中是否有任何拼写错误或多余的 non-printable 字符(使用十六进制编辑器)。我的赌注是 CV header 行中的 non-printable 个字符。

注意:从 Gatling 3.7 开始,推荐的 Gatling EL 语法是 #{},而不是 ${}