jmeterclient-serverperformance-testingresponse-time

Is there a way to tell how long a request took in transit (over network) to a System Under Test API and how long the actual response processing took?


I am using JMeter as a load generator client to test the response time of an API. Currently the API is located physically near to JMeter. If the API (system under test) is moved to a different geographical location and the load generator remains where it is, I expect some change in response times due to added network latency because of the physical distance increase between the load generator and the system under test.

Is there a way in which I can tell when looking at a JMeter sampler (or otherwise) what part of the response time is due to the network and what part is due to the API processing itself?


Solution

  • There are 3 main metrics:

    1. Connect Time - the time required for establishing the TCP connection
    2. Latency - time to get the first byte of the response from the server
    3. Elapsed Time - time to get the last byte of the response from the server

    So in case if JMeter will be physically more far away from the system under test you will see all above increased.

    Ideally you should have some form of an APM system deployed on the application under test side which will tell you the time the server spend for the request processing, and if you subtract it from the JMeter's elapsed time you will get the time for the request and response to travel over the wire.