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)
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
Responsive Video Iframes (Keeping Aspect Ratio) with Only CSS
How to Restrict My Input Type="File" to Accept Only Png Image Files Not Working in Firefox
Bootstrap 3 Truncate Long Text Inside Rows of a Table in a Responsive Way
Why Can't I Use a Heading Tag Inside a P Tag and Style It with CSS
How to Vertical Align an Inline-Block in a Line of Text
How to Make a Div 100% of Window Height
Horizontal Line and Right Way to Code It in HTML, CSS
Position Fixed and Internet Explorer
Unwanted Border-Radius Corners Around Images in Brave/Chrome Browser
Ring-Shaped Process Spinner with Fading Gradient Effect Around The Ring
Does HTML5 Change The Standard for HTML Commenting
How to Style HTML5 <Meter> Tag
Google Chrome Version 40 Srcset Attribute Problems
Making Youtube.Com/Embed Urls Work on iOS
CSS Height Working But Min-Height Doesn't Work
A Regular Expression to Remove a Given (X)HTML Tag from a String