【发布时间】:2021-03-21 21:56:40
【问题描述】:
如何模拟来自 JMeter 的异步请求。
从 Jmeter 发送请求 --> 发送到服务器 --> 服务器给予确认
现在我如何打开一个端口或 URL,一旦他完成了他的内部循环/流程,服务器可以在其中给我一个响应。以及如何阅读回复。
【问题讨论】:
标签: http asynchronous tcp jmeter
如何模拟来自 JMeter 的异步请求。
从 Jmeter 发送请求 --> 发送到服务器 --> 服务器给予确认
现在我如何打开一个端口或 URL,一旦他完成了他的内部循环/流程,服务器可以在其中给我一个响应。以及如何阅读回复。
【问题讨论】:
标签: http asynchronous tcp jmeter
您可以使用JSR223 Sampler 并使用ServerSocket 在Groovy 中编写一个简单的TCP 服务器,它将监听传入的数据并执行您需要执行的任何操作。
将收到的消息打印到jmeter.log file的参考实现:
def socketServer = new ServerSocket(1234)
while (true) {
socketServer.accept { socket ->
socket.withStreams { input, output ->
log.info("Received message: ${input.newReader().readLine()}")
}
}
}
这就是它在行动中的样子:
正如你所看到的,当我使用HTTP Raw Request 采样器发送hello 消息时,它会打印到 JMeter 日志文件中,同样你可以捕获服务器的回调,只需确保服务器可以到达运行 JMeter 的机器,即它有static IP address,传入您选择的端口的流量不会被firewall等阻止。
【讨论】:
while(true) 是一个无限循环,您需要以某种方式退出它,例如通过关闭套接字。关于 1000 个请求 - 我没有足够的心灵感应来猜测您的要求是什么以及您如何区分这 1000 个线程中的每一个