Нагрузочное тестирование в ASP.NET Core
Нагрузочное тестирование и нагрузочные испытания важны для обеспечения эффективности и масштабируемости веб-приложения. Нагрузки и стресс-тестирование имеют разные цели, даже если они часто используют аналогичные тесты.
Нагрузочные тесты. Проверьте, может ли приложение обрабатывать указанную нагрузку пользователей для определенного сценария при выполнении цели ответа. Приложение запускается в нормальных условиях.
Стресс-тесты: проверьте стабильность приложения при выполнении в экстремальных условиях, часто в течение длительного периода времени. Тесты помещают высокую нагрузку пользователя или постепенно увеличивают нагрузку на приложение или ограничивают вычислительные ресурсы приложения.
Нагрузочные испытания определяют, может ли приложение под нагрузкой восстанавливаться после сбоя и корректно возвращаться к ожидаемому поведению. При стрессе приложение работает при аномально высоком стрессе.
Нагрузочное тестирование Azure — это полностью управляемая служба нагрузочного тестирования, которая позволяет создавать высокомасштабную нагрузку. Служба имитирует трафик для приложений независимо от того, где они размещены. Предварительная версия Нагрузочного тестирования Azure позволяет использовать существующие скрипты Apache JMeter для создания нагрузки, масштабируемой в широких пределах.
Решение для нагрузочного тестирования в Visual Studio 2019 использовать не рекомендуется. Работа соответствующей облачной службы нагрузочного тестирования Azure DevOps прекращена.
Сторонние средства
В списке ниже представлены сторонние средства тестирования веб-производительности с различными наборами функций:
- Apache JMeter
- ApacheBench (ab)
- Gatling
- jmeter-dotnet-dsl
- k6
- Locust
- West Wind WebSurge
- Netling
- Vegeta
- NBomber
Нагрузочные тесты в выпусках сборки
Нагрузочные тесты должны выполняться в режиме выпуска и рабочей среды, а не в режиме отладки и разработки. Конфигурации выпуска полностью оптимизированы с минимальным ведением журнала. Конфигурация отладки не оптимизирована. В режиме разработки объем информации, записываемой в журнал, увеличивается, что может влиять на производительность.
ASP.NET Core