ASP.NET Core 负载/压力测试
负载测试和压力测试对于确保 web 应用的性能和可缩放性非常重要。 尽管负载测试和压力测试的某些测试相似,但它们的目标不同。
负载测试:测试应用是否可以在特定情况下处理指定的用户负载,同时仍满足响应目标。 应用在正常状态下运行。
压力测试:在极端条件下(通常为长时间)运行时测试应用的稳定性。 测试会对应用施加高用户负载(峰值或逐渐增加的负载)或限制应用的计算资源。
压力测试可确定压力下的应用是否能够从故障中恢复,并正常返回到预期的行为。 在压力下,应用在异常高的压力下运行。
Azure 负载测试是一项完全托管的负载测试服务,可用于生成大规模负载。 该服务可以模拟应用的流量,且无需其托管位置。 通过 Azure 负载测试(预览版),可以使用现有的 Apache JMeter 脚本生成大规模负载。
Visual Studio 2019 负载测试已弃用。 已关闭相应的 Azure DevOps 基于云的负载测试服务。
第三方工具
以下列表包含具有各种功能集的第三方 web 性能工具:
- Apache JMeter
- ApacheBench (ab)
- Gatling
- jmeter-dotnet-dsl
- k6
- Locust
- West Wind WebSurge
- Netling
- Vegeta
- NBomber
使用发布版本进行负载测试和压力测试
负载测试和压力测试应在发布和生产模式下完成,而不是在调试和开发模式下进行。 发布配置通过最少的日志记录得到了完全优化。 调试配置未优化。 开发模式支持更多可能会影响性能的信息日志记录。