Performance Testing, LoadRunner Tips&Tricks

This site is moving to a bigger space @ LoadRunner TnT

LoadRunner TnT

Just to bring to your attention that if you had not subscribed to the contents of my new site, now is the time to do so. I'm still using FeedBurner to deliver quality LoadRunner and Performance Testing content to you. I'm also including information to analyze, troubleshoot and tune whenever I have anything to share with you guys out there. So why wait any further if you are new to this field, take the opportunity to subscribe to the new site now! :) It's free anyway. :)

Enter your email address:

Delivered by FeedBurner

Bookmark this article now! AddThis Social Bookmark Button

technorati reddit digg

It's a brand new start for LoadRunner TnT

Many thanks to all who had been following and supporting this website. The time to move to a bigger space has come and we are excited to announce the new website LoadRunner TnT is up and running.

The new site will continue to provide quality information on LoadRunner and Performance Testing to help newbies or mid-career performance tester in their work. Posting on this site will be discontinued but for those existing articles, they will be moved to the new home not shortly but surely.


Bookmark this article now! AddThis Social Bookmark Button

technorati reddit digg

General: Load Testing Objectives

There are two approaches from the user perspective on defining load testing objectives, either top-down (business perspective) or bottom-up (techincal perspective).
The top-down, meaning the transaction time take to submit a request and having it responded on the user's machine. This is a business perspective where they just want to know how the application is responding. The user do not want to know how many Hits/sec or Throughput but just want to know how much time was taken for a transaction (therefore the terminology of "transcation" must be aligned with you and the user).

The bottom-up, is a techincal perspective as you had pointed out such as the
ASP.NET transactions or the database transactions (or commits). This is usually a persepctive from a technical manager so they can configure the system accordingly (or whatever they are going to do their system).

Hopefully the above is helpful in understandin your users/clients a little bit more before giving them a satisfying answer.


General: How does LoadRunner license work?
General: Are client activities recorded by Vugen?
General: Scenario Execution
General: Detecting Memory Leaks Using LoadRunner
General: Vugen/Controller Crash or Abnormal Behavior
General: Virtualization with LoadRunner
General: Planning for Load Testing
General: Planning for Load Testing - Soliciting Requirements
General: Planning for Load Testing - Application Design
General: Planning for Load Testing - Protocols
General: Planning for Load Testing - Monitor Setup
General: Planning for Load Testing - Monitoring
General: Planning for Load Testing - Analyzing
General: Planning for Load Testing - Recommendations

Labels: , , ,

Bookmark this article now! AddThis Social Bookmark Button

technorati reddit digg

Scripts: Parameterization

Point to note that parameterization may result in data dependency which the tester should be aware of and handle it appropriately. Every load test should at least require parameterization. Parameterization includes passing different types of data into the application to emulate the real world users performing/entering different values.

What do clients want to achieve from parameterization?
  1. To test different data
  2. Just to load/emulate the data
Parameterization requires identifying with the clients which areas required data input. This will be useful when discussing in the Application Design. From there, they can prepare the data from the database which is a more efficient method.

Preparing the data

Usually after walking through the application, I will request the client to prepare the date via the database and export it out as an excel file. This will reduce the time in preparing lengthy excel or notepad files. From there, you can manipulate the data easily in either Excel or After I’ve amended the files properly, I will save it as a .dat file and placed it in a shared folder for my scripts to access.

Once converted into .dat file, ensure that they have been delimited properly with the commas. Take note that Vugen allows different delimiters in the Parameter List.

The usual items to parameterize are username, password, dates, etc but not limited to the mentioned. However, there are also hidden values that are stored in web pages (e.g. in the form of AJAX) or HTML codes (e.g. hard-coded hidden input) which are captured by Vugen. As such, I will point it out to the clients and request them to prepare the data for me.

Having said that, it’s best to define what is correlation and parameterization or you may end up spending effort in the wrong track.

Placement of the Parameter file

When you created a parameter for each script, by default, it’s stored in the root of the script folder. That is, if you save the script as test_script.usr in C:\, the parameter file will be saved in C:\test_script. For every script that has a parameter, it will be saved in its individual script folder. This way is good for a single script but when multiple scripts using the same parameter file is involved in the load test, it will be advisable to centralize the parameter file.

What I do when I’ve prepared the data files is that I will place them in a central repository (folder) where all my scripts will access. This is tidier and provides a way of ensuring consistency of the parameter used for all scripts.

Why parameterize different data?

Why is there different effect on different data? A simple example is uploading of different sizes of files. If parameter A is uploading 2MB of file while parameter B is uploading 4MB of file, it will definitely generate a higher throughput on the latter parameter. This may be a concern of the client.

Another example is querying different items in a database. Parameter A may query and return a smaller result while parameter B returns a bigger result causing a higher throughput.

Not the Obvious Data Dependency

Point to note that parameterization may result in data dependency which the tester should be aware of and handle it appropriately.

Examples are username and password submission: A username login will require a valid password. This may seemed obvious for this situation. However, as pointed earlier about the hidden input, you will have to be cautious on it. As Vugen records whatever is been transmitted to the server, the hidden input are recorded as well. Therefore, you will need to check back with the application developers to find out more about the hidden values associated with each parameter value. If possible, request them to provide a list of the values in Excel file format for you to manipulate.

Which Settings are correct?

Parameterization settings vary depending on your applications. You may like to sequential it or randomize it. Ensure the settings are correct. Usually I defined them as unique.

Testing the data

There is various ways to test if the parameters are correct. You can perform the following:
  1. Replay the script in Vugen with one iteration
  2. Replay the script in Vugen with three iterations.
  3. Replay the script in Controller with one Vuser.
  4. Replay the script in Controller with three Vusers.
These will be sufficient to test out the validity of the parameters used. You can also defined at which point the parameter values are been used by defining the starting row to retrieve data.

Other tips & tricks

Some applications/business processes only allow one time use of the parameter. For example, deletion. As such, you should be aware that after each test, request the client or the application team to revert the changes for you so that there are data for you to delete.

Related Topics

Scripts: Duplicating Files on the Fly
Scripts: Step Download Timeout
Scripts: Auto or Manual Correlation?
Scripts: Remove Think Time
Scripts: Set Debug Mode in Script
Scripts: Replay Failure – Use Full Extended Log!
Scripts: Starting a new transaction during iterations
Scripts: Any compatibility issues after upgrading LoadRunner versions?

Labels: , ,

Bookmark this article now! AddThis Social Bookmark Button

technorati reddit digg

Powered by Google

Enter your email address:

Delivered by FeedBurner

Add to Technorati Favorites


Powered by Blogger

make money online blogger templates

Powered by FeedBurner

Blog Directory

Top Blogs

Software Blogs -  Blog Catalog Blog Directory

© 2007 Performance Testing, LoadRunner Tips&Tricks | Blogger Templates by GeckoandFly.
No part of the content or the blog may be reproduced without prior written permission.
Learn how to make money online | First Aid and Health Information at Medical Health