Joseph Anderson
Joseph Anderson

Reputation: 2848

Performance testing for existing web app - Useful tools?

I'm maintaining a web app that has performance problems.

I want to record a series of actions, then play back those actions once I've made changes and compare page load times so that I can quantify the performance improvement.

The Selenium IDE does what I need for recording and playing back the actions, but I haven't found an easy way to record timings.

Is there a good way to record and compare page load timings using Selenium? Is there a better tool to use instead?

Upvotes: 6

Views: 4123

Answers (7)

ren
ren

Reputation: 3993

Here is a simple tool that works: test_it. Essentially,

  • your testing machines must have .net 4.0
  • you get the binaries
  • using fiddler you inspect http packets that travel when you execute your testing scenarios
  • describe those packets in a text parameter file using simple syntax
  • specify how many requests/sec you want
  • run the binaries
  • don't forget to monitor machine under test

Some info here: rextester

Upvotes: 0

sfriberg
sfriberg

Reputation: 55

I would take a look at Faban.

Simple to setup and use for the easy case, stressing a single page using "feh".

For more complex usage patterns you can build your patterns to mimic a full load on your site.

Upvotes: 0

Dave Hunt
Dave Hunt

Reputation: 8223

You might want to take a look at BrowserMob (http://browsermob.com/). You can upload your Selenium IDE test scripts and get them to run on your site. It's founder is the creator of Selenium RC, Patrick Lightbody.

Upvotes: 5

Lonecat
Lonecat

Reputation: 2707

The Net Tab in Firebug can help you measure and find out what exactly is affecting the load time of the website. You don't even need to have access to the server to use it. YSlow Gives you very cool tips for improving the overall load and feel of a specified site. I personaly use the Net tab to identify possible load times, may it be large images, javascripts css or bad latencies. I never heard of an automated tool for doing this, AFAIK selenium helps you build integration tests which helps you ensure certain parts of the application works as expected, but I'm not sure if it can also be used as a profiling tool. I hope this helps

Upvotes: 2

Langali
Langali

Reputation: 3207

I generally measure the time that each request takes using System.currentTimeMillis, and log it at the debug level in development and test environment. Then I run selenium or JMeter, and later process the logs to gets different stats. I take the slower requests and keep drilling into them to see where the slowness and bottleneck is.

Alternatively, instead of doing it in the code itself, you can either write your own selenium scripts or use the script the recorder generates, and add some logging into the generated code.

UI performance is a completely different beast. I pretty much rely on YSlow for it.

Upvotes: 0

Dylan Lacey
Dylan Lacey

Reputation: 1844

Depending on the complexity of your application, you may be able to use JMeter, by the ASF.

It's a purely Java based load-testing application with a number of graphing plug-ins, protocol supports, controllers, reporting frameworks and such. You can choose what data to log, how to graph it, how to output it to file and so on. It'll even put it into CSV or a variety of XML based formats.

It's ugly but workable, unless your application is heavy with JavaScript... It doesn't include a VM capable of running it and you'll have to do things like AJAX using hacks (Such as Regexes and handcrafted responses. Icky.) It's open source so you can add additional controllers if you need too.

Still, to do what you want (Record actions, replay, graph/store results) it should suffice.

Upvotes: 2

Noon Silk
Noon Silk

Reputation: 55182

To answer the subject, I like to use the IIS Resource Toolkit for a few things.

Upvotes: 0

Related Questions