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 表达式 id
和 party
中,只有 party
得到解析和替换,而 id
没有得到解析完全没有。
有人知道为什么会这样吗?
这意味着加特林 EL 字符串中的键与您的供给文件中的 header 列不匹配。
检查您的供稿文件和模板文件中是否有任何拼写错误或多余的 non-printable 字符(使用十六进制编辑器)。我的赌注是 CV header 行中的 non-printable 个字符。
注意:从 Gatling 3.7 开始,推荐的 Gatling EL 语法是 #{}
,而不是 ${}
。
我是 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 表达式 id
和 party
中,只有 party
得到解析和替换,而 id
没有得到解析完全没有。
有人知道为什么会这样吗?
这意味着加特林 EL 字符串中的键与您的供给文件中的 header 列不匹配。
检查您的供稿文件和模板文件中是否有任何拼写错误或多余的 non-printable 字符(使用十六进制编辑器)。我的赌注是 CV header 行中的 non-printable 个字符。
注意:从 Gatling 3.7 开始,推荐的 Gatling EL 语法是 #{}
,而不是 ${}
。