Qadit Systems Qadit's SecureITy Zone

                Information is power. Secure IT.

Load Testing ASP.NET Web Applications using Jmeter

People do not like slow responses on web sites. It just drives them away. If you would like to know how fast/slow your web site is when 100 or 1000 users access it, what you are attempting to is labelled ‘load testing’. There are many commercial and free tools that do the job for web applications running on Java, ASP.NET, PHP etc. We will specifically look at testing ASP.NET applications using the open source tool called Jmeter.

 


Apache JMeter is open source software, a 100% pure Java desktop application designed to load test functional behavior and measure performance. It was originally designed for testing Web Applications but has since expanded to other test functions.

 

Apache JMeter may be used to test performance both on static and dynamic resources (files, Servlets, Perl scripts, Java Objects, Data Bases and Queries, FTP Servers and more). It can be used to simulate a heavy load on a server, network or object to test its strength or to analyze overall performance under different load types. You can use it to make a graphical analysis of performance or to test your server/script/object behavior under heavy concurrent load.

 

In fact, Jmeter can load and performance test many different server types:

 

* Web – HTTP, HTTPS
* SOAP
* Database via JDBC
* LDAP
* JMS
* Mail – POP3(S) and IMAP(S)

 

So, as mentioned above, let us look at how to load test our ASP.NET applications.

 

Let us assume that the ASP.NET web application that we are testing uses something called ‘postback’ and has enabled the ASP.NET security mechanisms of event validation and request validation.

 

In very simple terms, when ever a postback is used, the page is submitted to itself & the server sends a set of hidden variables (that are considerably long ) to the user eg. __VIEWSTATE & __EVENTVALIDATION.

 

Here are a few notes on postback requests:

 

* The current value of every control on a Web Form is contained in the postback request. This is referred to as the Post Data
* The content of the ViewState is also contained in the Post Data. ViewState holds the original property values of every control on a Web Form – before the user made any changes
* If a postback was caused, for example, by a button click, Post Data is used to identify the button that caused the postback

 

When the user submits such a page with event validation enabled, the server checks to see if it has received back the variables that it sent for eg. the __VIEWSTATE and __EVENTVALIDATION

 

So, let us see how to load test in this scenario.

 

I am leaving out basic installation & use of Jmeter as there are many articles covering it. One of the good ones with a very detailed explanation for basic testing can be found here http://www.roseindia.net/jmeter/using-jmeter.shtml

 

Open Jmeter. Add a thread group. Add a HTTP request to this thread group (Right click the thread group -> add -> sampler -> HTTP Request). Let us assume this page, let’s say login.aspx sets the viewstate and eventvalidation parameter. You need to extract the 2 parameters and pass it on as part of your next request. You need to explicitly do this when using a load test tool but obviously, when browsing the site, all this happens in the background and is taken care of by your browser.

 

To extract the viewstate and eventvalidation parameters:
1. right click on the HTTP request of the login page (the page that served you the 2 variables)
2. Add -> Post Processor -> Regular Expression Extractor

 

Fill up as follows:
Reference name: viewstate1
Regular Expression: id=”__VIEWSTATE” value=”(.+?)”
Template: $1$
Match no: 1
Default Value: False

 

What happens when you do this:
– The login page is served
– The post-processor (which aptly goes to work ‘post’ the serving of the page) goes to work and the value of __VIEWSTATE is now stored in the variable viewstate1

 

After you login, let us say there is a page ‘change password’ and you want to click on this and change your password. The viewstate parameter is to be sent to the server as part of this request. So, do the following:
– Add a HTTP request
– In the Box “Send parameters with request”, in addition to the regular POST data that you want to send, add the following
– __VIEWSTATE = ${viewstate1} where viewstate1 is the reference name set as above

 

The important thing to note is that every time a viewstate (or any other variable) is to be extracted and sent to the server, the above process has to be repeated. Let’s say you are testing the shopping cart. You define a series of requests that form the logical transaction. Along with every request in this series, you have to send the viewstate extracted in the previous request.

 

For eg. login.aspx -> extract viewstate1
select “buy 4GB pen drive” -> send viewstate1 & extract viewstate2
select “buy book” -> send viewstate2, extract viewstate3
checkout -> send viewstate3 & extract viewstate4
and so on…

 

To view the results, you can right click on the thread group -> Add -> Listener -> View Results Tree or any of the other options available for viewing results.

//

4 Responses to “Load Testing ASP.NET Web Applications using Jmeter”

  1. www.insiderpages.com Says:

    Way cool! Some extremely valid points! I appreciate you penning this
    article and the rest of the site is very good.

  2. seo Says:

    Hello Web Admin, I noticed that your On-Page SEO is is missing a few factors, for one you do not use all three H tags in your post, also I notice that you are not using bold or italics properly in your SEO optimization. On-Page SEO means more now than ever since the new Google update: Panda. No longer are backlinks and simply pinging or sending out a RSS feed the key to getting Google PageRank or Alexa Rankings, You now NEED On-Page SEO. So what is good On-Page SEO?First your keyword must appear in the title.Then it must appear in the URL.You have to optimize your keyword and make sure that it has a nice keyword density of 3-5% in your article with relevant LSI (Latent Semantic Indexing). Then you should spread all H1,H2,H3 tags in your article.Your Keyword should appear in your first paragraph and in the last sentence of the page. You should have relevant usage of Bold and italics of your keyword.There should be one internal link to a page on your blog and you should have one image with an alt tag that has your keyword….wait there’s even more Now what if i told you there was a simple WordPress plugin that does all the On-Page SEO, and automatically for you? That’s right AUTOMATICALLY, just watch this 4minute video for more information at. Seo Plugin

  3. Lee County Florida Business Directory Says:

    The Junonia Awards were created by the VCB in 2006 and recognize individuals who demonstrate leadership and dedication throughout
    the local tourism industry. This in turn, can help increase the
    value of the property. The next morning, you awaken to find that
    you can no longer hear.

  4. seo plugin Says:

    Hello Web Admin, I noticed that your On-Page SEO is is missing a few factors, for one you do not use all three H tags in your post, also I notice that you are not using bold or italics properly in your SEO optimization. On-Page SEO means more now than ever since the new Google update: Panda. No longer are backlinks and simply pinging or sending out a RSS feed the key to getting Google PageRank or Alexa Rankings, You now NEED On-Page SEO. So what is good On-Page SEO?First your keyword must appear in the title.Then it must appear in the URL.You have to optimize your keyword and make sure that it has a nice keyword density of 3-5% in your article with relevant LSI (Latent Semantic Indexing). Then you should spread all H1,H2,H3 tags in your article.Your Keyword should appear in your first paragraph and in the last sentence of the page. You should have relevant usage of Bold and italics of your keyword.There should be one internal link to a page on your blog and you should have one image with an alt tag that has your keyword….wait there’s even more Now what if i told you there was a simple WordPress plugin that does all the On-Page SEO, and automatically for you? That’s right AUTOMATICALLY, just watch this 4minute video for more information at. Seo Plugin

Leave a Reply

*