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

Locust模拟用户与TCP会话的关联问题咨询

Locust模拟用户的核心机制解析

1. 什么是Locust里的“模拟用户”

Locust中的“用户”是逻辑层面的虚拟角色,并非真实的浏览器或操作系统用户。它本质是一段独立的执行单元(协程或线程,取决于运行模式),会严格按照你定义的任务序列(比如依次访问不同页面的GET请求)重复执行操作,以此模拟真实用户的行为路径。

2. 模拟用户与TCP会话的关系

默认情况下,每个Locust模拟用户会复用同一个TCP连接(会话)发送多个HTTP请求——这和真实浏览器的行为一致,借助HTTP Keep-Alive特性维持连接,避免每次请求都重新建立TCP连接。

但存在例外场景:

  • 若你在任务中手动关闭连接,或请求头禁用了Keep-Alive,每个请求都会新建TCP连接
  • 使用HttpUser类时,Locust会自动管理连接池,每个用户对应池中的一个活跃连接

3. 100个模拟用户是否对应100个TCP会话

不一定,分几种情况:

  • 当所有用户持续发送请求且Keep-Alive启用时,通常会维持接近100个TCP会话(每个用户复用自身连接)
  • 如果部分用户处于空闲状态(比如任务设置了等待时间),对应的TCP连接可能因服务器Keep-Alive超时被关闭,此时实际TCP会话数会少于100
  • 另外,Locust默认采用协程模式运行,系统层面的线程数远少于用户数,但每个用户的逻辑单元仍会独立管理自身的连接

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 11:52:03