Reputation: 2848
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
Reputation: 3993
Here is a simple tool that works: test_it. Essentially,
Some info here: rextester
Upvotes: 0
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
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
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
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
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
Reputation: 55182
To answer the subject, I like to use the IIS Resource Toolkit for a few things.
Upvotes: 0