哪个线程组或者线程组中要做哪些改变,通过TCP协议向服务器发送连续的数据而不等待响应

问题描述 投票:0回答:1

我想对服务器进行负载测试,我将在其中连续发送带有数据的请求。 需求:在jmeter中,我想通过TCP协议连续长时间发送带有数据(文本)的请求,并且不应该等待上一个请求的响应来发送下一个请求。由于服务器不发送响应,因此jmeter应该不断发送请求。

我使用具有 10 个连接的普通线程组,具有无限循环和连续重用连接(线程),但由于 jmeter 正在等待响应,连接处于活动状态,但数据仅发送一次。 我还尝试了带有计数器和循环控制器的 JSR223 采样器,但连接处于活动状态,但请求一次也没有发送。 下面是groovy中的脚本 ` 导入 org.apache.jmeter.protocol.tcp.sampler.TCPSampler; 导入 org.apache.jmeter.threads.JMeterContextService; 导入 org.apache.jmeter.samplers.SampleResult;

 // Retrieve the thread number (0-based index)
 int threadNum = ctx.getThreadNum();

 // Calculate the counter value based on the thread number
 int baseCounterValue = 860181068935920;
 int counterValue = baseCounterValue + threadNum;

 log.info("Thread number: " + threadNum + ", Counter value: " + counterValue);

 String dataToSend                 ="\$,Lt4G,LCR,NR,86018106,,L,1,08022024,112732,20.791864,85.261978,13.,225,26,Air4G,28,42,11001,,20  02,298085.8,3477,*";

 log.info("Current counter value: " + dataToSend);


 // Get the sampler from the context
 TCPSampler tcpSampler = new TCPSampler();
 tcpSampler.setServer("dummy server");
 tcpSampler.setPort("4242");
 tcpSampler.setRequestData(dataToSend);


 // Send the request
 tcpSampler.sample();`
tcp jmeter jsr223 threadgroup
1个回答
0
投票

我根本不明白为什么你需要 Groovy,你可以使用“普通”TCP Sampler 并设置一些最小超时:

enter image description here

当然,TCP Sampler 会因为在给定超时时间内未收到响应而失败,如果您想将其标记为通过,可以使用 Response Assertion:

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.