2017-12-29 10 views
0

Ich verwende WebHooks in meiner API. Sobald eine Anfrage bearbeitet wurde, sendet unser REST-Service eine Antwort an die Rückruf-URL zurück, die in der Anfrage gesendet wurde.Wie kann ich asynchrone Rückrufe in JMeter testen?

Client    Server 
    |(request)   | 
    |----------------->|  
    |<-----------------|  || 
    |  (response)|  || 
    |     | _||_ Time 
    |  (callback)| \/
    |<-----------------|  \/ 
    |----------------->| 
    |(response)  | 
    |     | 

Wie kann dies mit JMeter einem Belastungstest unterzogen werden?

Antwort

1

Es hängt von Webhook Umsetzung, wenn es darum geht, Polling - man muss nur While Controller in Schleifen für den Rückruf zu warten, verwenden können. Die gesamte Dauer der Sequenz kann unter Verwendung von zB Transaction Controller

gemessen werden, wenn der Rückruf aa Server-Sent Event kommt, kann man also JAX RS API verwenden, die SseEventSource-Klasse bietet, die für das Warten auf serverseitige Ereignisse verwendet werden können, entweder in JSR223 Sampler oder in Java Request Sampler wie beschrieben in Stress/Load-Testing of Asynchronous HTTP/REST Services with JMeter Artikel

1

Sie müssen eingehende Verbindungen eines bestimmten Ports hören. Stellen Sie sicher, dass die Maschine von außen angeschlossen werden kann. In JMeter können Sie JSR223 Sampler verwenden und folgenden Groovy Skript

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) 
      } 
     } 
    } 
} 
Verwandte Themen