Управляемые набеги саранчи, или нагрузочное...
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: web-gui
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 ;)
Вопросы
Ссылки
1. http://locust.io/2. https://truveris.github.io/articles/locust/3. http://andrew-jones.com/blog/load-testing-with-locust/4. http://www.skurfer.com/talks/Locust.html5. http://abhishek-tiwari.com/post/performance-testing-as-a-first-
class-citizen6. http://fairwaytech.com/2013/03/load-testing-with-locust-on-
windows/