Управляемые набеги саранчи, или нагрузочное...

Post on 14-Apr-2017

348 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Управляемые набеги саранчи,

или нагрузочное тестирование с Locust

Алексей Деркач, октябрь 2015

Предыдущий опыт

● Web-приложение с REST-API● JMeter● CSV датасеты● немного BeanShell-скриптинга● распределённый тестовый стенд● сбор статистики тестовых нод● сбор показателей сервера под

нагрузкой

Недостатки JMeter

● Ресурсоёмкий● Непредсказуемый● Неудобный в отладке● BeanShell● Слабокастомизируемый

Недостатки JMeter: ресурсоёмкий

Во всём:● память● процессорное время● сеть● диск

Недостатки JMeter: непредсказуемый

● падения на долгоиграющих тестах

● резкие скачки/провалы RPS

Недостатки JMeter: отладка

● просмотр результатов HTTP Request

● использование Debug Sampler (по 1 на каждую переменную)

● использование BeanShell

Недостатки JMeter: BeanShell

● почти Java● интерпретируемый● в статистике на равных

считается с HTTP Request

Недостатки JMeter: слабокастомизируемый

● GUI-ориентированность● нельзя просто так взять и

переопределить метод ;)

Альтернативы

● locust.io● Яндекс.Танк● Tsung● LoadRunner● WAPT● … + много других

Locust

Locust (саранча) - несколько видов насекомых семейства настоящие саранчовые (Acrididae), способных образовывать крупные стаи (численностью до сотен миллионов особей), мигрирующие на значительные расстояния

locust.io

● Open-source● Python● Web-приложение● Не только для Web● Battlelog, ThoughtWorks,

Younited

locust.io: что под капотом?

● Python● Flask● gevent● Requests

locust.io: простейший тест

locust.io: два теста

locust.io: два теста с разным весом

locust.io: предварительные действия

locust.io: POST-запрос

locust.io: операции с содержимым ответа

locust.io: группировка запросов

locust.io: плюсы

● Python● Расширяемый● Легкий в использовании● Большое число одновременных

тестов (пользователей)

locust.io: недостатки

● Порог вхождения выше, чем в JMeter

locust.io: недостатки

● Порог вхождения выше, чем в JMeter

Может это не так уж и плохо :)

locust.io: недостатки

● Нет графиков

locust.io: недостатки

● Нет графиков

Зато есть экспорт в CSV, а дальше - Excel, LibreOffice Calc, Google Spreadsheets

locust.io: недостатки

● Нет возможности мониторить нагрузку сервера

Самое простое решение - htop.

locust.io: недостатки

● Однотонные логи

locust.io: недостатки

● Однотонные логи

Легко поправить с помощью colorama.

locust.io: недостатки

● Прочие мелочи

locust.io: недостатки

● Прочие мелочи

https://github.com/locustio/locust ;)

Вопросы

top related