JMeter 上的客户端同步

Client Synchronization on JMeter

我如何使用 JMeter 开发一个测试,其中两个客户端可以连接到一个 TCP 服务器?

在我的测试中,我将有两个客户端和一个服务器:

Client 1          Server        Client 2
   |       M1       |              |
T1 |--------------->|       M1'    |
T2 |                |------------->|
T3 |                |       R2     |
T4 |       R2'      |<-------------|
T5 |<---------------|              |

客户端1,发送消息M1给服务器,服务器处理该消息并发送给客户端2。客户端2回复消息。我想查看从 T1T5 的响应时间。

  1. 我正在使用 Java Request 实现我的客户端连接。是否有任何 JMeter 功能可以在线程之间同步操作?
  2. 或者我应该在 Java Request class 中实现自己的线程吗?
  3. 如果我实现自己的线程,这意味着我将复制我的线程进行测试。 JMeter单个实例支持多少个线程?

1.JMeter的线程(虚拟用户)是绝对独立的,对别人在做什么一无所知。但是你可以使用 Inter-Thread Communication plugin to add some extra logic and implement IPC
2. 我认为你不应该因为 JMeter 不会测量这些额外的线程 3. 您仅受 hardware/software 的限制。假设您关注 JMeter Best Practices you should be able to kick off several thousands of threads on a modern PC. In any case there is always possibility to run JMeter test in distributed mode


以防万一有 TCP Sampler and HTTP Raw Request Sampler,两者都能够触发 TCP 请求,因此您可能不必重新发明轮子。

如果您想同时启动 2 个不同的采样器,您可以将它们放在 Parallel Controller, this guy isn't a part of standard JMeter distribution, you will need to install it using JMeter Plugins Manager 下。