Веб-приложение, с точки зрения непрофессионала, — это веб-сайт, который в основном использует браузер для реализации своих функций.
Когда дело доходит до стресс-тестирования, мы подразумеваем стресс-тестирование на стороне сервера. На самом деле, это одностороннее стресс-тестирование, включающее стресс-тестирование на стороне сервера и внешнее стресс-тестирование.
Следующий контент будет расширен из следующих частей:
Вначале веб-приложения не были разделены на фронтенд и бэкенд. Позже, когда функций веб-сайта становилось все больше и больше, архитектура без разделения фронтенда и бэкенда в то время казалась неэффективной и отсталой. , родилось применение архитектуры с разделением фронтенда и фронтенда.
В режиме архитектуры, когда передняя и задняя части разделены, инженеры внешней и внутренней частей согласовывают интерфейс взаимодействия данных для достижения параллельной разработки. Таким образом, веб-приложение фактически состоит из двух независимых частей: внешней и внутренней части.
Кроме того, исследование Google DoubleClick показывает, что если время загрузки веб-страницы увеличится на 1 секунду, пользователи потеряют 10%, а если время загрузки превысит 3 секунды, пользователи уйдут.
Таким образом, для нового веб-приложения, помимо обычного стресс-тестирования на стороне сервера, также необходимо провести стресс-тестирование внешнего интерфейса.
Полный процесс стресс-тестирования веб-приложения показан на рисунке ниже.
1. Определите объем испытаний под давлением и цели испытаний под давлением.
Диапазон измерения давления:еслида Совершенно новый проект,В принципе, все функции и интерфейсы должны быть подвергнуты стресс-тестированию. Если есть новые требования к старым проектам,нужно оценить масштаб воздействия,Определите, требуют ли старые функции и интерфейсы стресс-тестирования.
Цель стресс-теста:еслида Совершенно новый проект,Ориентировочная цель должна быть установлена на основе базовой ситуации и опыта в отрасли.,Если да старый проект,В качестве эталонных целей можно использовать исторические пики трафика.
2. Разработайте план стресс-тестирования
На основе ожидаемых целей на предыдущем этапе сформулируйте план стресс-тестирования. В частности, укажите: среду стресс-тестирования, время стресс-тестирования, соответствующее ответственное лицо, инструменты или платформы тестирования, критерии приемки.
Среда стресс-тестирования:Чтобы восстановить реальную сцену давления,Обычно для стресс-тестирования выбирается предварительная или производственная среда.
Время испытания давлением:Стресс-тестирование обычно проводится после завершения функционального тестирования или тестирования интерфейса.。
Инструменты или платформы стресс-тестирования:Можно использовать предварительные испытания под давлением.PageSpeedи другие платформы,задняя Обычно используется частичное измерение давления jmeter、loadrunnerждатьинструмент。(Подробности см. в Приложении 1 и Приложении 2.)
Критерии приемки:В общем, необходимо добиться Цель Ориентировочная стоимость стресс-теста
3. Подготовка к испытаниям под давлением
Машина для стресс-тестирования: подготовьте группу машин для стресс-тестирования для отправки запросов.
Сервер: поскольку трафик стресс-теста будет высоким, необходимо заранее подготовить кластер серверов для обработки трафика или расширения мощности.
Подготовка данных: подготовьте данные для стресс-тестирования, которые обычно необходимо отличать от реальных данных; подготовьте сценарии стресс-тестирования, которые обычно требуют добавления идентификаторов, чтобы отличить их от реального трафика.
4. Проведите стресс-тестирование
Давление: В процессе подачи давления начните с меньшего расхода и постепенно увеличивайте давление.
Наблюдение: В процессе постепенного увеличения давления необходимо наблюдать за такими данными, как RT, ошибка (частота сообщений об ошибках), процессор сервера, использование памяти и другие данные. Если обнаружена аномалия, испытание под давлением необходимо вовремя прекратить. , и испытание под давлением может быть выполнено после устранения неполадок и решения проблемы.
5、Наблюдение за испытанием под давлением&Анализ узких мест
Как оценить доступность приложения?
В процессе стресс-тестирования наблюдайте за такими показателями, как частота отчетов об ошибках и время отклика. Если появляются какие-либо аномальные индикаторы, это означает, что трафик достиг текущего узкого места, и анализ стресс-тестирования необходимо остановить и выяснить причину.
Ниже приведены некоторые распространенные методы анализа аномалий:
Когда вам нужно добавлять серверы?
После настройки узкого места на предыдущем этапе продолжайте увеличивать давление и наблюдайте за различными показателями.
6. Принятие
достичь ожидаемых целей:достичь ожидаемых целей, в целом можно считать, что испытание под давлением выдержало
еще нетдостичь ожидаемых целей:По разным причинам(ресурс、Бюджетждать)еще нетдостичь ожидаемых целей,Менеджеры по продуктам и менеджеры по исследованиям и разработкам обязаны подтвердить результаты стресс-тестов.
7. Отправьте отчет о стресс-тестировании.
Как написать хороший отчет о стресс-тестировании можно посмотреть здесь. Как составить изысканный отчет о тестировании производительности? - Чжиху
8. Проект выходит в интернет
После выполнения предыдущих шагов проект можно выпустить и запустить.
google Разработчики предложилиЖЕЛЕЗНОДОРОЖНАЯ модельдля измерения производительности интерфейса вашего приложения,Прямо сейчас отклик, анимация, холостой ход и загрузка.
Широко используемые ключевые индикаторы модели RAIL:
Использование инструмента:PageSpeed
PageSpeed — это инструмент автоматизации с открытым исходным кодом от Google. Просто установите расширение PageSpeed и запустите его.
Результаты отчета следующие:
Этот инструмент богат функциями, отчет также очень подробный, и даны предложения по оптимизации. Вы можете провести соответствующую оптимизацию на основе отчета об испытаниях.
Бэкэнд относится к серверу, а стресс-тест бэкэнда — это стресс-тест сервера, который также можно назвать стресс-тестом сервера.
В процессе стресс-тестирования мы обычно обращаем внимание на следующие показатели: qps (количество обработанных запросов), rt (время ответа), error (частота сообщений об ошибках), cup (загрузка процессора), mem (использование памяти), нагрузка ( нагрузка) ), трафик (скорость сети).
Наблюдая за такими ключевыми показателями, как qps, rt и error, можно обнаружить узкое место в производительности сервера. Если оно ниже ожидаемого, необходимо его настроить.
С помощью стресс-тестирования можно заранее обнаружить узкие места сервера и вовремя оптимизировать его, чтобы предотвратить сбой веб-сайта сразу после его выхода в Интернет.
инструмент:Обычно используется для испытаний под давлениеминструментиметьloadrunnerиjmeter(Конец статьииметьобучающее видео)
Jmeter — это бесплатный инструмент тестирования с открытым исходным кодом, разработанный на Java. Он в основном используется для тестирования производительности. JMeter можно использовать для моделирования огромных нагрузок на серверы, сети или объекты. Он имеет богатый графический интерфейс + настройку сценариев. простой в использовании.
LoadRunner — это инструмент нагрузочного тестирования, который прогнозирует поведение и производительность системы. Подтверждайте и находите проблемы, моделируя десятки миллионов пользователей для реализации одновременных нагрузок и мониторинга производительности в реальном времени.