Рекомендации по тестированию производительности веб-приложений

StackOverflow https://stackoverflow.com/questions/41857

Вопрос

Я собираюсь начать тестирование веб-приложения для интрасети.В частности, я должен определить производительность приложения.

Пожалуйста, не мог бы кто-нибудь предложить формальные / неформальные стандарты для того, как я могу судить о производительности приложения.

Это было полезно?

Решение

Используйте какой-нибудь инструмент для стресс-тестирования и нагрузочного тестирования.Если вы используете Java, взгляните на Jметр.Он предоставляет различные методы для тестирования производительности вашего приложения.Вы должны сосредоточиться на:

  • Время отклика:Насколько быстро ваше приложение работает для обычных запросов.Протестируйте какой-нибудь вариант использования для чтения / записи
  • Нагрузочный тест:Как ваше приложение ведет себя в условиях высокой загруженности.Инструмент отправит несколько запросов (вы можете настроить это должным образом) в течение определенного периода времени.
  • Стресс-тест:Может ли ваше приложение работать в течение длительного периода времени?Этот тест доведет ваше приложение до предела возможностей

Начните с этого, если вам интересно, есть и другие виды тестов.

Другие советы

Чтобы протестировать интерфейс, YSlow отлично подходит для получения статистики о том, сколько времени требуется для загрузки ваших страниц с точки зрения пользователя.Он разбивается на статистику по каждому конкретному HTTP-запросу, времени, которое он занял, и т.д.Получите это по адресу http://developer .yahoo.com/yslow/

Firebug, конечно, тоже необходим.Вы можете профилировать свой JS явно или в режиме реального времени, нажав на кнопку профиль.Проводите оптимизацию там, где это необходимо, и смотрите, сколько времени требуется для выполнения всех ваших функций.Это изменило способ, которым я измеряю производительность моего JS-кода. http://getfirebug.com/js.html

Действительно, я бы подумал, что самое важное - это время отклика, но другие показатели, на которые я бы обратил внимание, - это использование процессора и памяти в сравнении сколичество одновременно работающих пользователей/процессов.Я бы также проверил, все ли работает должным образом при нормальной, а затем и при пиковой нагрузке.Вы можете столкнуться со сценариями, в которых более высокая нагрузка вызывает ошибки приложения из-за того, что различные запросы накладываются друг на друга.

Если вы действительно хотите получить подробную информацию, вам следует провести различные типы нагрузочных / стресс-тестов.Вероятно, вы захотите взглянуть на пошаговый нагрузочный тест (постепенное увеличение числа пользователей в системе с течением времени) и пиковый тест (одновременный доступ значительного числа пользователей там, где раньше к нему почти никто не обращался).Я бы также запустил тесты на сервере сразу после его перезагрузки, чтобы посмотреть, как это повлияет на систему.

Вы также, вероятно, захотите ознакомиться с концепцией под названием HEAT (тестирование приложений в агрессивных средах).На самом деле это показывает, что происходит, когда какая-то часть системы переходит в автономный режим.Успешно ли происходит деградация системы?Это должно стать ключевым стандартом.

Мое единственное действительно важное предложение - установить, что должна делать система, прежде чем проводить тестирование.Главная причина - подотчетность.Заставьте людей признать, что система должна что-то делать, а затем протестируйте, чтобы убедиться, что это верно.Это ключевой момент, потому что люди сразу же увидят результаты, и это будет базовым критерием приемлемости.

"В частности, я должен определить производительность приложения ...."

Это завершает полный цикл рассмотрения вопроса о требованиях, отраженных ожиданиях вашего сообщества пользователей относительно того, что считается разумным и эффективным.Требования состоят из ряда компонентов

  1. Общее время отклика" Под нагрузкой ....Общее время отклика Сайта должно составлять менее x, y% времени ..."
  2. Определенное время отклика" Под нагрузкой ....Обработка кредитной карты должна занимать менее z секунд, a% времени ..."
  3. Элементы емкости системы " Под нагрузкой ....Емкость процессора | сети| оперативной памяти | диска не должна превышать n%...."
  4. Профиль нагрузки, представляющий собой совокупность количества пользователей и транзакций, которые будут иметь место, в соответствии с которыми собираются конкретные, объективные показатели для определения производительности системы.

Вы заметите, что время отклика и другие показатели не являются абсолютными.Если взять страницу от руководителей производства six sigma, то затраты на переход от 1 исключения на миллион к 1 исключению на миллиард являются экстраординарными, а затраты на переход к нулевому количеству исключений обычно являются затратами, непосильными для среднестатистической организации.То, что считается приемлемым временем отклика для уникального приложения для вашей организации, скорее всего, будет полностью отличаться от высокооплачиваемого предложения, представляющего собой общедоступное приложение, ориентированное на Интернет.Для высококонкурентных решений ожидаемое время отклика в Интернете колеблется в пределах 2-3 секунд, когда отказ пользователя резко возрастает.За последнее десятилетие этот показатель снизился с 8 секунд до 4 секунд, а теперь находится в диапазоне 2-3 секунд.Некоторые приложения, такие как Facebook, показывают почти незаметное время отклика менее одной секунды по соображениям конкуренции.Если вы ищете жесткий стандарт, то их просто не существует.

Кое-что, что поможет вам понять, - это ознакомиться с парой отраслевых критериев стиля, формы, функциональности.

Настройка надежного набора тестов производительности, соответствующего вашим потребностям, - это нетривиальный вопрос.Возможно, вы захотите привлечь специалиста для выполнения этого этапа ваших усилий по обеспечению качества.

При выборе инструмента убедитесь, что вы выбрали тот, который может

  • Тренируйте свой интерфейс
  • Отчет соответствует вашим требованиям
  • У вас или вашей команды есть навыки, которые можно использовать
  • Вы можете пройти обучение и будете посещать его с благословения руководства

Если произойдет осечка по любому из четырех вышеперечисленных элементов, вы также приобретете самый дорогой инструмент на рынке и наймете самую дорогую фирму для его внедрения.

Удачи вам!

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top