You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Postman测试ASP.NET Core接口性能结果存疑求助

Postman与Bombardier性能测试结果差异的原因分析

你遇到的Postman吞吐量远低于Bombardier的情况,核心原因在于两款工具的定位和底层实现差异,具体如下:

  • 工具定位与架构差异
    Postman是面向API调试的可视化工具,基于Electron框架(依赖Chrome内核),设计重心是便捷的请求编辑、响应查看等功能,而非高并发压测。它的网络请求处理会受UI线程限制,即使设置了20个虚拟用户,也无法像专业压测工具那样高效调度并发连接,大量资源会被UI渲染、日志记录等额外操作占用。

    而Bombardier是专门的HTTP压测工具,基于Go语言的goroutine高并发模型,能真正创建并维持指定数量的活跃并发连接,所有资源都聚焦于请求发送与处理,没有UI相关开销,效率远高于Postman。

  • 虚拟用户/并发连接的实现逻辑不同
    Postman的“虚拟用户”并非真正的独立并发连接,实际执行中可能存在请求串行排队、连接复用效率低的问题。比如它可能会等待一个虚拟用户的请求完成后,才发起下一个请求,无法做到20个连接同时持续发送请求。

    Bombardier则会严格按照指定的--connections参数创建对应数量的并发连接,持续密集地发送请求,充分压榨服务器的处理能力,这也是它能达到每秒七千多请求的关键原因。

  • 请求调度与额外开销的影响
    Postman在测试过程中会实时更新UI统计数据、保存请求历史、生成详细日志,这些额外操作会产生大量IO和CPU开销,拖慢请求发送的频率。你看到平均请求耗时7ms,但吞吐量仅17.2 req/s,本质是请求之间存在大量空闲间隔,Postman没有把这些时间充分利用起来。

    Bombardier作为命令行工具,没有这些额外开销,请求调度更加紧凑,能让服务器持续处于高负载状态,从而得到符合预期的吞吐量结果。

附你使用Bombardier的测试输出:

PS C:\Users\Martin\Downloads> .\bombardier-windows-amd64.exe --connections=20 https://localhost:7108/api/benchmarks/benchmark2
Bombarding https://localhost:7108/api/benchmarks/benchmark2 for 10s using 20 connection(s)
[=================================================================================================================] 10s
Done!
Statistics        Avg      Stdev        Max
Reqs/sec      7292.63    2150.11   25063.79
Latency        2.74ms     1.93ms    52.32ms
HTTP codes:
   1xx - 0, 2xx - 72937, 3xx - 0, 4xx - 0, 5xx - 0
   others - 0
Throughput:     1.55MB/s

内容的提问来源于stack exchange,提问作者Neutrino

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 12:15:03