It is not all about scripting, honey!

This will be my first post where I will be writing about what actually I do. Performance testing (PT) being a very niche field, very little information is available on it, so I thought of explaining some of the basic concepts of performance testing.

PT really came into picture from the time when the client-server architecture came into being. For all the desktop applications, performance testing was not much needed as only a single user is going to access at a time and so it makes very little difference in performance. However, in web-based applications, the number of clients hitting the server started becoming large. This brought the performance testing into limelight as most application owners were never sure if the servers could support the large number of users.

Any type of testing is a mitigation of risk.  Performance testing helps the application owners understand how the application would behave in the actual production environment by simulating the real-time behavior of the actual users on the application. Thus performance testing would mitigate the risk of application crashing or becoming very slow in giving responses to the client requests.

So am done with definition. The highlighted words explain the entire spectrum of activities that are involved in performance testing. That simple performance testing is. 😉

  1. Simulating Real-Time behavior of actual users on the application

  2. Application behavior in the actual production environment

I have added a mind-map on performance testing. This is the first time I am using it. So forgive me if I have messed it up. 🙂

Performance Testing

Simulating Real-Time behavior of actual users on the application (Two parts to this statement too. 🙂 )

Real-Time behavior of the Users on the application

This is the most important part as this becomes the starting point of performance testing process. We need to understand how the actual users are going to hit the application. Some of the basic questions are like how many users are going to hit the application at the same time. Which are the actions that the most users are likely to do it most of the time? This is important as for a web-based email application like Yahoo mail, most users are likely to login and click on inbox. A minuscule of people will probably change their account settings. So here the checking of inbox becomes a critical action as most people are going to perform this action and the performance of this action can affect the number of users using yahoo mail.

Simulating

The simulation of the number of users is done through the use of various performance testing tools like LoadRunner, SilkPerformer, Jmeter, OpenSta. The checking of the mail action is recorded with the help of these PT tools. This process is the scripting process. Finally the expected number of users performing the inbox checking action at definite rate is simulated. This is in PT jargon called the Test Execution.

Application behavior in the actual production environment

While the simulation is going on, we will be monitoring various important health-parameters of the servers involved like the application servers, the web servers and the database servers. Once the test execution is completed, the behvior of the application under simulated condition is analyzed and a report is submitted on the appication’s behavior under the expected user load.

So thats it all the major concepts of performance testing is covered. Well as you can see the Scripting per se plays very little role in the entire PT process. The reason it has larger than life role is that it consumes the highest amount of time of all the activities and so eats up most of the billing. But unless other activities are not understood, the entire purpose of performance testing is defeated.

PS: The major motivation for writing the post is to create an awareness about PT at least among those who are interested in learning performance testing tools. Also to make them understand that the learning the tool is not the end in itself. It is a small but important step to understand what performance testing really is. You can always bug me on this as i am always glad to help on this topic 😉 hehehe

P.PS: For others, hopefully I have not caused any emotional atyachar on you people. 😀

Advertisements

5 comments so far

  1. Poornima on

    Hello Dishit,
    Nice article…. your first article was excellent. I really liked it.. I’m doing a bit research on test automation, and i also found macrotesting http://www.macrotesting.com be a good resource for testing
    Thanks dishit for the good article….
    Keep posting….

  2. Dishit on

    Hi Poornima,
    Am glad that you liked the article.
    Thanks for visiting 🙂

  3. Amogh Trimbakkar on

    Hello I am Amogh,

    Do you guys have any knowledge reg. Neoload tool which is used for ‘Performance Testing’, Since I m interested in understanding the concepts of PT

    • Dishit on

      Hi Amogh,
      I have not worked on NeoLoad. Yet from my colleague’s experience, I can safely say that it is at least comparable to loadrunner when you talk of web applications performance testing. For other protocols, I am not sure. I can help you direct to my colleague, if need be.

      Regarding PT concepts, let me know, what are exactly you need it. From then on I can help on it.

      Thanks for visiting!

  4. Lindsey on

    I’m extremely inspired with your writing abilities as smartly as with the format for your weblog. Is this a paid theme or did you customize it yourself? Either way stay up the excellent quality writing, it is rare to see a great weblog like this one nowadays..


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: