Автор: Кристин Джеквони (Kristin Jackvony) Оригинал статьи Перевод: Ольга Алифанова
Тестирование производительности, как и ряд другой терминологии тестирования ПО, может интерпретироваться по-разному разными людьми. Некоторые объединяют под этим термином все типы тестов, замеряющих поведение приложения, и включают в него нагрузку и стресс-тестирование. Прочие используют его, говоря об отклике приложения при обычных условиях. Я буду пользоваться вторым вариантом определения.
Опыт подготовки и проведения тестирования производительности показывает, что неправильно построенный процесс может привести к неточным результатам и трудностям в поиске решения для улучшения производительности ПО.
В данной статье мы вместе с перфоманс-командой a1qa пройдем все обязательные этапы такой проверки и рассмотрим их особенности, опираясь на реальные кейсы.
Ещё недавно считалось, сервис должен просто работать. Нарисовали, заверстали, написали скрипты — вроде всё ок, можно катить на прод.
Но конкуренты не дремлют, поэтому начинается гонка не только за новыми функциями, но и за скоростью работы. Любое зависание приложения или долгий ответ сервера (не говоря уже про всплывающие 500-е ошибки) портят впечатление от сервиса и вынуждают пользователя уходить куда-то ещё. Наверняка, каждый сталкивался с ситуациями, когда вместо покупки билета на самолет, поезд или концерт на экране отображалось «Internal server error», и вы в ярости хотели разбить монитор.
Я — Виктор Бодров, работаю в Яндекс.Деньгах в команде исследований производительности и хочу рассказать о том, чем полезно изучать производительность прямо на продакшене
Финальная статья Алексея Остапова об инструменте для нагрузочного тестирования Locust. Сегодня поделюсь наблюдениями, которые накопил в процессе работы. Как всегда, видео прилагается.
Для тех, кому понравилась предыдущая статья Алексея Остапова, продолжаем публикацию его статей об инструменте для нагрузочного тестирования Locust.
В этой статье Алексей постарается наглядно показать преимущества написания нагрузочного теста python кодом, в котором можно удобно как подготавливать любые данные для теста, так и обрабатывать результаты.
Публикуем подборку докладов с конференции SQA Days 24, посвященную вопросам нагрузочного тестирования и тестирования безопасности.
Агент для симуляции трафика. Кто он – Николай Миронцев, СмартБеар Софтваре (Тула).
Интеллектуальное игровое моделирование в нагрузочном тестировании бизнес приложений – Владимир Крючков, Группа Полипластик (Москва).
CWE, CERT, MISRA, OWASP - просто модные слова или способ повысить качество программного обеспечения? – Евгений Рыжков, PVS-Studio (Тула).
Сломай меня, если сможешь! Или как протестировать устойчивость сложных распределенных системы к нештатным ситуациям? – Павел Липский, Сбербанк-Технологии (Санкт-Петербург).
Нагрузочное тестирование не так сильно востребовано и распространено, как иные виды тестирования — инструментов, позволяющих, провести такое тестирование, не так много а простых и удобных вообще можно пересчитать на пальцах одной руки.
Когда речь заходить о тестировании производительности — в первую очередь все думают о JMeter’е — он бесспорно остается самым известным инструментом с самым большим количеством плагинов. Мне же JMeter никогда не нравился из-за неочевидного интерфейса и высокого порога вхождения, как только возникает необходимость протестировать не Hello World приложение.
И вот, окрыленный успехом проведения тестирования в двух различных проектах, решил поделится информацией об относительно простом и удобном софте — Locust
Материал подготовлен компанией «Яндекс.Деньги». Оригинал статьи
Публикуем четыре доклада с митапа по тестированию BugsBusters (Яндекс.Деньги) от 18 декабря 2018 года о том, как правильно и со смыслом нагружать сервера в платёжных системах, банках и онлайн-играх.
Темы такие:
— регулярные боевые стрельбы и как их можно провести; — исследования производительности в рамках capacity management; — применение BDD для непрерывного нагрузочного тестирования; — как тестируют игровые сервера в World of Warships.
Такие термины, как тестирование производительности, нагрузочное и стресс-тестирование часто используются как синонимы. Однако замер скорости работы сервиса и измерение возможной нагрузки на него – это не одно и то же, а подтверждение способности сервиса справиться с нормальным уровнем нагрузки не означает, что он так же среагирует на очень высокую. Как же создавать высокоэффективные тесты производительности, не налепив распространенных ошибок?
Вначале определитесь, чего вы ожидаете от сервиса, и что именно вы хотите проверить. Ваше приложение – "заяц", обязанный максимально быстро отвечать на вопросы? А может, это "черепаха", которая выигрывает гонку благодаря постоянно поддерживаемой скорости?
В реальной жизни веб-сервисы имеют как качества зайца, так и качества черепахи, и эти качества должны быть сбалансированы. Они проверяются по-разному в зависимости от природы вашего теста. Без глубокого понимания сервиса, его применения пользователями, пользовательской базы и целей теста вы потратите много времени, гоняясь за несуществующими проблемами, в то время как реальные риски утекут у вас сквозь пальцы.
Все, кто когда-либо сталкивался с тестированием производительности, прекрасно знают, как сложно сделать отчеты понятными, хорошо визуализированными и прозрачными для заказчика. Очень важно выбрать "правильные" метрики и разработать нужные профили нагрузки, но если в результате заказчик увидит скучные и непонятные кривые на белом фоне, он вполне может отказаться от тестирования производительности как такового, поскольку результат будет не вполне прозрачен. Давайте посмотрим, как можно улучшить впечатление от результатов тестирования производительности, на примере интеграции JMeter с мощным инструментом визуализации - Grafana.