JMeter线程组中HTTP请求的TCP连接复用问题咨询
已配置的线程组

Thread Group | |--> HTTP SAMPLE
配置说明:
- 5秒内启动5个线程
- 每个线程循环次数为5,总计发送25次HTTP请求
- 单线程流程:TCP CONNECTION OPENED --> HTTP REQUEST SENT --> HTTP RESPONSE RECEIVED
技术问题解答
TCP连接是否复用,取决于HTTP协议版本及Jmeter的连接配置:
- HTTP/1.0 默认行为:
除非响应头携带Connection: keep-alive,否则TCP连接会在请求响应完成后关闭,下一次请求需要重新建立连接。 - HTTP/1.1 默认行为:
协议默认启用长连接(Keep-Alive),Jmeter也会默认复用TCP连接——同一个线程的下一次HTTP请求会直接在已建立的连接中发送,无需重新握手。 - Jmeter手动配置项:
可在HTTP请求的「Advanced」标签页自定义连接行为:- 勾选「Use keepalive」强制启用长连接
- 设置「Connection timeout」「Response timeout」调整连接复用的超时时间
- 若禁用「Use keepalive」,即使是HTTP/1.1,每次请求后也会关闭连接
简单总结:默认场景下,Jmeter使用HTTP/1.1时会复用TCP连接;若为HTTP/1.0或手动关闭keepalive,才会每次重建连接。
内容的提问来源于stack exchange,提问作者Kandan Siva
相关产品推荐
相关产品推荐

