Приложение может работать хорошо для одного пользователя (функциональное тестирование), но его производительность может снижаться в режиме реального времени, когда к нему обращаются несколько пользователей (нагрузочное тестирование) из-за нехватки системных ресурсов.
С помощью нагрузочного тестирования мы можем анализировать, где и когда наша система выходит из строя, исправлять ошибки и узкие места до того, как они действительно произойдут, в режиме реального времени, чтобы избежать потери доходов и расстроить пользователей.
В этом руководстве по нагрузочному тестированию мы рассмотрим следующее
Что такое нагрузочное тестирование?
Нагрузочное тестирование проводится для проверки того, что система/приложение может обрабатывать ожидаемое количество транзакций, а также для проверки поведения системы/приложения в условиях нормальной и пиковой нагрузки (количество пользователей).
Нагрузочное тестирование — это подмножество производительности. Тестирование и является типом нефункционального тестирования.
Подробнее: более 100 типов тестирования программного обеспечения
С помощью нагрузочного тестирования мы можем определить максимальной производительности нашего приложения, а также найти любые узкие места и определить, какой элемент вызывает проблемы в нашем приложении.
Мы проводим нагрузочные тесты, чтобы определить общее поведение системы, задержку и пропускную способность.
Нагрузочное тестирование определяет, как система ведет себя при доступе нескольких пользователей
Чтобы получить приемлемое время отклика приложения, все три команды (бизнес , проектирование и эксплуатация) должны быть согласованы заранее.
Мы знаем, что многие пользователи покидают приложение, когда время отклика превышает 2 секунды. Таким образом, группа бизнес-анализа должна сначала проанализировать время отклика приложения. Если время отклика превышает 2 секунды, команда инженеров должна оптимизировать производительность, а группа эксплуатации должна подготовиться с необходимыми ресурсами. Если системных ресурсов недостаточно, приложение останавливается.
Примеры нагрузочного тестирования:
Некоторые основные примеры нагрузочного тестирования:
- Тестирование веб-сайта путем загрузки серии больших файлов из приложения
- Тестирование сервера путем одновременного запуска нескольких приложений на сервере
- Тестирование принтера путем одновременного назначения принтеру большого количества заданий в очереди на печать
- Тестирование жесткого диска путем непрерывной записи и чтения данных
- Тестирование почтового сервера с тысячами одновременных пользователей
Почему важно нагрузочное тестирование?
Нагрузочное тестирование важно, потому что оно отвечает на некоторые ключевые вопросы производительности и дает уверенность в системе.
- Чтобы определить, соответствуют ли существующие ресурсов (инфраструктуры), которые у нас есть, достаточно или нет, чтобы справляться с ожидаемой и пиковой нагрузкой.
- Чтобы определить узкие места в приложении
- Чтобы выяснить, как наша система работает под нагрузкой
- Чтобы определить, сколько одновременных пользователей может обрабатывать приложение
- Чтобы определить, может ли наше приложение масштабироваться
- Чтобы определить, на каком уровне загрузить наше приложение может сломаться
- Чтобы найти максимальную рабочую мощность приложения
- Чтобы смоделировать реальные пользовательские сценарии. С точки зрения того, как он будет работать, когда сотни, тысячи или даже миллионы пользователей посетят его в режиме реального времени.
- Чтобы сэкономить деньги и получить доход
Важность нагрузочного тестирования — примеры
Возьмем, к примеру, один из самых больших дней продаж Amazon (Prime Day) в Июль 2018 г. Не удалось защитить достаточно серверов, чтобы справиться с всплеском трафика в Prime Day, который произошел в течение 15 минут после начала Prime Day. Один час простоя Amazon в Prime Day может стоить компании от 72 до 99 миллионов долларов упущенных продаж
Нью-Йоркская фондовая биржа внезапно закрылась и не возобновляла торги более 3 часов в 2018 году. Было сказано, что сбой был вызван технической «проблемой с конфигурацией».
Рейсы United Airlines в США были остановлены более чем на час из-за «проблем с автоматизацией». Авиакомпания опубликовала заявление, в котором говорится, что из-за проблем с подключением к сети рейсы не выполняются. Это приводит к потере дохода и доли рынка.
Как проводить нагрузочное тестирование
Процесс нагрузочного тестирования включает следующие этапы.
- Настройка тестовой среды. Первым шагом является создание специальной тестовой среды для нагрузочного тестирования. Тестовая среда должна быть такой же, как и производственная.
- Определение критериев производительности. На этом этапе мы должны определить такие критерии, как допустимые ограничения времени отклика, пропускной способности и загрузки ЦП
- .Определение нагрузочных тестов. На этом этапе мы определяем нагрузочные тесты, такие как подготовка тестовых данных для каждой транзакции, прогнозирование количества пользователей, обращающихся к системе, определение скорости соединения, различных браузеров и операционных систем, настройка серверов.
- Виртуальный Настройка пользователей — создание задач, выполняемых виртуальными пользователями.
- Создание, выполнение и мониторинг сценариев тестирования
- Анализ результатов тестирования и выработка рекомендаций — анализ узких мест производительности на основе отчетов и предоставление рекомендаций по их устранению< li>Точная настройка системы и повторное тестирование сценариев для преодоления всех узких мест
Преимущества и недостатки нагрузочного тестирования:
Преимущества нагрузочного тестирования:
- Выявление узких мест в производительности перед выводом приложения на рынок.
- Повысить масштабируемость системы с точки зрения ресурсов, таких как программное обеспечение, база данных, сети и т. д.
- Свести к минимуму риск простоя системы.
- Повышение удовлетворенности конечных пользователей.
- Снижение стоимости отказа. .
Недостатки нагрузочного тестирования:
- Большинство инструментов нагрузочного тестирования, доступных на рынке, лицензированы и стоят дорого, поскольку цена зависит от количества виртуальных пользователей.
- Тестерам необходимо изучить язык, поддерживаемый инструментом нагрузочного тестирования, чтобы создавать тестовые сценарии.
< h3>Разница между нагрузочным тестированием и стресс-тестированием (нагрузочное тестирование и стресс-тестирование)
НАГРУЗОЧНОЕ ТЕСТИРОВАНИЕ | НАГРУЗОЧНОЕ ТЕСТИРОВАНИЕ |
---|---|
Это подмножество тестирования производительности | Это подмножество тестирования производительности |
Целью нагрузочного тестирования является определение ограничить систему, установить SLA приложения и проверить, как система справляется с большой нагрузкой | Цель стресс-тестирования — выяснить, как система ведет себя при экстремальных нагрузках и как она восстанавливается после сбоя |
Ограничение нагрузки – это порог обрыва | Ограничение нагрузки выше порога перерыва |
Атрибуты, которые проверяются при нагрузочном тестировании: пиковая производительность, пропускная способность сервера, время отклика при различных уровнях нагрузки , требования к балансировке нагрузки и т. д. | Атрибуты, которые проверяются при стресс-тестировании, – это стабильность, время отклика, пропускная способность и т. д., |
Нагрузочное тестирование выполняется для проверки производительности системы при экстремальной нагрузке. | Стресс-тестирование выполняется для проверки устойчивости системы при экстремальной нагрузке. |
Это помогает нам понять, как система ведет себя при ожидаемой нагрузке. | Это помогает нам понять, как система ведет себя при экстремальной нагрузке, превышающей ожидаемую мощность. |
Здесь тестовыми данными будет огромное количество пользователей . | Здесь тестовыми данными будет огромное количество пользователей и огромный объем данных. |
Используется для определения верхнего предела емкости системы. | Используется для определения производительности и возможности восстановления системы, когда она подвергается нагрузке, превышающей верхний предел емкости системы. . |
Нагрузочные тесты помогают тестировщику определить узкое место, а также понять основную причину таких проблем. | Стресс-тесты помогают тестировщику выявлять утечки памяти, замедления работы, проблемы безопасности и повреждение данных. |
< strong>Какие популярные инструменты нагрузочного тестирования используются для нагрузочного тестирования?
На рынке существует множество инструментов для нагрузочного тестирования. Мы можем выбрать наш любимый инструмент из бесплатных инструментов нагрузочного тестирования веб-сайтов, платных инструментов и бесплатных инструментов в зависимости от наших потребностей. Почти все коммерческие инструменты тестирования производительности имеют бесплатную пробную версию. Вы можете получить возможность поработать на практике, прежде чем решить, какой инструмент лучше всего подходит для ваших нужд.
Некоторые из инструментов: LoadRunner, Apache JMeter, WebLOAD, LoadView и Loadrunner.
Полный список инструментов нагрузочного тестирования, доступных на рынке, см. в нашей статье о лучших инструментах нагрузочного тестирования.
Посмотрите наш полный список популярных инструментов нагрузочного тестирования.
Вывод:
Нагрузочное тестирование проверяет потенциальные ограничения производительности приложения. Успешное нагрузочное тестирование направлено на создание качественных приложений, которые могут обслуживать большое количество пользователей.
TAG: qa