如何在Gatling的status.in()中使用getOrElse?

时间:2018-04-04 09:01:40

标签: scala gatling

我的方法getUsers()带有可选参数stat,此参数代表单个状态代码。如果未提供参数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)。有人可以帮助我吗?

1 个答案:

答案 0 :(得分:1)

Option的{​​{1}}方法具有以下签名:

getOrElse

它需要相同类型或超类型。所以,在这里,您可以将传递给final def getOrElse[B >: A](default: ⇒ B): B 的可选Int映射到此处:

Seq[Int]

或者您可以传递stat.map(s => Seq(s)).getOrElse(defaults) ,之后您可以默认传递多种状态:

Option[Seq[Int]]

在这里,您的代码应该保持不变。