Gatling-Value baseUrl не является членом io.gatling.http.protocol.HttpProtocolBuilder

#scala #simulation #gatling

#scala #Симуляция #gatling

Вопрос:

Я написал следующий сценарий Gatling ниже. Я получаю следующую ошибку

Значение baseUrl не является членом io.gatling.http.protocol.HttpProtocolBuilder

Я попытался напрямую импортировать io.gatling.http.protocol.HttpProtocolBuilder но это не решило проблему. Кто-нибудь может определить основную причину в моем коде ниже?

Кроме того, я хотел бы, чтобы этот сценарий увеличил количество запросов до 1 миллиона за 4 часа с 2000 пользователями. Выполняет ли приведенная ниже инъекция эту загрузку успешно?

  import io.gatling.core.Predef._
 import io.gatling.http.Predef._
 import scala.concurrent.duration._

 class Kafka extends Simulation{
      val httpProtocol = http.baseURL("https://apex-my-url-is.in.these.quotes.com");

      val kafkaScenario = scenario("KafkaPerfTest")
      .exec(http("Kafka Request").post("/method/method")
                            .header("Content-Type", "application/json")
                            .body(StringBody(""" 
                              {
                                "logDatetime": "2019-03-18T20:26:38.940Z",
                                "url": "/test",
                                "apiName": "test",
                                "apiVersion": "test",
                                "method": "GET",
                                "status": 200,
                                "vin": "TESTTESTVIN0001",
                                "accessToken": "test",
                                "user": "test",
                                "queryParams": "",
                                "requestHeader": "test",
                                "requestBody": "test",
                                "responseHeader": "test",
                                "responseBody": "test",
                                "responseTime": 200,
                                "traceId": "test",
                                "serviceName": "test",
                                "type": "INBOUND"
                              } 
                              """))
                              .check(status.is(202)));
  setUp(kafkaScenario.inject(
    constantConcurrentUsers(2000) during(4 hours))
    .protocols(httpProtocol)
    .throttle(jumpToRps(500),holdFor(4 hours)));
  }
  

Ответ №1:

Попробуйте «http.baseUrl» вместо «http.baseUrl»

Комментарии:

1. Это сработало! Правильна ли моя настройка для увеличения количества запросов до 1 миллиона за 4 часа с 2000 пользователями?

2. С этой настройкой вы введете 28 миллионов пользователей за 4 часа, но из-за дроссельной заслонки только часть из них сможет выполнять запросы, остальные застрянут в очереди, я не помню, открывают ли ожидающие пользователи соединения, но у вас могут закончиться открытые сокеты или таким образом достичь предела подключений. Я бы рекомендовал начать с меньшего числа пользователей и более короткого теста и выяснить, какое значение для вас является наилучшим.

3. Спасибо, Матеуш. Мы хотим посмотреть, как работает этот сервис при чрезвычайно большом количестве запросов. На самом деле нас не волнует количество пользователей. Вот почему я использовал «throtte». Вы бы порекомендовали constantUsersPerSec?

4. Похоже, что в какой-то момент baseURL был переименован baseUrl в библиотеках gatling (возможно, v3). Таким образом, вариант, который сработает, будет зависеть от того, какую версию gatling вы используете.