1

I'm a newbie at testing. For now, I'm using JMeter to build a test plan, then run it against my java web application. At the moment I just use (average response time, 90% line, throughput, and estimation of CPU/memory used) to give an approxiate estimation about how the web works.

Is there any kind of quality check-list to know that a web application is working fine? I have tried to search the web, but found no clue.

UPDATE: About my test-plan, it simulate a case that 200 users access my web application at the same time, and follow a typical work flow: login, check out goods, download documents... I'm trying to make the test as real as it should be, so that I will know if there's any potential problem.

I also added "user think-time", to make the test more realistic.

Hoàng Long
  • 10,746
  • 20
  • 75
  • 124

4 Answers4

1

I agree with Tayler. It is important to understand what you're testing, what you want to test. Than you can answer HOW TO DO THIS question.

Here is some simple examples (also check wikipedia - performance testing to get better overall picture).

Do you want to test server characteristics? In this case I used scripts in which number of user increases over time. This of course depends on server configuration, if you have 2 clusters and each is able to handled 150 concurrent connections it it good to test how it performs when load balancing starts.

Do you want to check how application and server acts under estimated high load? In this case it should be in requirements what is expected load (number of users). Script should be run for quite long time also memory profiling should be done to check for possible memory leaks. In this case you will be able to answer is it stable.

Do you want to check the peak of huge amount of users in short time period? ....

There is a lot of questions like this. If you determine what type of test you want to perform than you should be able to compare values with requirements.

Pawel F.
  • 31
  • 3
  • I want to check how application acts under high load (as specified in the question). I don't know much of memory-profiler. Is it really necessary? – Hoàng Long Mar 16 '11 at 04:27
  • I would consider memory profiling as good practice. If you do memory profiling and memory consumption is stable it indicates that application will work as expected. In some cases test which runs for 10minutes will not reveal any problem while the same test which runs for 2h will reveal problems, for long duration test it is good to know what is memory consumption. But of course this depends on requirements. – Pawel F. Mar 16 '11 at 11:50
1

It sounds like you are on the right track.

The response time is going to give you a broad measurement of how acceptabel the performance of your app is going to be for endusers.

You will want to get maximum response time as well.

Otherwise it comes down to how well is your hardware platform handling the load. That is a bit harder. Basically you are looking for bottlenecks in the server where load is slowing things down. You may not get a bottle neck simulating 200 users with think times.

If the CPU and Memory stats are not high, check the disk queue lengths to make sure there is no disk issues.

The general process is then

Is the performance measure by my response times okay?

Yes: Increase load and try again.

No: Then what part of my hardware is causing the problem at this load.

You can stop when you are happy that your website is going to meet the expected or you realise there is a performance problem.

It is often tempting to add more hardware to a poorly performing website, but you can get a lot of mileage by changing the code to make the application more efficient.

The load test will helpfully tell you which parts of your app are worst and you can focus attention on them.

Nat
  • 14,175
  • 5
  • 41
  • 64
  • according to the Jmeter report, the response time is pretty high in some kind of special request. It seems that the more request of a kind called, the better speed it is (I think it's the effect of caching).How do I know that's not because of hardware-problem? – Hoàng Long Mar 16 '11 at 04:20
  • besides, could you mind explaining how maximum response time related with hardware problems? – Hoàng Long Mar 16 '11 at 04:24
  • If you have a hardware problem at a particular load, it will take the hardware longer to maybe get things from disk or a request will have to wait for CPU time to execute. – Nat Mar 16 '11 at 17:13
0

Firebug using firefox or right click and inspect element and reload the page and go back to the inspect element window .. there you can see some good stats in network that can help

mrstanfan
  • 54
  • 2
  • actually, I'm doing load-testing. From JMeter I got lots of different parameters already, I just don't know how to use them to create a good estimation about the anti-stress ability. – Hoàng Long Mar 14 '11 at 03:49
  • I believe you meant "net" tab of firebug and not inspect element. "Net" tab will show loading time and all the interaction that is happening between browser and server. – Pradeep Mar 14 '11 at 04:05
  • yeah sorry I meant the inspect element is for chrome – mrstanfan Mar 15 '11 at 16:47
0

It's much more important to understand WHAT you're testing and even more importantly what your load is, and it's characteristics. (Is it evenly spread out or spikey? Avg. num of simulatenous visitors expected, use patterns, etc). Until you know the answers to those questions any numbers you get are somewhere between meaningless and downright misleading.

Tyler Eaves
  • 12,879
  • 1
  • 32
  • 39
  • @Tyler: I've updated my question. I built a test plan that imitate a user common activities when visiting the site, then run it by 200 threads on another machine. – Hoàng Long Mar 14 '11 at 03:59
  • Is 200 users really realistic? That's quite a high load, really. – Tyler Eaves Mar 14 '11 at 04:00
  • @Tyler: after thinking again, it seems what I need now is some kind of a meter. What is the maximum acceptable response time? What is the acceptable throughput.. and so on. – Hoàng Long Mar 14 '11 at 04:04
  • @Tyler: yeah, it's one of the requirements. – Hoàng Long Mar 14 '11 at 04:05
  • Keep in mind 200 users is not at all equal to 200 load tester threads. This is when you need to do some actual user testing. Determine click rates, time on page, etc. To throw a number out, for a group of (local) community sites, which can top 500k page views a day, it's rare to see more than 5-10 requests actually being processes at any given time. As for numbers, I'd suggest 100ms as the point where no furthur gains are notiable, and 250ms as about the lower range of "good", and 1000ms+ as less than ideal. Again, depends on the use case though, e.g. data entry vs read-only. – Tyler Eaves Mar 14 '11 at 04:23
  • @Tyler: actually, this website is partly for mobile device, and we expect the large number of users. Can you say more about data-entry & read-only? I'm not sure I understand your idea. – Hoàng Long Mar 14 '11 at 07:09