gpt4 book ai didi

tcp - Jmeter TCP Sampler - 如何重用线程之间的连接?

转载 作者:可可西里 更新时间:2023-11-01 02:50:33 28 4
gpt4 key购买 nike

我在 JMeter 的线程组下设置了一个 TCP 采样器。数据是从 CSV 文件中选取的。第一行数据为鉴权数据,后面各行为实参数据。像下面这样的东西,

AAAAAAA21
BBBBBBBCCCCCCCDDDDDDD
BBBBBBBCCCCCCCDDDDDDD
BBBBBBBCCCCCCCDDDDDDD

我想要的是,如果线程组以 10 个线程连续运行,则第一个线程获取第一行数据,与服务器建立连接并进行身份验证。所有后续线程都使用相同的连接(而不是每次都创建一个新连接)并简单地向服务器发送数据。这样做的原因是数据模拟了一个设备,该设备发送第一个数据包进行身份验证并创建连接,所有后续数据包都在同一连接上发送数据。我想使用 JMeter 模拟设备测试。

我发现的限制是 JMeter 正在为每个线程创建一个新连接,并且当线程退出时连接会关闭。似乎没有办法在 threadGroup 中的所有线程之间共享连接,或者可能有一种我不知道的方法。

寻找我可以测试这个用例的方法

最佳答案

不幸的是,无法在不同线程之间共享连接,因为每个线程代表一个单独的虚拟用户,因为虚拟用户彼此之间一无所知。此外,如果您尝试在不同线程之间共享连接,则一次只能有一个线程使用连接(否则您将遇到多个线程同时写入同一连接导致数据损坏的情况)

因此您可以为每个虚拟用户使用 1 个连接(即总共有 10 个连接)

  1. 添加Loop Controller到您的线程组并勾选 Forever 框或将 Loop Count 设置为 -1 - 这样子采样器将永远运行
  2. 将 TCP Sampler 添加为 Loop Controller 的子项并勾选 Re-use connection 框,这样您的测试计划将如下所示:

    JMeter TCP Reuse Connection

参见 How to Load Test TCP Protocol Services with JMeter文章了解更多信息。

关于tcp - Jmeter TCP Sampler - 如何重用线程之间的连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45585628/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com