Take the 2-minute tour ×
Software Quality Assurance & Testing Stack Exchange is a question and answer site for software quality control experts, automation engineers, and software testers. It's 100% free, no registration required.

I'm using Jmeter at my organization for performance testing. The application is a secured web portal that provides a lot of reports and documents to its user.

A major issue that I've run into is measuring the page load times, this is very important for me to measure. Apparently JMeter doesn't support this.

So my question is what tools can I use to measure the page rendering times? It doesn't have to free, all that I need is a reliable tool. Again, this is for a secure application which requires user authentication.

share|improve this question
1  
Welcome to SQA, user5392. What do you mean by page load times: how long it takes to fetch a URL, or how long it takes to fetch the URL plus everything the URL references, e.g. CSS, JavaScript, and image files? –  user246 Jun 5 '13 at 18:33

6 Answers 6

There are no tools that can provide you client-side rendering times. Client side rendering is not a measurable value, unless all of the devices accessing the system are identical in terms of hardware and network access to the SUT.

However, It is completely viable to do a stopwatch test of the total page rendering time, as long as you communicate to the client/whoever you are reporting to that those measurements are an indication only and take note of the configuration you were using when you took your measurements.

In the past I've had a JMeter test running to apply peak load to the system, and manually I browsed the site using Fiddler in "Streaming" mode. By viewing the timeline you can see the client side rendering time which shows up as "gaps" between requests.

Remember that almost all performance testing tools send network traffic to apply load to a system and therefore will never capture client side render times. Even if they claim to do so, I would be extremely wary.

share|improve this answer

One of the most interesting approach I've used in the past is the combination of Selenium/WebDriver with BroserMobProxy. There is an article with some code examples in Python written by David Burns. This approach is nice when you already have some Selenium tests and just want to calculate the page load time on the way of your scripts.

share|improve this answer

A few tools have been mentioned in other answers that could help such as Dynatrace Ajax edition, Compuware Gomez and WebPageTest. Another tool I have used is Selenium Webdriver with some custom timers.

There are a few caveats that you need to be aware of for this kind of performance measurement:

  1. The browser you are using will affect the JavaScript execution and rendering speed, you will get different results in different browsers.
  2. The available system memory and CPU will affect the speed. If you have a resource constrained or under-powered machine it will affect the results.
  3. You need to quantify what "done" is. A single page load could encompass many additional xmlhttp requests and additional javascript execution, and sometimes pages will even have timers that execute javascript at certain intervals.
  4. If using tools like Selenium your test needs to be clear about what done is, for example you may be watching for an element to appear and as soon as that element appears you consider it "done".
  5. Selenium (and the other mentioned tools) use javascript to poll for a certain state and that polling can in and of itself add time onto the execution and rendering time. The amount of time that can be added depends on the size of the page and the complexity of JavaScript execution.

So in summary, if you are testing on a standard hardware/browser setup you can get somewhat reliable numbers with a little extra time added on for the time the tool adds in. You'll never get anywhere near as reliable numbers as you would from measuring server response times because there are a lot more factors to take into consideration. With all of this said, I would still say it's a good idea on ajax/javascript heavy pages to measure the performance.

share|improve this answer
    
By the way, DynaTrace Ajax is only for for Firefox version 17 - 30, other versions are not supported –  alex Oct 27 at 17:19

I've read that HTTPWatch doesn't cover javascript rendering time (although can't confirm this). Compuware Gomez has a commercial tool.

WebpageTest also has a version you can download and run on your servers to test a variety of aspects of the load.

Chrome and Firefox also have web developer tools, where you can inspect the load t imes of the various elements.

share|improve this answer
    
What do you mean by "javascript rendering time"? –  Joe Strazzere Jun 6 '13 at 12:16
1  
@Joe - Javascript execution and browser rendering happens after a response is recieved from the server. Tools like HTTPWatch measure how long it takes to get a response, but do not measure any additional time it takes for the browser to execute the javascript or render the page, which if it's a javascript/ajax heavy page could be significant. –  Sam Woods Jun 6 '13 at 23:05

Check out HTTPWatch http://www.httpwatch.com/

It's a really good tool that sounds like it may meet your needs.

I've used the free "Basic Edition" version for some client-side performance tests and analysis. And I've recommended it to some friends who use the "Professional Edition".

Good stuff, and one I keep in my Tester's Toolbox http://www.allthingsquality.com/2010/04/testers-tool-box.html

share|improve this answer

Check out DynaTrace Ajax edition. http://www.compuware.com/en_us/application-performance-management/products/ajax-free-edition/overview.html

It's free, and gives a timeline that includes javascript execution & page rendering.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.