Возможно, кого-то заинтересует, как «быстро» провести нагрузочное тестирование своего веб-приложения.
Подробности под катом
Вместо предисловия
На сегодняшнем стендапе Марек (программист из Польши, участвующий в проекте ЭмФордж ) сказал, что разговаривал с рядом друзей, имевших большой опыт работы с LifeRay (которым мы активно пользуемся) — и опыт оказался весьма негативным, в первую очередь из-за проблем со скоростью.Некоторые проекты были по глупости закрыты из-за того, что эти проблемы невозможно было решить.
Нет — мы, конечно, собирались провести нагрузочное тестирование, но не сейчас, чуть позже, когда функционала будет больше, и тогда чисто для того, чтобы убедиться, что всё ок, или «не ок» в каких-то определённых местах — и исправить их.
Но тут возник вопрос: если все так плохо, то какие-то решения надо принимать сейчас – пока не поздно.
Вывод один – нагрузочное тестирование получает более высокий приоритет по сравнению с другими задачами.
Не «быстро»
Изначально планировалось пойти стандартным путем – взять JMeter , для начала написать простой скрипт обхода главных страниц с основным функционалом анонимного пользователя - потом понемногу улучшать его, попутно решая вопросы, как грамотно запустить это добро на нескольких клиентских машинах.
В общем задача не на один час
Как насчет быстрого?
Но тут я вспомнил, что была статья на Хабре (к сожалению, статью не нашел - ссылку бы выложил), где человек жаловался, что люди не проводят нагрузочное тестирование на своем сайте, они присылают ссылку на Хабр, а потом, когда нужно снять «сливки» «Мучительно сайт поднимать с Хабраэффекта (а пользователи не видят ничего, кроме сообщений об ошибках).Итак, кто-то там порекомендовал несколько сервисов, которые проводят такое нагрузочное тестирование.
В общем, самая полезная ссылка на тему нагрузочного тестирования была этот — здесь перечислены такие утилиты, как JMeter и сервисы для организации тестирования.
На первых трёх остановлюсь немного подробнее.
Действительно быстро?
Чтобы быть очень быстрым, это Влияние нагрузки - регистрация не требуется - заходите, дайте URL - и уже через 10-15 минут 50 виртуальных пользователей терроризируют вашу страницу.
Глупо, просто — но, по крайней мере, это позволит вам увидеть, что при первом же наплыве ваше приложение не подведет. Не лег спать? Вперед, продолжать
Нагрузочное тестирование за 1,5 часа
мне действительно это понравилось Лоадшторм .Работа с ним строится следующим образом: 1. зарегистрироваться 2. Создаем тест - в котором указываем сайт, который будем мучить 3. Прежде чем приступить к пыткам, необходима верификация (а вдруг вы захотите установить сайт конкурента????).
вам нужно поместить на главную страницу определённый текст с кодом - или файл с определённым именем в корне 4. Далее создаем сценарий — при создании сценария мы описываем, как пользователь перемещается по вашему сайту, по каким ссылкам он переходит, и вы можете отправлять формы.
Все достаточно интуитивно и понятно 5. затем говорим, когда запускать 6. В назначенное время стартует тест, подождите 30 минут, пока по вашему сайту по вашим инструкциям прогуляется до 50 пользователей - и получите отчет. Да, 50 одновременных пользователей - это не совсем серьезно - это даже близко не хабро-эффект - но это уже что-то.
Если нужно больше, есть платная подписка (да, забыл сказать, что все бесплатно).
В моем случае 50 одновременных пользователей — это нагрузка, о которой я даже не могу мечтать в ближайшие несколько месяцев, так что мне этого хватило.
В общем, на описание сценария из 15 последовательных страниц ушло около полутора часов, дождаться запуска теста и дождаться самих результатов, в результате я получил графики типа
На этом графике видно, как мучалась система - в моем случае было максимум 47 пользователей - и чуть больше 3 запросов в секунду
Ну и самое интересное
Из чего следует, что если исключить максимальный пик в 5 секунд (в этот момент решил включиться сборщик мусора) - в остальном приложение вело себя хорошо - причем независимо от количества пользователей - то есть нагрузка в 50 пользователей не происходит. загружаю сайт - там тоже сток хороший.
Понятно, что такое тестирование не совсем «серьёзно» по получаемым результатам, и 50 одновременных пользователей серьёзной нагрузкой назвать нельзя, но, учитывая затраченное время (полтора часа) и деньги (0 рублей), то результат вполне адекватный.
По крайней мере, мы убеждены, что если и возникнут проблемы с производительностью, то в ближайшие месяцы мы их все равно не увидим.
Немного дольше и дороже
Если вы хотите чего-то более серьезного, вы можете попробовать.ОбзорМоб - Сам не пробовал - разница в том, что они вместе с виртуальными пользователями мучают ваш сайт реальными - но и стоит дороже.
В любом случае посмотрите - может пригодится На этом всё, удачи, счастливых хаброэффектов! Теги: #нагрузочное тестирование #Высокая производительность
-
Лоуэлл, Персиваль
19 Oct, 24 -
Драгоценный Камень The_Sortable_Tree
19 Oct, 24 -
Рефлексивная Музыкальная Ловушка 2
19 Oct, 24 -
Google Chrome + Ssl
19 Oct, 24