Monday, March 23, 2009

Driver Script

Typically when doing simulation (irrespective of tools used) for performance testing, maintaining mix is very important. Usually performance performance testing can’t simulate 100% of production workload. Typically performance tester will choose few test cases and mix for simulation which can put system under test(SUT) to 80% of production workload. Letz take a banking example. Say for example xx bank wanted to test their new core banking application for performance.

We can’t simulate all test cases for testing performance. So choose the test case which user does it often. As a performance tester, I would choose the following test cases and mix as follows.
1. Login/Logout – 85%
a. View account balace - 80
b. Mini statement – 5
c. Detailed statement - 3
d. Fund Transfer - 10
e. Add payee - 2
2. Casual browsing without login -15%

Choosing wrong mix/test case might screw the entire engagement

In loadrunner, simulating the above test case is very easy using groups. In webload, the same can be simulated by using multiple agenda. I usually do that writing driver script which I am more comfortable with. Here is how skeleton driver script might look like.

function InitAgenda()
{
IncludeFile(“alltransactions.js”);
}
wlLocals.globalMix=getMix(); // Get Mix function has to return 1 for 85% and 2 for 15% of time when it is called.
switch(wlLocals.globalMix){
case 1:
wlLocals.innerMix=getMix1() //getMix1 function has to return 1 for 80%, 2 for 5%, 3 for 3%, 4 for 10%, 5 for 2 of time when it is called
Login();
switch(wlLocals.innerMix)
{
case 1: ViewAccountsStatement();
break;
case 2: MiniStatement();
break;
case 3: DetailedStatement();
break;
case 4: FundTransfer();
break;
case 5: AddPayee();
break;
default: ErrorMessage(“Invalid inner mix : “ + wlLocals.innerMix);
}
Logout();
  break;
case 2:
casualBrowsingTestcase();
break;
default:
ErrorMessage(“Invalid global mix” + wlLocals.globalMix);
}


In real testing, the driver script will be much more complex then above. Also getMix and getMix1 function has to be implemented properly and it has to tested carefully or else it will screw the entire test.

Tuesday, March 17, 2009

WebLOAD Open Source has been declared End of life (EOL)

Recently i a got a mail from "Deborah Haddad" with the subject "Important notice from RadView" and mail is as follows.

Dear Madam/Sir,

According to our records you have downloaded a version of WebLOAD Open Source. We would like to reiterate the following:

-WebLOAD Open Source has been declared End of life (EOL)

-If you still have a version of the product we remind you that under the EULA, any distribution of the product or using it to service third parties is strictly forbidden.

What are the options available to you?

For a limited time RadView offers a competitive upgrade to WebLOAD Professional. We encourage you to contact a sales rep in your region quickly as discounts are set to expire.

Read about the new WebLOAD Professional 8.3:
http://www.radview.com/product/whatsnew.aspx

Contact a Sales rep in your region:
.........
........
........
........
 

Sincerely,
RadView Software
www.radview.com

Mail to radview went unanswered. Did anyone got similar mails?. From mail id seems to be different from Radview; I don't know whether this is authentic or not? 

Cheers,
Thiru

Tuesday, February 17, 2009

Performance Tuning Hints blog

I used to write a blog on Performance tuning hints which is available in http://perfhints.blogspot.com/. Click here to visit my performance tuning blog.

Cheers,
Thiru

Wednesday, February 11, 2009

Webload Proxy

When forum was active, lot of people asked “Why webload is not recording web site which are accessed through proxy?

Here is the solution for that issue.

Before start recording in Webload IDE, we need to set the configuration to access the web application through webload that needs to be test. One of the most important step in that is setting up proxy information in Webload.

For setting up the proxy, first we need to determine your proxy name and port. We can 

easily check in your browser. For example in internet explorer, we can check by selecting menu Tools | Internet Options, then select “Connections” tab and click “Lan Settings” button.

Once you determine your corparate proxy name and port, the same can be set in Webload IDE by following the below step.

1. Open the Webload IDE

2. Select Tools | Record Options and then select the Proxy Options tab.

3. Check the Use Secondary Proxy option

4. In the Secondary Proxy Name field, type the name of your organization's proxy

5. In the Secondary Proxy Port field, type the port number of your organization's proxy in secondary proxy username and secondary proxy password

6. If your proxy has authentication, then enter the proxy username and password

7. Click OK.


Your “Recording Option” in Webload IDE might look like below picture.

 


Webload Basic

Webload is a very good tool for load testing. But lacks good documents. So I decided to write blog to help users who looks for some samples and other details about webload. 

I am planning to write series of samples and explain the same. Here is the first sample and its explanation.

Sample Code - 1
/***** WLIDE - JavaScript - ID:2 *****/
wlHttp.SaveSource="Yes";
// wlHttp.SaveSource instructs webload to store the response page source of the next Get/Post request.
// Kindly remember, it will store only for next request.
wlHttp.Get("http://www.google.co.in/");
InfoMessage("Page Source : " + document.wlSource); // END WLIDE

// Stores Headers information in to variable x
x=document.wlHeaders

// Header is nothing but an key value pair.
// So Here I am printing the Key/value pair
for (i=0;i
Key " + x[i].key + " Value : " + x[i].value)
}

Explanation
1. wlHttp object stores/manages the immediate user activity that is going to happen. 
2. wlHttp.SaveSource="Yes" ==> Request webload engine to store the result page of next request(both Get and Post) in document.wlSource. This document.wlSource can be used for parameterization.
3. document.wlHeaders ==> Has information of the last header received from server. HTTP header is a key value pair. Header information will be send by server for every Get/Post request. This will be automatically stored into document.wlHeaders; no need to special instruction required like page source.

Comments are always welcome.

Happy Testing.

Webload Forum

As I thought initially, Radview has finally removed their forum from www.webload.org. Just because webload has closed their forum, they can't stop the community. So I am planning to kick start the blog to help webload community. Also i have started the webload group. Details are given below.

Group Address: http://groups.google.com/group/performance-testing-using-webload
Current email address: performance-testing-using-webload@googlegroups.com

Cheers,
Thiru
http://perfhints.blogspot.com/
http://ecofriendly-gogreen.blogspot.com/