Scala Gatling:为多个Css选择器动态组装HttpCheck

Scala Gatling:为多个Css选择器动态组装HttpCheck,scala,gatling,Scala,Gatling,我正在开发一个可以通过外部配置对象参数化的Gatling测试框架。我的一个用例是,可能有零个或多个CSS选择器检查需要保存到变量中。在我的config对象中,我将其实现为一个Map[String,(String,String)],其中键是变量名,值是由两部分组成的css选择器 我正在努力研究如何动态组装支票。以下是我目前得到的信息: val captureMap: Map[String, (String, String)] = config.capture httpRequestBuilder.

我正在开发一个可以通过外部配置对象参数化的Gatling测试框架。我的一个用例是,可能有零个或多个CSS选择器检查需要保存到变量中。在我的config对象中,我将其实现为一个
Map[String,(String,String)]
,其中键是变量名,值是由两部分组成的css选择器

我正在努力研究如何动态组装支票。以下是我目前得到的信息:

val captureMap: Map[String, (String, String)] = config.capture
httpRequestBuilder.check(
  captureMap.map((mapping) => {
    val varName = mapping._1
    val cssSel = mapping._2
    css(cssSel._1, cssSel._2).saveAs(varName)
  }).toArray: _* // compilation error here
)
我得到的错误是:

Error:(41, 10) type mismatch;
 found   : Array[io.gatling.core.check.CheckBuilder[io.gatling.core.check.css.CssCheckType,jodd.lagarto.dom.NodeSelector,String]]
 required: Array[_ <: io.gatling.http.check.HttpCheck]
      }).toArray: _*
虽然这样做有效,但它非常丑陋。这能改进吗?

我也有同样的问题

我有以下几点:

import io.gatling.core.Predef._
import io.gatling.http.Predef.http
我将这些导入更改为:

import io.gatling.core.Predef._
import io.gatling.http.Predef._
import io.gatling.http.request.builder.HttpRequestBuilder.toActionBuilder
这让它起作用了

import io.gatling.core.Predef._
import io.gatling.http.Predef._
import io.gatling.http.request.builder.HttpRequestBuilder.toActionBuilder