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

35
Управляемые набеги саранчи, или нагрузочное тестирование с Locust Алексей Деркач, октябрь 2015

Upload: aleksey-derkach

Post on 14-Apr-2017

347 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Управляемые набеги саранчи, или нагрузочное тестирование с Locust

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

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

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

Page 2: Управляемые набеги саранчи, или нагрузочное тестирование с Locust

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

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

нагрузкой

Page 4: Управляемые набеги саранчи, или нагрузочное тестирование с Locust

Недостатки JMeter

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

Page 5: Управляемые набеги саранчи, или нагрузочное тестирование с Locust

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

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

Page 6: Управляемые набеги саранчи, или нагрузочное тестирование с Locust

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

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

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

Page 7: Управляемые набеги саранчи, или нагрузочное тестирование с Locust

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

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

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

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

Page 8: Управляемые набеги саранчи, или нагрузочное тестирование с Locust

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

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

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

Page 9: Управляемые набеги саранчи, или нагрузочное тестирование с Locust

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

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

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

Page 10: Управляемые набеги саранчи, или нагрузочное тестирование с Locust
Page 11: Управляемые набеги саранчи, или нагрузочное тестирование с Locust

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

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

Page 12: Управляемые набеги саранчи, или нагрузочное тестирование с Locust

Locust

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

Page 13: Управляемые набеги саранчи, или нагрузочное тестирование с Locust

locust.io

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

Younited

Page 14: Управляемые набеги саранчи, или нагрузочное тестирование с Locust

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

● Python● Flask● gevent● Requests

Page 15: Управляемые набеги саранчи, или нагрузочное тестирование с Locust

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

Page 16: Управляемые набеги саранчи, или нагрузочное тестирование с Locust

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

Page 17: Управляемые набеги саранчи, или нагрузочное тестирование с Locust

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

Page 18: Управляемые набеги саранчи, или нагрузочное тестирование с Locust

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

Page 19: Управляемые набеги саранчи, или нагрузочное тестирование с Locust

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

Page 20: Управляемые набеги саранчи, или нагрузочное тестирование с Locust

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

Page 21: Управляемые набеги саранчи, или нагрузочное тестирование с Locust

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

Page 23: Управляемые набеги саранчи, или нагрузочное тестирование с Locust

locust.io: плюсы

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

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

Page 24: Управляемые набеги саранчи, или нагрузочное тестирование с Locust
Page 25: Управляемые набеги саранчи, или нагрузочное тестирование с Locust

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

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

Page 26: Управляемые набеги саранчи, или нагрузочное тестирование с Locust

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

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

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

Page 27: Управляемые набеги саранчи, или нагрузочное тестирование с Locust

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

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

Page 28: Управляемые набеги саранчи, или нагрузочное тестирование с Locust

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

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

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

Page 29: Управляемые набеги саранчи, или нагрузочное тестирование с Locust

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

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

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

Page 30: Управляемые набеги саранчи, или нагрузочное тестирование с Locust

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

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

Page 31: Управляемые набеги саранчи, или нагрузочное тестирование с Locust

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

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

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

Page 32: Управляемые набеги саранчи, или нагрузочное тестирование с Locust

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

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

Page 33: Управляемые набеги саранчи, или нагрузочное тестирование с Locust

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

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

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

Page 34: Управляемые набеги саранчи, или нагрузочное тестирование с Locust

Вопросы