如何在 Gatling 的 status.in() 中使用 getOrElse?
How to use getOrElse in status.in() of Gatling?
我有一个带有可选参数stat
的方法getUsers()
,这个参数代表一个single状态码。当未提供参数 stat
时,我希望函数使用 getOrElse
检查 多个 状态代码。这是我当前的代码,但不起作用:
import io.gatling.core.Predef._
import io.gatling.http.Predef._
import scala.concurrent.duration._
class UnitTestActions {
def getUsers(stat: Option[Int]) = {
exec(http("[GET] /users")
.get("/users")
.check(status.in(stat getOrElse(Seq(200, 405)))))
}
}
以下部分有效:
check(status.in(stat getOrElse 200, 405))
当 stat
是 而不是 时提供它检查 200 和 405,这很好。
但是,当提供 stat
时,它会检查 stat
和 405,这不是预期的结果。
我尝试了各种方法,但每次都出现错误 cannot be applied to (Any)
。有人可以帮助我吗?
Option
的 getOrElse
方法具有以下签名:
final def getOrElse[B >: A](default: ⇒ B): B
它需要相同的类型或者它是超类型。因此,在这里您可以将您传递的可选 Int
映射到 Seq[Int]
并执行此操作:
stat.map(s => Seq(s)).getOrElse(defaults)
或者你可以传递一个Option[Seq[Int]]
,稍后你可以默认传递多个状态:
def getUsers(stat: Option[Seq[Int]])
在这里,您的代码应该保持不变。
我有一个带有可选参数stat
的方法getUsers()
,这个参数代表一个single状态码。当未提供参数 stat
时,我希望函数使用 getOrElse
检查 多个 状态代码。这是我当前的代码,但不起作用:
import io.gatling.core.Predef._
import io.gatling.http.Predef._
import scala.concurrent.duration._
class UnitTestActions {
def getUsers(stat: Option[Int]) = {
exec(http("[GET] /users")
.get("/users")
.check(status.in(stat getOrElse(Seq(200, 405)))))
}
}
以下部分有效:
check(status.in(stat getOrElse 200, 405))
当 stat
是 而不是 时提供它检查 200 和 405,这很好。
但是,当提供 stat
时,它会检查 stat
和 405,这不是预期的结果。
我尝试了各种方法,但每次都出现错误 cannot be applied to (Any)
。有人可以帮助我吗?
Option
的 getOrElse
方法具有以下签名:
final def getOrElse[B >: A](default: ⇒ B): B
它需要相同的类型或者它是超类型。因此,在这里您可以将您传递的可选 Int
映射到 Seq[Int]
并执行此操作:
stat.map(s => Seq(s)).getOrElse(defaults)
或者你可以传递一个Option[Seq[Int]]
,稍后你可以默认传递多个状态:
def getUsers(stat: Option[Seq[Int]])
在这里,您的代码应该保持不变。