Мы разработали процесс, который рассматривает измерение нагрузки и производительности как первостепенную проблему - как вы говорите, оставляя его до конца проекта, это может привести к разочарованию ...
Итак, во время разработки мы включаем очень простое многопользовательское тестирование (с использованием selenium), которое проверяет основные сумасшествия, такие как нарушение управления сеансами, очевидные проблемы параллелизма и очевидные проблемы нехватки ресурсов. Нетривиальные проекты включают это в процесс непрерывной интеграции, поэтому мы получаем очень регулярную обратную связь.
Для проектов, которые не предъявляют экстремальных требований к производительности, мы включаем базовое тестирование производительности в наше тестирование; обычно мы пишем тесты с помощью BadBoy и импортируем их в JMeter, заменяя данные для входа и другие специфичные для потока вещи. Затем мы увеличиваем их до уровня, когда сервер обрабатывает 100 запросов в секунду; если время отклика меньше 1 секунды, этого обычно достаточно. Мы запускаем и движемся дальше по жизни.
Для проектов с экстремальными требованиями к производительности мы по-прежнему используем BadBoy и JMeter, но прилагаем много сил для понимания узких мест на серверах нашего тестового стенда (обычно на веб-серверах и серверах баз данных). Есть хороший инструмент для анализа журналов событий Microsoft , который очень помогает в этом. Обычно мы находим неожиданные узкие места, которые мы оптимизируем, если это возможно; это дает нам приложение, которое работает так же быстро, как и на «1 веб-сервере, 1 сервере базы данных». Затем мы обычно развертываем в нашей целевой инфраструктуре и используем один из сервисов «Jmeter in the cloud» для повторного запуска тестов в масштабе.
Опять же, отчеты PAL помогают проанализировать то, что произошло во время тестов - вы часто видите очень узкие места в производственных средах.
Главное, чтобы убедиться, что вы не только запускаете стресс-тесты, но и собираете информацию, необходимую для понимания производительности вашего приложения.