Gatling: динамически собирать HttpCheck для нескольких селекторов Css - PullRequest
0 голосов
/ 15 октября 2019

Я работаю над каркасом тестирования Гатлинга, параметры которого можно параметризировать с помощью внешних объектов конфигурации. Один из вариантов использования, который у меня есть, заключается в том, что может быть ноль или более проверок селектора CSS, которые необходимо сохранить в переменных. В моем объекте конфигурации я реализовал это как 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: _*

очевидно, мне нужно превратить мой CheckBuilder в HttpCheck, поэтомукак мне это сделать?

Обновление :
Мне удалось заставить его работать, введя переменную типа 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: _*
)

Хотя это работает, это ужасно ужасно. Можно ли это улучшить?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...