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()
      })