gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 04:23:47 31 4
gpt4 key购买 nike

我正在研究可以通过外部配置对象参数化的 Gatling 测试框架。我的一个用例是可能有零个或多个 CSS 选择器检查需要保存到变量中。在我的配置对象中,我已将其实现为 Map[String,(String, String)] ,其中键是变量名,值是由 2 部分组成的 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: _*

显然,我需要转我的 CheckBuilderHttpCheck ,那我该怎么做?

更新 :
我设法通过引入一个 HttpCheck 类型的变量并在下一行返回它来让它工作:
httpRequestBuilder.check(
captureMap.map((mapping) => {
val varName = mapping._1
val cssSel = mapping._2
val check:HttpCheck= css(cssSel._1, cssSel._2).saveAs(varName)
check
}).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
这使它起作用。

关于scala - Gatling:为多个 Css 选择器动态组装 HttpCheck,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58385246/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com