gatling - 我想从场景中获取值并在 QueryParam 中设置值
问题描述
我想从场景中获取一个值并在 queryParam 中设置值。我的代码是..
val scen1 = scenario("Home page").repeat(1) {
exec(session => session
.set("queryEnc", URLEncoder.encode(updateQueueItemCreatedTime(fileContents).toString.replace(" ", "%20"), "UTF-8"))
.set("authroization", AwsSigner(AwsCredentialsProviderWithSession, region, Service, () => LocalDateTime.now(ZoneOffset.UTC)).getSignedHeaders(Uri, PostMethod, EmptyQueryParams ++ Map("Action" -> "SendMessage", "MessageBody" ->"${queryEnc}"), headers, emptyPayload)("Authorization"))
)
.exec(
http("Custom headers")
.get(queueUrl + "?Action=SendMessage&MessageBody=" + "${queryEnc}")
.header("Authorization", "${authroization}")
)
}
当我在.get
使用它的方法中获取值时"${queryEnc}"
。然后按我想要的值传递。但是当我在其中获取值时, Map("Action" -> "SendMessage", "MessageBody" ->"${queryEnc}")
它会得到与 相同的字符串"${queryEnc}"
,而不是从会话中获取值。
我将如何传递 MessageBody 中的值?
解决方案
当您在调用 session.set 时处于会话函数中时,您不能使用加特林表达式语言“${var}”作为获取会话值的简写。
相反,您必须直接使用会话 api。
所以而不是
.set("authroization", ... EmptyQueryParams ++ Map("Action" -> "SendMessage", "MessageBody" ->"${queryEnc}"), headers, emptyPayload)("Authorization"))
你需要
.set("authroization", ... EmptyQueryParams ++ Map("Action" -> "SendMessage", "MessageBody" -> session("queryEnc").as[String], headers, emptyPayload)("Authorization"))
推荐阅读
- python - 如何将用户输入完全转换为用于训练分类器的处理数据?我想对用户输入文本进行情感分析
- python - 向量化双 for 循环
- javascript - Java 通过将零添加到以下格式 XX.xxxxxx 来转换用户的输入
- json - 从 json 文件在 tableview 中打开 pdf
- reactjs - TypeError:无法读取 null 的属性“withFooter”
- json - 如何通过 Google Analytics 跟踪 POST 和 JSON 请求
- javascript - 如何在 vue.js 中使用 gotoDate?
- android - 尝试对底部导航进行意图时出现此错误
- linux - yocto zeus 上的 meta-toolchain-qt5,gcc-cross-canatian-aarch64 失败
- mysql - 这个查询如何正确