Перейти к содержимому

Тестирование REST API
онлайн, начало 26 августа
Автоматизация функционального тестирования
онлайн, начало 30 августа
Азбука IT
онлайн, начало 28 августа
Python для начинающих
онлайн, начало 29 августа
Фотография

Как узнать сколько запросов в обработке на сервере

jmeter

  • Авторизуйтесь для ответа в теме
Сообщений в теме: 4

#1 Kori

Kori

    Новый участник

  • Members
  • Pip
  • 10 сообщений
  • ФИО:Клочков Роман

Отправлено 28 Май 2019 - 12:47

Всем привет!

Есть проект, у него есть требования к производительности сервера - запросы разных типов, скажем 1/2/3 должны обрабатываться не дольше 0,1/5/40 секунд, при условии что нагрузка не превышает запланированную (до 200 пользователей онлайн и до 50 одновременных запросов к системе).

 

В JMeter составил сценарий для проверки стабильности, который 8 часов должен поддерживать нагрузку близкую к максимальной, но не выше.

С 200 пользователей онлайн проблем нет, спасибо JMeter.

Но внезапно стал вопрос - как узнать, что вышли на требуемый уровень "одновременных запросов к системе"?

Внезапно осознал, что "Throughput" совсем не про это. Посмотрел листенеры и плагины - тоже не нашёл ничего нужного. В лучшем случае - график "количество активных тредов", что очевидно не то.

Пока единственная идея - сохранять в файл "view results in table", и скриптом из TimeStamp и SampleTime рисовать сколько запросов обрабатывал сервер каждую секунду.

Но выглядит уж больно костыльно - прогнать сценарий, посмотреть график запросов, подкрутить задержки, прогнать сценарий и тд...

 

Не верю, что JMeter не может, но в упор не вижу как. Подскажите пожалуйста!


  • 0

#2 Alex

Alex

    Постоянный участник

  • Members
  • PipPipPip
  • 230 сообщений
  • ФИО:Алексей

Отправлено 29 Май 2019 - 11:30

Всем привет!

Есть проект, у него есть требования к производительности сервера - запросы разных типов, скажем 1/2/3 должны обрабатываться не дольше 0,1/5/40 секунд, при условии что нагрузка не превышает запланированную (до 200 пользователей онлайн и до 50 одновременных запросов к системе).

 

В JMeter составил сценарий для проверки стабильности, который 8 часов должен поддерживать нагрузку близкую к максимальной, но не выше.

С 200 пользователей онлайн проблем нет, спасибо JMeter.

Но внезапно стал вопрос - как узнать, что вышли на требуемый уровень "одновременных запросов к системе"?

Внезапно осознал, что "Throughput" совсем не про это. Посмотрел листенеры и плагины - тоже не нашёл ничего нужного. В лучшем случае - график "количество активных тредов", что очевидно не то.

Пока единственная идея - сохранять в файл "view results in table", и скриптом из TimeStamp и SampleTime рисовать сколько запросов обрабатывал сервер каждую секунду.

Но выглядит уж больно костыльно - прогнать сценарий, посмотреть график запросов, подкрутить задержки, прогнать сценарий и тд...

 

Не верю, что JMeter не может, но в упор не вижу как. Подскажите пожалуйста!

А почему Throughput не про это? 


  • 0

#3 Little_CJIOH

Little_CJIOH

    Гуру

  • Members
  • PipPipPipPipPipPip
  • 1 409 сообщений
  • ФИО:Власкин Павел
  • Город:Санкт-Петербург


Отправлено 29 Май 2019 - 13:10

 

Всем привет!

Есть проект, у него есть требования к производительности сервера - запросы разных типов, скажем 1/2/3 должны обрабатываться не дольше 0,1/5/40 секунд, при условии что нагрузка не превышает запланированную (до 200 пользователей онлайн и до 50 одновременных запросов к системе).

 

В JMeter составил сценарий для проверки стабильности, который 8 часов должен поддерживать нагрузку близкую к максимальной, но не выше.

С 200 пользователей онлайн проблем нет, спасибо JMeter.

Но внезапно стал вопрос - как узнать, что вышли на требуемый уровень "одновременных запросов к системе"?

Внезапно осознал, что "Throughput" совсем не про это. Посмотрел листенеры и плагины - тоже не нашёл ничего нужного. В лучшем случае - график "количество активных тредов", что очевидно не то.

Пока единственная идея - сохранять в файл "view results in table", и скриптом из TimeStamp и SampleTime рисовать сколько запросов обрабатывал сервер каждую секунду.

Но выглядит уж больно костыльно - прогнать сценарий, посмотреть график запросов, подкрутить задержки, прогнать сценарий и тд...

 

Не верю, что JMeter не может, но в упор не вижу как. Подскажите пожалуйста!

А почему Throughput не про это? 

 

По определению и даже по названию. Throughput != Concurrency.

Объясняю популярно:

В условной "пятерочке" на кассах сидят 5 сонных "Зин" каждая из которых рассчитывает одного покупателя в минуту.

В не менее условной "семье" на кассе сидит одна бодрая "Клава" которая за ту же минуту рассчитывает 5 покупателей.

Что характерно, throughput в обоих случаях 5 покупателей в минуту, а вот concurrency в "пятерочке" - 5, а в "семье" - 1. потому что как бы ни была бодра  "Клава", двух покупателей одновременно она рассчитывать не может.


  • 0

#4 Kori

Kori

    Новый участник

  • Members
  • Pip
  • 10 сообщений
  • ФИО:Клочков Роман

Отправлено 29 Май 2019 - 13:41

Throughput - пропускная способность. и JMeter считает её не сильно парясь, особенно в "Summary" report. Просто делит количество Sample за тест на время теста. 

Если выводить графиком, то становится слегка лучше, особенно если granularity в 1 сек выставить.

Но всё равно это будет "сколько ответов выдал сервер за секунду", что совсем не равнозначно параметру "сколько запросов обрабатывал сервис за эту секунду"

Если на примере "крайних ситуаций", то 

пример 1

на сервере активно 50 пользователей и в наблюдаемую секунду в сервер прилетело 100 простых запросов, каждый был обработан очень быстро и Throughput вышел 75+. 

Прекрасный сервер, хотя одномоментно в работе не было больше 20 запросов

пример 2

на сервере активно 50 пользователей и в наблюдаемую секунду в сервер прилетело 50 запросов, из которых 10 было как в прошлом примере, а 40 с временем выполнения больше секунды. Throughput - 10

Вроде сервер так себе, хотя по факту он может быть заметно лучше по производительности, чем сервер в примере 1


  • 0

#5 Spock

Spock

    Гуру

  • Members
  • PipPipPipPipPipPip
  • 1 479 сообщений
  • ФИО:Роман

Отправлено 29 Май 2019 - 15:12

число запросов "в работе" на веб-сервере можно получить с помощью стандартных тулов мониторинга веб-сервера

 

просто замониторьте свой веб-сервер, там все увидите, и даже больше


  • 0


Тестирование производительности (JMeter)
онлайн
Тестирование удобства использования
онлайн
Тестирование REST API
онлайн
Тестирование веб-приложений 2.0
онлайн




Темы с аналогичным тегами jmeter

Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных

Яндекс.Метрика
Реклама на портале