Gatling exec с сеансом - PullRequest
       2

Gatling exec с сеансом

1 голос
/ 29 апреля 2019

Мне нужно сделать запрос в Gatling, в котором я могу получить доступ к элементам сеанса (без языка выражений). Мне нужно сделать это, потому что я хочу вставить данные в ByteArrayBody запрос от фидера CSV. Чтобы продемонстрировать свою проблему, у меня есть небольшой пример (без фактической необходимости сеанса).

Следующий сценарий работает нормально:

val scnBase: ScenarioBuilder = scenario("Test scneario").repeat(1){
  exec(http("Http Test test").get("http://google.de/"))
}

Но это не так (я получаю исключение There were no requests sent during the simulation, reports won't be generated):

val scnBase: ScenarioBuilder = scenario("Test scneario").repeat(1){
  exec(session => {
    http("Http Test test").get("http://google.de/")
    session
  })
}

Я запускаю свои симуляции в IntelliJ (который до сих пор работал нормально) и в следующем (здесь свернутом) файле симуляции:

package test.scala

import java.text.SimpleDateFormat
import java.util.Date

import io.gatling.core.Predef._
import io.gatling.core.body.ByteArrayBody
import io.gatling.core.structure.ScenarioBuilder
import io.gatling.http.Predef._
import io.gatling.http.protocol.HttpProtocolBuilder
import org.slf4j.LoggerFactory
import test.scala.TerminalTesterRequest.url
import test.scala.requests._
import test.scala.util.CharsetConverter

import scala.concurrent.duration._
import scala.language.postfixOps

class MySimulation extends Simulation {

  //base URL (actually this URL is different, but it's not important)
  val ecmsServerUri = "http://0.0.0.0"

  //base Protocol
  val httpProtocol: HttpProtocolBuilder = http
    .baseUrl(ecmsServerUri)
    .inferHtmlResources(BlackList(""".*\.js""", """.*\.css""", """.*\.gif""", """.*\.jpeg""", """.*\.jpg""", """.*\.ico""", """.*\.woff""", """.*\.(t|o)tf""", """.*\.png"""), WhiteList())
    .acceptHeader("*/*")
    .acceptEncodingHeader("gzip, deflate")
    .acceptLanguageHeader("en,en-US;q=0.7,de-DE;q=0.3")
    .userAgentHeader("Mozilla/4.0 (compatible; MSIE 6.0; MS Web Services Client Protocol 2.0.50727.8762)")

  val scnBase: ScenarioBuilder = scenario("Test scneario").repeat(1){
    exec(session => {
      http("Http Test test").get("http://google.de/")
      session
    })
  }

  setUp(
    scnBase.inject(constantUsersPerSec(1) during(1 seconds)).protocols(httpProtocol)
  ).maxDuration(5 minutes)
}

Как мне выполнить запрос exec с информацией о сеансе (или хотя бы данными из фидера)? Я использую Gatling 3.1.1

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