Size: a a a

QA — Load & Performance

2020 June 15

KY

Kirill Yurkov in QA — Load & Performance
тут просто вопрос скорее в том, насколько активно шлет запросы пользователь в систему, без хотябы оценочного предположения соотнести твоих пользователей с реальными будет нереально
источник

AG

Alex Grishutin in QA — Load & Performance
ну тут подход по рпсу
источник

M

Maxim in QA — Load & Performance
Александр Фролов
Всем привет, помогите советом - задача: определить максимальное кол-во пользователей при действиях которых ответ на каждый запрос не будет превышать 3 сек. Чтобы гарантировать количество юзеров я взял rump-up 0сек (самый худший сценарий) и испытаниями определил кол-во юзеров 100. Но это крайне маловероятно что юзеры будут в раз слать запросы, а реальное поведение пользователей определить весьма сложно в моей ситуации, можно ли плюсовать какой то процент пользователей к количеству определенному при самом худшем сценарии или в результатах все же указать 100?
Я бы исходил из инфы о средней продолжительности выполнения действий пользователем по бизнес процессу в рамках одной сессии. Такой rump up это очень не реалистично.
источник

АФ

Александр Фролов... in QA — Load & Performance
согласен, но при тестировании мы же должны предполагать кейс на самую сильную нагрузку, т.е. допустим по оценочному предположению рампап ставлю 60сек определяю что при 200 юзерах достигается порог в задержке ответов, сообщаю о результатах что мол 200 юзеров не превышайте и будет счастье. Но затем заходят 150 юзеров, начинают чудить с большей интенсивностью чем при тестировании и ловят провисания и тут я буду выглядеть как обманщик
источник

AG

Alex Grishutin in QA — Load & Performance
эм, нет
источник

AG

Alex Grishutin in QA — Load & Performance
Вы же изначально определяете среднее кол-во операций пользователя за единицу времени
источник

K

Kostya in QA — Load & Performance
Александр Фролов
согласен, но при тестировании мы же должны предполагать кейс на самую сильную нагрузку, т.е. допустим по оценочному предположению рампап ставлю 60сек определяю что при 200 юзерах достигается порог в задержке ответов, сообщаю о результатах что мол 200 юзеров не превышайте и будет счастье. Но затем заходят 150 юзеров, начинают чудить с большей интенсивностью чем при тестировании и ловят провисания и тут я буду выглядеть как обманщик
1) с помощью summary report ты не поймешь в какой момент система начала деградировать
2) юзай графики с таймлайнами
3) увеличь duration с минуты хотябы до 10,на минуте ты едва ли поймёшь что произошло
4) как говорили ранее,меряй не юзерами,а RPS
источник

AG

Alex Grishutin in QA — Load & Performance
т.е. есть образный "средний" пользователь
источник

AG

Alex Grishutin in QA — Load & Performance
+ есть вещь как деградация с течением времени. Т.е сейчас ты определил что при 100 юзерах у тебя ~3 секунды респонс. Но если ты подержишь эту нагрузку чуть дольше - большая вероятность что ты выбьешься из своих рамок
источник

K

Kostya in QA — Load & Performance
но это уже другой тип теста,дайте человеку сперва убить систему:)
источник

AG

Alex Grishutin in QA — Load & Performance
😂
источник

AG

Alex Grishutin in QA — Load & Performance
так по сути что сейчас происходит - это микро дос какой то)
источник

АФ

Александр Фролов... in QA — Load & Performance
)))))
источник

АФ

Александр Фролов... in QA — Load & Performance
спасиб за советы, у нас прост вообще нет информации о поведении пользователей, теперь надо угадать наихудшее их поведение)
источник

AG

Alex Grishutin in QA — Load & Performance
ну ты примерно для себя представь, сколько по времени у тебя занимает та или иная операция
источник

AG

Alex Grishutin in QA — Load & Performance
+ оперируйте не пользователями а рпс, поскольку в вашем случае это даст более релевантные значения
источник

AG

Alex Grishutin in QA — Load & Performance
Поскольку, если это не аплик который работает напрямую с апи (и только с ним), то по факту там будет грузиться еще уйма статики и тд, и ваши результаты просто не будут коррелироваться на физических пользователей
источник

DK

Dmitriy Kovsh in QA — Load & Performance
#Gatling #WS #Websocket
Ребз, есть вопрос по тестированию WS на гатлинге - как завернуть проверку сообщения от сервера в вечный луп?
{code}
             .await(600 seconds)
             (
               ws.checkBinaryMessage("responseBinaryMessage").check(bodyBytes.transform(_.size >= responseSizeForComparison).is(true))
             )
{code}

цель - единожды подключившись к каналу сидеть и слушать сообщения от сервера, пока тест не будет остановлен

https://paste.ofcode.org/MK3Y2gEXyyXE6pEkRz4sJR
источник

ВС

Вячеслав Смирнов... in QA — Load & Performance
Dmitriy Kovsh
#Gatling #WS #Websocket
Ребз, есть вопрос по тестированию WS на гатлинге - как завернуть проверку сообщения от сервера в вечный луп?
{code}
             .await(600 seconds)
             (
               ws.checkBinaryMessage("responseBinaryMessage").check(bodyBytes.transform(_.size >= responseSizeForComparison).is(true))
             )
{code}

цель - единожды подключившись к каналу сидеть и слушать сообщения от сервера, пока тест не будет остановлен

https://paste.ofcode.org/MK3Y2gEXyyXE6pEkRz4sJR
Привет. Не знаю контекста.
Но например вот так можно сделать вечный loop, пока не закончится профиль
https://github.com/polarnik/gatling-report-example/blob/master/src/test/scala/io/qaload/gatling/reportExample/simulation/CloseModel_IncrementConcurrentUsers.scala#L32

def simpleScenarioWithPace(name: String, paceDuration: Duration)  =
   scenario(name)
   .forever ( //вечный цикл
     pace(paceDuration) // повторение через указанный интервал времени
       .exec(
         SimpleScenario.simpleScenario()
       )
   )
источник

ВС

Вячеслав Смирнов... in QA — Load & Performance
https://github.com/polarnik/gatling-report-example/blob/master/src/test/scala/io/qaload/gatling/reportExample/simulation/CloseModel_IncrementConcurrentUsers.scala#L63
   ).protocols(Protocol.httpConf).throttle(
     reachRps(70) in (600 seconds) // тест закончится через 600 сек,
                                   // вот тут настраивается длительность "вечного" цикла,
                                   // он корректно завершится
   )
источник