Website Response Time: Difference Between 'Load' and 'Finish'

Website response time: Difference between `Load` and `Finish`

The Finish time in Chrome Devtools includes the asynchronously loading (non blocking) objects/elements on the page which may continue downloading way after the onLoad event for the page has fired.

The response time for a website generally means the Load time, because that is user perceivable, and at this point user can see that the browser has finished loading and page is ready on their screen.

The Finish time, although technically also a response time, doesn't have as much end-user implication.

In some cases, it seems that the Finish timer never stops but continues increasing, so it may not be the best assessment of web page response time.

Why there is time difference for page load in chrome dev tool and jmeter

I'm assuming you have kept embedded resources (such as png, img, gif, js files) in the script. If so, jmeter executes them in a sequence which increases response time. Try using retrieve embedded resources check box in HTTP request defaults and check parallel downloads. By default it's value is 6.

Chrome Network Tab - What does Finish and Load metrics convey?

Finish is calculated as max timestamp of all captured requests minus start timestamp (source):

var nodes = this._nodesByRequestId.valuesArray();
for (var i = 0; i < nodes.length; ++i) {
...............................
if (request.endTime > maxTime)
maxTime = request.endTime;
}
.........................."Finish: %s", Number.secondsToString(maxTime - baseTime)));

As for Load, it uses DOM load event time.

The Average response time differs largely while load testing the Same API Endpoint with same load using Jmeter

JMeter doesn't cache anything when it comes to API testing, it has HTTP Cache Manager which can represent browser cache when it comes to handling embedded resources like images, scripts and styles when it comes to web testing (mimicking HTTP requests send by real browsers) but it is not your case.

So my expectation is that it is something on your application under test side, i.e. it needs to "warm up" its own caches and first few requests are processed longer due to lazy initialization of components on the first access.

So my recommendations are:

  • Make sure you use reasonable ramp-up period so the load increases gradually, this way you will be able to correlate main metrics like response time, hits per second, etc. with the increased load
  • Monitor your application under test health from OS perspective, i.e. CPU, RAM, Swap consumption, etc. You can use JMeter PerfMon Plugin for that
  • Use profiling tools which are relevant for your application to detect "heavy" methods, long-running DB queries, etc.

Why finish (time) is increasing continously in my PHP/JAVASCRIPT website?

The finish time logs all on-going requests even after the page has loaded (e.g. AJAX). So whenever you click a button that brings new data in the website, the finish time is extended.

If you want to monitor the initial page load time, use the load time just to the right.
Here is a comparison between the two: https://stackoverflow.com/a/31304442/2026428

There is Jmeter response time difference between Jmeter run results and manually captured the response time

JMeter have three basic measurements it captures per request:

  • Elapsed Time (which is overall timespan from the point when it just starts sending request to the last bit received)

  • Latency (which starts the same point in time and ends when server starts responding)

  • And Connect time (which is included in latency and is basically the time for handshakes with server, including SSL/TLS negotiations)

So if you set a data writer among your listeners (e.g SimpleDataWriter, although AggregateReport & SummaryReport can do it as well), you'll see these metrics in your data file (while standard listeners/visualisers/aggregators stuck to elapsed time only).

But mind that these metrics doesn't include response rendering, and especially any code to be executed by browser.

JMeter just doesn't do it at all: obviously, it measures just the combined performance of Server + Network, skipping everything on the client side (except for bare necessities, like protocol negotiations).

That might explain the difference you've experienced.

As well as the difference between logged server processing times & the response times measured by JMeter: server just doesn't count what the network brings in.

PS And you don't have to sit and click on stopwatch with your browser: modern ones have a Dev Tools capable of showing you the precision timings divided by stages. E.g., just call Ctrl+Shift+I in Chrome, switch to network tab & behold the timings right there as you doing your requests.

What exactly is Page Response Time?

Is the time that takes to server to send all resources (or the time to send the last one) to client browser (this is why is bandwidth dependent). for example in the picture you can see the stack overflow response time (big red line) using chrome developer tool (press f12)stack overflow resource striming time -

Response Time on a web page like a stop watch

http Watch and Fiddler helped. Didn't really go as I had thought but pretty Close and satsifactory. Thanks guys



Related Topics



Leave a reply



Submit