我在我的API中使用WebHooks。因此,一旦处理了请求,我们的REST服务就会将响应发回给请求中发送的回调URL。
Client Server
|(request) |
|----------------->|
|<-----------------| ||
| (response)| ||
| | _||_ Time
| (callback)| \ /
|<-----------------| \/
|----------------->|
|(response) |
| |
如何用JMeter进行压力测试?
它取决于WebHook实现,如果是轮询问题 - 你可以使用While Controller等待循环中的回调。可以使用Transaction Controller测量序列的整个持续时间
如果回调来自一个Server-Sent Event你可以使用,即JAX RS API提供SseEventSource类,可以用于等待JSR223 Sampler或Java Request文章中描述的服务器端事件,如Stress/Load-Testing of Asynchronous HTTP/REST Services with JMeter文章中所述
您必须侦听某些端口的传入连接。确保机器可以从外部连接。在JMeter中,您可以使用JSR223 Sampler并使用Groovy脚本
def server = new ServerSocket(8080)
while (true) {
server.accept { socket ->
socket.withStreams { input, output ->
def reader = input.newReader()
log.info('Received request:')
while ((line = reader.readLine()) != null) {
log.info(line)
}
}
}
}