December 21st, 2009, 03:43 AM
Performance / Load Testing
The company I'm working for has asked that I write a performance and load testing plan in the next couple of days for a java web application, I'm a programmer right out of college just a few months ago and I've never had to do this and have no idea where to start -- furthermore I don't tinker with the Java code as I only handle front-end implementation of the interface.
I'm not sure whether I would be handling implementing a solution or if I just have to "come up with a plan". It's rather vague I suppose, but I was wondering if anyone has anyone ideas / direction that they could give?
Thanks in advance for any help, it's much appreciated (and needed :/).
December 21st, 2009, 04:33 AM
- How many concurrent users is the application expected to have?
- Is this a web, desktop or networked application?
- What performance testing tool(s) will be used?
- What functional test cases are going to be automated to validate performance? Are these test cases formalized?
- Has unit, functional, regression, security, exploratory, black/white box, negative/positive, or any other testing been done to the application? Are there plans to further test the application?
- What type of user acceptance testing is planned? For how many users?
December 21st, 2009, 09:15 AM
Thanks for the response drgroove!
The growth of expected users is not expected to grow to a substantial amount (I'd say less passing 50k users is not a reality). This is a web application and right now the only tests in place are unit tests, there aren't currently any other tests or plans in place -- the web application is live right now though (only to a small # of users though). Currently there aren't any performance tools that have been decided on (not sure if that's what they want me to do) and there is no uat testing.
December 21st, 2009, 01:43 PM
I would need to also think of data handling / sufficiency and sort of have a table of the average access time for objects in the database.
December 21st, 2009, 02:29 PM
Performance testing, for all intents and purposes, is just the bulk-automation of one or more functional tests.
Unit testing isn't sufficient. You need test cases which validate that discrete functionality in your application works properly. You can then use tools to automate those functional tests simulating multiple users to determine if your architecture can handle a certain level of concurrent user load.
So... start w/ functional tests. Validate those work. Then build your performance tests from the functional tests.
December 21st, 2009, 09:36 PM
Thanks for the response again drgroove.
I don't believe I need any functional tests -- I'm thinking of using the Eclipse profiler / JProfile to locate potential bottlenecks and to see which parts of the code get called the most and use the most memory / processing time and which transactions are the most expensive.
I think all that's needed though, but do you know anything about using JMeter or OpenWebLoad, I think I may need to use these. But as I only deal with front-end interface issues, I don't have any experience with these technologies ( ... or Java for that matter). Do you have any thoughts or useful resources that would help?
December 22nd, 2009, 10:39 PM
Haven't used either JMeter or OpenWebLoad, sorry
Originally Posted by vodolan
If you test drive either, though, post back and let us know your thoughts; your feedback on these might help other users.
January 26th, 2010, 02:57 PM
How did the testing go Vodolan? We have been using Browsermob extensively. It's based on Selenium and has been quick and easy to create test cases that can be scaled up to hundreds or thousands of users. The big advantage is that it uses firefox borwsers which makes dealing with AJAX a lot easier amoung other things.