views:

1392

answers:

24

Are there specific tools to perform the following job or there is a suite of tools that help me do the following:

  • How can I check page load times?
  • How can I track down a page that hogs memory?
  • How can I track a page that consumes a lot of CPU cycles?

I just want to glean from the experience of this forum and come across a holistic view of tools.

+3  A: 

You need to have a look at some load testing tools. One of the most popular is LoadRunner by HP:

http://en.wikipedia.org/wiki/LoadRunner

There are others available as well though.

Mark Ingram
+4  A: 

You can do the page load times by checking the (micro)time at the beginning of your page, checking it again at the end and compare it (this can easily be done in for example PHP).

When you want to test the performance of your webpage for the client side take a look at the YSlow plugin for firefox: http://developer.yahoo.com/yslow/ This plugin checks out your site and gives it grades in how good your page load speed is.

D4V360
A: 

If you are using IIS you can specify that the response time, data size, etc is written to the log file. Have a look at the properties of the web server to view the logging properties.

Performance counters are you friend here as well.

John Hunter
+4  A: 

Yahoo's YSlow for Firebug is a very good tool to test the performance of any website. YSlow gives you:

  • Performance report card
  • HTTP/HTML summary
  • List of components in the page
  • Tools including JSLint

You should install firebug in firefox to use yslow.

Another tool to find performance of your website is an online test: Web Page Analyzer

It calculates page size, composition, and download time. The script calculates the size of individual elements and sums up each type of web page component. Based on these page characteristics the script then offers advice on how to improve page load time.

Niyaz
+2  A: 

I strongly recommend some form of network degrader - at work we have a product called The Cloud (from www.shunra.com, although they have renamed it to Shunra VE), which is expensive, but has caught lots of problems that haven't shown up testing over a LAN.

Steve Bosman
A: 

If you're using Google Chrome (and possibly some other WebKit based browsers) there's a view breaking down the load times of all the resources on the page in a similar way to the Net page in Firebug.

Right click anywhere on the page, select Inspect Element and then click the Resources button.

Dave Webb
+3  A: 

If you're after a free tool then Apache's JMeter's not too bad. There's a bit of a learning curve but I've used it on a number of web projects, including ASP.NET websites and Java web services projects, and JMeter copes pretty well.

Ubiguchi
+3  A: 

We've had excellent results using

"The Grinder"

to test quite a range of sites.

We use this to seriously "spank the box" with floods of requests.

HTH.

cheers,

Rob

Rob Wells
+2  A: 

Hi,

We use Selenium here - lets you script access to the website and so you can run it several times to create a load test.

Regards, Chris

Chris Kimpton
+3  A: 

Jmeter is a good open source tool.

Jimmy
A: 

Firebug's Net Panel will show you the load time for each element on a page.

Nathan Long
+1  A: 

To generate HTTP client load I've used a couple tools:
* Microsoft Web Application Stress tool on a Windows client
* http_load on a Linux/Unix client

Both tools can ratchet up the offered load to simulate many clients, and will tell you the average time to load the page and other statistics about the run. Both tools also have the crucial ability to be $0 in cost.

As for memory and CPU utilization, I'll have to leave it to some of the other Answers. I've used YSlow, but never in a particularly rigorous investigation.

DGentry
+2  A: 

I also use Red Gate's Ants Profiler to test for web application memory leaks and high memory usage, it works quite well.

A: 

I've used a combination of Ruby Mechanize and the simple Unix 'time' command to script a bunch of page hits and time the response. If you set this up to run automatically and log the results, you can graph them over time.

Note, however, that Mechanize doesn't do javascript - if your site relies on javascript to submit forms and the like, you're better off looking elsewhere.

Patrick Lajeunesse
A: 

Firebug and YSlow have already been mentioned. Also try "ab", the Apache benchmarking tool, and Tsung, a very flexible, but slightly complex load testing tool.

It can also be useful to ship some Javascript that creates a new Date() in the header of the document, and attach an onDomReady event that diffs that date with the current one, then posts the result back to the server. This helps you get an idea of the perceived performance by taking Javascript initialization time into account.

If you have deep pockets, a service like Gomez can measure performance from a number of locations on the internet.

HTH

argv0
A: 

HttpFox is a powerful FF plugin. Will show you in details the page load times of every request. And if you are testing in IE then Fiddler is a must have add-on plugin.

Jahangir
A: 

That depends on your server software. In general you want a tool to generate a bunch of load on your server, then you want a secondary tool to probe into the inner workings of the server to understand what is happening, so that you can try and trim down as many bottlenecks as you need.

For instance, if you are running on tomcat you will want http_load used in conjunction with some kind of JVM. Sometimes load happens in the places you least expect it (bad virtual memory settings that cause constant paging can be hellish on a webserver). So don't stop examining things on your application/web server. Go as far down as the wire if you need to.

Jonathan Arkell
A: 

Another stresstool we've used, Curl Loader, http://curl-loader.sourceforge.net/

Erik
A: 

I've found HttpWatch to be very helpful in diagnosing slow web page response issues. It's a plugin to your browser that works with both IE and Firefox.

http://www.httpwatch.com/

A: 

Isn't anyone going to mention httperf and Apachebench (a.k.a. ab)?

Thiago Arrais
+1  A: 

You can use selenium to create scripts to automatically run your web page. Selenium will output the script in your favorite language so you can turn the script into a program to store the data you need to know.

If you want to make a load test, you can use selenium grid which will allow you to deploy multiple selenium tests in multiple computers which will allow you to simulate a lot of users running on your page.

It's a free platform so it won't bring high costs to you. You can find it here http://seleniumhq.org/

fmsf
+4  A: 

Performance testing is one of the most important facets of testing your website,to save you from embarrassments just when your site is having the maximum number of user base hooked on it.

For this, there are multiple phases for performance testing and tuning.

Load Testing Tools

Load testing is a very important step, to gauge your site's performance against heavy workloads and do effective sizing to meet the requirements. I have personally used both LoadRunner and VSTS and will vouch for LoadRunner as the best one for ease-of-use and utility.

  1. You can use Mercury (now HP) Load Runner as it offers you very flexible and exhaustive set of configurable options to test your website against against a given load.

    • It mes equipped with a Vuser generator, controller and reporting tools
    • Its trial version gives you a license to run 25 Vusers, concurrently.
    • For higher workloads you'll have to purchase its (expensive) license.
  2. There is also a tool by Microsoft as well, as a part of Microsoft VSTS, for Load Testing purposes. You can acquire a free-to-use license as a part of MS BizSpark

Apart from these you can get access to many Open Source Load Testing Tools, at OpenSourceTesting site


Profiling

Apart from Load Testing, which will tell you the load bearing capacity of a site and the slow-responding pages. Another important facet in performance testing is Profiling the code to see what parts of your code are the main culprit to slow down your show.

You have different profilers available for each language, I am listing some of them:

  1. Java - Jensor
  2. .NET - CLR Profiler


Emulation

You can always run the extra mile, by emulating the production environment, at your developer end to get a preview of how your code will perform under different scenarios.

Emulators of varied nature are available, which you can use depending upon the scenario, e.g. Network Emulator (eg. WANem) to test the performance under varied latencies and bandwidth.


The above 3 tools+tests can give you an idea of how far your site can stretch before it kneels down to the base, which we hope should never happen. :-)

Mohit Nanda
1up. Rarely so concrete yet adequate answer for testing/QA can be seen on SO.
yoosiba
A: 

For emulation of the network you can use open source products such as FreeBSD with its DummyNet or Linux with its netem module. Both enable you to do most of what you need with the only expense being of setting them up for the first time. If you do not require fancy GUIs and such they are as good as Shunras products and will not cost you an arm and a leg.

Baruch Even
A: 

Try the iMacros Firefox Addons - works great for in-depth performance web testing!

PhpFlashGuy