Size: a a a

QA — Load & Performance

2020 February 19

AV

Andrey Vasiliev in QA — Load & Performance
Артем Сидорук
Коллеги, привет.
Подскажите плиз. Провожу нагрузку рест апи на гатлинге.
Нужно сделать примерно такой профиль:
- Постоянная нагрузка в 10 rps в течении 10 минут
—> Поднять до 100 rps
—> постоянная нагрузка в 100 prs в течении 10 минут
—> поднять до 1000 rps
—> постоянная нагрузка в 1000 prs в течении 10 минут

Как это будет выглядеть в гатлинге?
Делаю вот так:
Seq(
   constantUsersPerSec(10) during (5 minutes),
   rampUsersPerSec(10) to 100 during (2 minutes),
   constantUsersPerSec(100) during (10 minutes),
   rampUsersPerSec(100) to 1000 during (20 minutes),
   constantUsersPerSec(1000) during (10 minutes))

но помоему я делаю что-то не то, и создаю слишком много юзеров (Гатлинг через время падает с ошибкой

Exception: java.lang.OutOfMemoryError thrown from the UncaughtExceptionHandler in thread "GatlingSystem-akka.actor.default-dispatcher-2"
а если попробовать между шагами вставить, nothingFor(…) ?
источник

AV

Andrey Vasiliev in QA — Load & Performance
типо того:
Seq(
   constantUsersPerSec(10) during (5 minutes),
   nothingFor(5 minutes)
   rampUsersPerSec(10) to 100 during (2 minutes),
   nothingFor(2 minutes)
   constantUsersPerSec(100) during (10 minutes),
   nothingFor(10 minutes)
   rampUsersPerSec(100) to 1000 during (20 minutes),
   nothingFor(20 minutes)
   constantUsersPerSec(1000) during (10 minutes)
   nothingFor(10 minutes)
)
источник

ΙΤ

Ιωάννης Τσεκούρι in QA — Load & Performance
так не будет работать
источник

ΙΤ

Ιωάννης Τσεκούρι in QA — Load & Performance
источник

ΙΤ

Ιωάννης Τσεκούρι in QA — Load & Performance
это введут только в следующем обновлении
источник

ΙΤ

Ιωάννης Τσεκούρι in QA — Load & Performance
последовательных сценариев нет, все будут запущены разом
источник

ΙΤ

Ιωάννης Τσεκούρι in QA — Load & Performance
Andrey Vasiliev
типо того:
Seq(
   constantUsersPerSec(10) during (5 minutes),
   nothingFor(5 minutes)
   rampUsersPerSec(10) to 100 during (2 minutes),
   nothingFor(2 minutes)
   constantUsersPerSec(100) during (10 minutes),
   nothingFor(10 minutes)
   rampUsersPerSec(100) to 1000 during (20 minutes),
   nothingFor(20 minutes)
   constantUsersPerSec(1000) during (10 minutes)
   nothingFor(10 minutes)
)
так как ты предлагаешь это
setUp(
   scn(connection1, "Scn1").inject(atOnceUsers(1)).protocols(sqlConfig),
   scn(connection2, "Scn2").inject(nothingFor(10 seconds), atOnceUsers(1)).protocols(sqlConfig),
   scn(connection3, "Scn3").inject(nothingFor(20 seconds), atOnceUsers(1)).protocols(sqlConfig),
 ).maxDuration(90 minutes)
источник

S

Sergey in QA — Load & Performance
Подскажите, пожалуйста, есть канал с вакансиями для нагрузочников?
источник

S

Sergey in QA — Load & Performance
Нашел только это
источник

S

Sergey in QA — Load & Performance
источник

VM

Vlad Mishenin in QA — Load & Performance
Чат про производительность и инструменты: #gatling, #jmeter, #influxdb, #grafana, #jms, ...

Важные заметки тут: @qaload

Немного про работу: #job
Только про работу тут: @qaload_job
источник

ΙΤ

Ιωάννης Τσεκούρι in QA — Load & Performance
Sergey
Нашел только это
источник

jj

jagga jagga in QA — Load & Performance
и там тишинаааа
источник

AV

Andrey Vasiliev in QA — Load & Performance
Ιωάννης Τσεκούρι
это введут только в следующем обновлении
так судя по дифу в комите оно как бы уже есть, просто именуется "followedBy" или я чего-то непонимаю? 🙂
https://github.com/gatling/gatling/commit/2d0f434c0053eb9890001919f70de9601374fe7a
источник

ΙΤ

Ιωάννης Τσεκούρι in QA — Load & Performance
ещё не влили это в мастер
источник

AV

Andrey Vasiliev in QA — Load & Performance
Ιωάννης Τσεκούρι
ещё не влили это в мастер
уже в мастере как я вижу
источник

AV

Andrey Vasiliev in QA — Load & Performance
источник

АС

Артем Сидорук in QA — Load & Performance
Правильно ли я понимаю, что
constantUserPerSec(1000)
создает по 1000 новых юзеров каждую секунду, не учитывая того что уже создано ранее?

У меня апи долго отвечает. До 30 секунд на запрос доходит.
То есть получается, что к 30й секунде запуска теста у меня активно до 30х1000 юзеров? (часть из которых только создана, а другая  ждет своего ответа от апи)
источник

ΙΤ

Ιωάννης Τσεκούρι in QA — Load & Performance
Артем Сидорук
Правильно ли я понимаю, что
constantUserPerSec(1000)
создает по 1000 новых юзеров каждую секунду, не учитывая того что уже создано ранее?

У меня апи долго отвечает. До 30 секунд на запрос доходит.
То есть получается, что к 30й секунде запуска теста у меня активно до 30х1000 юзеров? (часть из которых только создана, а другая  ждет своего ответа от апи)
Нет неверно
источник

ΙΤ

Ιωάννης Τσεκούρι in QA — Load & Performance
Артем Сидорук
Правильно ли я понимаю, что
constantUserPerSec(1000)
создает по 1000 новых юзеров каждую секунду, не учитывая того что уже создано ранее?

У меня апи долго отвечает. До 30 секунд на запрос доходит.
То есть получается, что к 30й секунде запуска теста у меня активно до 30х1000 юзеров? (часть из которых только создана, а другая  ждет своего ответа от апи)
Юзеры запускаются, но никто не гарантирует что они будут держаться
источник