Gatling 中的可选 queryParam
Optional queryParam in Gatling
在我的 Gatling 测试中,我想使用 queryParams,但有些必须是可选的。空值会产生错误,因此这不是一个选项。
有没有办法使 queryParam 可选?
假设您在会话中有一些变量(假设 foo
),并根据该变量的值确定是否需要查询参数。
您可以使用 queryParamMap()
并提供任意 Expression[Map[String, Any]]
即 Session => Validation[Map[String, Any]]
函数来实现此目的。
http("Getting issues")
.get("https://github.com/gatling/gatling/issues")
.queryParamMap(session =>
session("foo").validate[String].map {
case "a" => Map("milestone" -> "1", "state" -> "open")
case "b" => Map("milestone" -> "1", "state" -> "open", "author" -> "jenkins")
})
在官方中寻求更多信息documentation。
我的回答基于 Camilo Silva 的回答。也许我的解决方案对社区有用:
.queryParamMap(session =>
session("experiment").validate[String].map {
case value if value.nonEmpty => Map("experiment" -> value)
case "" => Map()
})
在我的 Gatling 测试中,我想使用 queryParams,但有些必须是可选的。空值会产生错误,因此这不是一个选项。 有没有办法使 queryParam 可选?
假设您在会话中有一些变量(假设 foo
),并根据该变量的值确定是否需要查询参数。
您可以使用 queryParamMap()
并提供任意 Expression[Map[String, Any]]
即 Session => Validation[Map[String, Any]]
函数来实现此目的。
http("Getting issues")
.get("https://github.com/gatling/gatling/issues")
.queryParamMap(session =>
session("foo").validate[String].map {
case "a" => Map("milestone" -> "1", "state" -> "open")
case "b" => Map("milestone" -> "1", "state" -> "open", "author" -> "jenkins")
})
在官方中寻求更多信息documentation。
我的回答基于 Camilo Silva 的回答。也许我的解决方案对社区有用:
.queryParamMap(session =>
session("experiment").validate[String].map {
case value if value.nonEmpty => Map("experiment" -> value)
case "" => Map()
})