Когда дело доходит до тестирования производительности, существует множество категорий, включая нагрузочное тестирование, стресс-тестирование, пиковое тестирование, тестирование долговечности, тестирование масштабируемости, тестирование емкости и т. д.
Тестирование производительности используется для определения производительности системы для измерения и проверки скорости реагирования системы, эффективности, возможности расширения объема бизнеса, стабильности и других качественных характеристик в различных условиях нагрузки. Целью тестирования производительности является не только обнаружение дефектов производительности системы, но и содействие настройке производительности для устранения узких мест в производительности системы.
Инструменты тестирования производительности могут быть коммерческими или бесплатными. Для коммерческого тестирования производительности в Китае существует служба тестирования производительности Alibaba Cloud PTS, которая взимает разумную плату. Все зарубежные инструменты тестирования производительности — LoadRunner. Бесплатный инструмент с открытым исходным кодом также является наиболее часто используемым Jmeter.
Возможности и функции, поддерживаемые программной системой, не являются единственной проблемой: важна производительность программного приложения, такая как время отклика, надежность, использование ресурсов и масштабируемость.
Целью тестирования производительности является не поиск ошибок, а устранение узких мест в производительности. Тестирование производительности проводится для предоставления заинтересованным сторонам информации о скорости, стабильности и масштабируемости их приложений.
Тестирование производительности в первую очередь отражается на пользовательском опыте. Пользователи возлагают большие надежды на скорость отклика приложения. Тестирование производительности может гарантировать хорошее взаимодействие с пользователем даже в часы пик.
Во-вторых, тестирование производительности используется для выявления узких мест, стабильности и надежности системы и принятия более разумных инвестиционных решений. Это помогает избежать ситуаций избыточного обеспечения или недостаточности ресурсов.
Затем можно провести тестирование производительности, чтобы предотвратить частоту катастрофических сбоев, помочь сохранить имидж бренда и сократить экономические потери, а также провести анализ затрат и выгод.
Наконец, тестирование производительности может эффективно информировать бизнес-решения и решения о выборе технологий, в том числе о том, когда модернизировать существующие мощности, внедрить новые технологии или расширить масштабы, чтобы справиться с возросшим спросом.
Кривая нагрузки при тестировании производительности — это метод графического представления, используемый для визуального отображения производительности системы в различных условиях нагрузки. Обычно он показывает взаимосвязь между ключевыми показателями, такими как количество виртуальных пользователей, время отклика, пропускная способность и т. д., с течением времени.
На этой диаграмме показано количество виртуальных пользователей (ВУ) с течением времени во время теста. Для модели ступенчатого увеличения вы увидите постепенно возрастающую линию, если это пиковая нагрузка, то пик будет четким;
На этом графике показаны тенденции времени отклика приложений по мере увеличения числа виртуальных пользователей. В идеале время ответа должно оставаться в пределах приемлемого диапазона даже при увеличении числа пользователей. Если есть значительная точка роста, может быть и узкое место.
Пропускная способность — это количество запросов, обрабатываемых в единицу времени. Эта диаграмма помогает понять максимальное количество одновременных запросов, которые может поддерживать система. При приближении или превышении определенного порога пропускная способность может начать снижаться, указывая на то, что система достигла предела своих вычислительных возможностей.
На этом графике показана доля ошибок, возникающих в системе при увеличении нагрузки. Высокая частота ошибок может быть результатом перегрузки или признаком проблемы с кодированием.
Включая взаимосвязь между индикаторами на стороне сервера, такими как загрузка ЦП, использование памяти, скорость дискового ввода-вывода, время и т. д. Эти данные помогают выявить проблемные области, вызванные аппаратными ограничениями.
Иногда, чтобы получить более полное представление о поведении системы, можно сравнить несколько приведенных выше показателей на одном графике. Например, такая информация, как количество виртуальных пользователей, среднее время ответа и количество транзакций в секунду, отображается одновременно в одной и той же системе координат.
Для создания таких диаграмм обычно требуется использование профессиональных инструментов тестирования производительности, таких как JMeter, LoadRunner, Gatling и т. д. Они могут не только генерировать сценарии для выполнения тестов производительности, но также предоставлять богатые функции отчетности и визуализации для анализа результатов.
Тщательно анализируя эти диаграммы, команды могут лучше оптимизировать производительность приложений и обеспечить качество обслуживания и удобство для пользователей.
Модель кривой давления при испытаниях производительности. Это классическое изображение, относящееся к испытаниям, называемое диаграммой кривой давления при испытаниях.
Горизонтальная ось: количество одновременных пользователей, показывающее непрерывный рост количества одновременных пользователей слева направо. Вертикальная ось: существуют три кривые использования ресурсов, включая аппаратные ресурсы и программные ресурсы, которые характеризуют количество транзакций в секунду;
Область: график кривой в основном разделен на 3 области, а именно: область легкого давления, область сильного давления и зона заброшенности.
Три кривые на вертикальной оси, каждая кривая представляет собой информацию, на которую следует обратить внимание в процессе тестирования производительности:
Кривая использования количества одновременных пользователей и ресурсов (оранжевая)
Кривая пропускной способности количества одновременных пользователей (красная)
Кривая времени ответа количества одновременных пользователей (синяя)
Поскольку число пользователей продолжает расти, очевидно, что на рисунке есть две переломные точки:
Первая точка перегиба: оптимальное количество одновременных пользователей, количество одновременных пользователей на стыке областей легкого давления и области сильного давления.
Представляет оптимальное количество одновременных пользователей: это не приведет к напрасной трате ресурсов, а также может удовлетворить существующие потребности.
Между первой точкой перегиба и второй точкой перегиба: максимальное количество одновременных пользователей, количество одновременных пользователей на стыке зоны сильного давления и зоны заброшенности, среднее время ответа будет все выше и выше, а среднее время ответа время напрямую повлияет на пользовательский опыт. Кривые пропускной способности и использования относительно плавные.
Вторая точка перегиба: представляет максимальное количество одновременных пользователей, которые может поддерживать система. Если этот уровень параллелизма превышен, это означает, что сервер необходимо расширить.
Анализ процесса: этап 1. Зона легкого давления. По мере увеличения количества одновременных пользователей использование ресурсов и пропускная способность (TPS) будут соответственно увеличиваться, но время отклика (RT) в основном стабильно и незначительно увеличивается;
Стадия 2. Зона тяжелого давления. Когда количество одновременных пользователей увеличивается до определенного значения, использование ресурсов имеет тенденцию к насыщению, рост пропускной способности (TPS) существенно замедляется или даже прекращается, а время отклика (RT) еще больше увеличивается.
Зона отказа 3-й стадии: если количество одновременных пользователей продолжает расти, использование программных и аппаратных ресурсов продолжает оставаться в состоянии насыщения (перенасыщения), но пропускная способность (TPS) начинает снижаться, а время отклика (RT) резко увеличивается. .
Подводя итог, можно сказать, что когда загрузка системы равна оптимальному количеству одновременных пользователей, общая эффективность системы является самой высокой, ресурсы не тратятся впустую, и пользователям не нужно ждать, когда загрузка системы находится в пределах оптимального количества одновременных пользователей; пользователей и максимальное количество одновременных пользователей, система может продолжать работать, но время ожидания пользователя увеличивается, и удовлетворенность начинает снижаться. Если нагрузка продолжится, некоторые пользователи в конечном итоге не смогут ее выдержать и сдадутся; нагрузка превышает максимальное количество одновременных пользователей, это неизбежно приведет к тому, что некоторые пользователи не могут терпеть долгое время ответа и сдаются.
Поэтому данные теста производительности следует хранить, чтобы загрузка ЦП была достаточно высокой, а пропускная нагрузка всей системы была контролируемой.
Тестирование производительности имеет решающее значение для обеспечения качества программного обеспечения, улучшения пользовательского опыта и снижения эксплуатационных рисков. Это неотъемлемая часть жизненного цикла разработки программного обеспечения, особенно в условиях все более сложных ИТ-сред и технических проблем. Это правда.