Как использовать утверждения для множественного сценария в гатлинге? - PullRequest
2 голосов
/ 13 марта 2019

Прямо сейчас я пытаюсь выполнить тестирование производительности всех моих API-интерфейсов. Я уже создал один файл объектов, имеющий разные сценарии (каждый сценарий имеет разные теги). Теперь я хочу использовать утверждения в среднем ResponseTime с разными сценариями и разными утверждениями.

val Performance1 = scenario("Performance1").exec(karateFeature("classpath:mock/Testing1.feature@Performance"))
val Performance2 = scenario("Performance2").exec(karateFeature("classpath:mock/Testing2.feature@v3ContentMeta"))

val v4SearchTest = scenario("SearchTest").
group("SearchTesting") { exec(karateFeature("classpath:mock/Testing1.feature@Performance"))
}

setUp(
  (Performance1.inject(rampUsers(10) over (5 seconds)).protocols(protocol)),
    Performance2.inject(rampUsers(10) over (5 seconds)).protocols(protocol)
  ).assertions(details("SearchTesting").responseTime.mean.lte(680))```

1 Ответ

3 голосов
/ 13 марта 2019

Вы можете добавить утверждения Гатлинга в качестве глобальных утверждений.Это отлично подойдет для каратэ Гатлинга.Это пример сценария, который мы попробовали

setUp(
    firstScenario.inject(
      nothingFor(5 seconds), // Pause for a given duration
      atOnceUsers(10), //Inject 10 Users at once
      constantUsersPerSec(10) during (20 seconds), // Induce 10 requests on every second and continues this process for 30 seconds
      rampUsers(10) over (10 seconds) // Linear Ramp up of the user
    ).protocols(protocol),

    secondScenario.inject(
      nothingFor(10 seconds), // Pause for a given duration
      atOnceUsers(20), // Inject 10 Users at once
      constantUsersPerSec(10) during (10 seconds), // Induce 10 requests on every second and continues this process for 40 seconds
    ).protocols(protocol),

    thirdScenario.inject(
      nothingFor(15 seconds), // Pause for a given duration
      rampUsers(20) over (1 minute) // Linear Ramp up of the user
    ).protocols(protocol),

    fourthScenario.inject(
      nothingFor(20 seconds), // Pause for a given duration
      constantUsersPerSec(10) during (20 seconds), // Induce 10 requests on every second and continues this process for 20 seconds
    ).protocols(protocol)

  ).assertions(
    global.responseTime.max.between(100, 5000),
    global.failedRequests.percent.is(0),
    global.successfulRequests.percent.gt(90)
  ).maxDuration(10 minutes) // Configuring the maximum duration of your simulation. It is useful when we need to bound the duration the simulation when we can’t predict it.

Глобальные утверждения будут отображаться в виде отдельного раздела в отчетах Гатлинга.Это полезная особенность каратэ Гатлинга.Конкретные ошибки теста также будут отображены в отчете о каратэ Гатлинге.Например, если это ваш сценарий

Scenario: My First Sample Scenario
    Given url endpointUrl
    And header karate-name = 'Feature 1_Scenario3'
    When method get
    Then status 200

И если код состояния не отвечает как 200, это также записывается в отчетах по каратэ Гатлингу.

Утверждения в Гатлинге: https://gatling.io/docs/current/general/assertions/#scope

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