The question “how to measure page load time?” sounds very simple, but there are a lot of complicated things (and tools) hiding behind it. First of all, where is the beginning? It would be logical to think that we start counting from the moment when we paste the link into a browser address bar and press “Enter”. But what’s about before upload? It may also influence the page load time. Obviously, you can always start from about blank, but still… Anyway, it’s usually more difficult for a tester to understand where is the end. Here are several ways how to detect if the page has finished loading.
Network activity. You simply have to wait until you have no pending requests. This strategy looks simple, but it doesn’t work for most sites, because JS initialization may take plenty of time even after the page loading seems to be over.
Visual changes. This is probably one of the most convenient ways to understand that the page loading is done, but the thing is that modern sites have loads of content: images, videos, buttons, comments, etc. That’s why it is also important to understand how evenly the page loads – this strategy will give you a more precise result.
Events. There is a whole set of events related to the page loading process, but there is also a tiny problem – these events are usually activated before the page loading is completely over. You can create a separate event to detect a completion time, but in this case, you will have to do this for every single page, which makes the task even more complicated than it was before.
Functionality. The page loading seems to be over, but the page itself doesn’t respond to your clicks – this problem is pretty widespread. If you choose this strategy, consider not only visual changes but also functionality. All the buttons must function without a problem.