[英]Jmeter TCP sampler not looping
我想使用 jmeter 的 TCP 采样器对我的系统进行压力测试(我使用的是默认的 TCP 采样器和 jmeter GUI),但线程组循环计数器似乎不起作用。 当我运行我的测试线程时,只发送一条消息。 几乎感觉 jmeter 在开始发送其他消息之前正在等待服务器的响应,除非在我的情况下服务器不应该发送任何类型的确认。
我正在发送文本消息并使用默认的 tcp 采样器类,并向采样器添加了响应断言,告诉它忽略响应(我希望这能解决我的问题)。 我也确定我的服务器不是问题,并且消息的格式是我的服务器期望的(用空行表示消息结束)
正如您从我的第三张图片中看到的,当我开始测试时,它会发送一条消息并挂起。 我的服务器只收到第一条消息。 由于我是 jmeter 的新手,任何建议都会有所帮助。 我假设我可以通过默认的 TCP 采样器完成我需要的东西,如果不是这种情况,有人能指出我正确的方向吗?
查看您的屏幕截图,第一个请求仍在运行:
您的服务器需要在收到您需要提出自己的AbstractTCPClient实现的消息后关闭连接,该实现将根据您的应用程序设置进行操作。
您还可以试用HTTP 原始请求采样器,它具有更简单的配置,可能更适合您的开箱即用用例。 可以使用JMeter 插件管理器安装 HTTP 原始请求采样器。
是的,当连接不发送时,JMeter TCP 采样器不发送数据。 只需在 JSR223 采样器中使用类似的东西:
def sock = new Socket()
def host = "localhost" // change it to your host
def port = 9999 // change it to your port
sock.connect(new InetSocketAddress(host, port))
def out = new OutputStreamWriter(sock.getOutputStream())
try {
while (true) {
out.write("Yor test data here")
out.flush()
if (sock.isConnected()) {
SampleResult.setSuccessful(true)
} else {
SampleResult.setSuccessful(false)
break
}
}
}
finally {
sock.close()
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.