Leo Borisov (Fucntional Architect at HP) posted this to a LinkedIn discussion group on LoadRunner.
I just downloaded this document and it looks pretty good, it contains details of the best performace counters to monitor for Windows and UNIX systems and has details of different web servers such as WebLogic, WebSphere, IIS etc.
Leo’s LinkedIn posting which explains how to download the document is reproduced below.
I wanted to draw your attention to the fact that the recently released Service Pack 1 for HP LoadRunner and HP Performance Center includes a “Performance Monitoring Best Practices” book. This is the first installment in the “HP Performance Engineering Best Practices” series that HP Software and Solutions intends to release on the regular basis. We have always recognized the fact that having best practices and methodology would greatly simplify the life of performance engineers and managers, and now we are beginning to fill this need.
The book is available with the SP1 installation. Access it from the product documentation library, or from the Help menu.
To download a copy from the HP Software support site:
1.Go to http://h20230.www2.hp.com/selfsolve/manuals
2.Log in using an HP Passport or register first at http://h20229.www2.hp.com/passport-registration.html and then log in.
3.In the list of HP Software Product Manuals choose either LoadRunner or Performance Center – the book is listed under both.
4.Select Product Version: 9.51 and Operating System: Windows.
Since this is the first book in the series covering various aspects of methodology, we would really appreciate your feedback. Please send your feedback directly to me or [email protected].
Thanks in advance!
Email: [email protected]
I regularly use global filters in LoadRunner Analysis, for example, to filter out the ramp-up and ramp-down portion of a performance test. Then I create filters for individual graphs to show or hide relevant transaction response times or performance statistics. I have noticed that if I run a test at a different volume and therefore a different ramp-up when I change the global filter, this resets all the graphs to their default views which is very annoying.
e.g. The problem
If you change Global filter, for example by adding one second to the filter.
After clicking “OK”, LoadRunner “helpfully” re-applies the global filter settings….
…and overwrites all the other filters, in this case we can now see all the UNIX counters, not just the ones for CPU utilisation that we wanted.
To get round this problem you need to manually edit a number of text files in the template folder. This allows the change to be made without all other settings being overwritten.
- Navigate to the folder containing the Analysis Templates. The default location is C:Program FilesMercury InteractiveMercury LoadRunnerAnalysisTemplates
- Open the folder that contains your existing template.
- Open all the files with a DEF suffix and the TEM and ASC files in a text editor that allows search and replace through multiple files. I would recommend using Textpad for this.
Search for the “Values” section under the [Result0_GLOBALFILTER0] section in the .TEM file. In the example below the values show a global filter from 6 minutes to 66 minutes (360 to 3960 seconds).
Using the search and replace option modify the start and end times, ensure that you select the “All documents” scope, to ensure that the change is made in all the open documents, this will modify the same text in the .DEF, .TEM and .ASC files.
After changing the values, save all files.
The template can now be re-applied without losing the non-global filters.
N.B. If you rename the .TEM and .ASC files you also need to rename the template folder accordingly.
When testing it is sometimes difficult to define suitable delimiters which allow you to correlate information for use later in a script. For example I once tested an application where code similar to this was returned. In the attached example I captured a large amount of returned data.
In this example a large hexadecimal number identified the account. Due to the large number of quotation marks prior to the string that I was interested in and the fact that multiple strings were returned by the web page, it was difficult to capture the string directly. Instead I decided to capture the whole of the above text and then extract the HEX6A31013657A217B4A2254993C29633893A920BAE3C9400DB string from the captured text.
Using the C function strtok it is possible to extract data from a string based on delimiters. In this case I needed the fifth value in the string that is separated from the rest of the returned data by the ["] delimiter. I used a loop function to repeatedly search through the returned data until it reaches the fifth quotation mark.
Then the captured “token” can be written to a string.
After upgrading to LoadRunner 9.x I started getting a window popup which said “Failed to connect to server” every time I opened virtual user generator (vugen.exe).
The solution to this was to close virtual user generator and delete the [vugen.ini] file.
vugen.ini is found in the %systemroot% folder on your Windows PC (usually C:WINDOWS or C:WINNT).
Once you’ve deleted the file, virtual user generator will open without any issues and create a new vugen.ini file automatically.
When performance testing it is important to simulate realistic user journeys through an application. With this in mind it might be necessary to choose options at random from a list. In the example below which was used to performance test a share dealing application it was necessary to simulate the purchase of different shares so that all vUsers aren’t selecting the same share.
The lr_paramarr_random function can be use to simulate users selecting different items from a dropdown list.
First capture the parameter using a web_reg_save_param function, select all ordinal values using ORD=ALL.
In the example above the following values were captured.
Action.c(118): Notify: Saving Parameter “CompanyName_1 = BARCLAYS ORD GBP0.25″
Action.c(118): Notify: Saving Parameter “CompanyName_2 = HBOS ORD GBP0.25″
Action.c(118): Notify: Saving Parameter “CompanyName_3 = LLOYDS TSB GROUP ORD GBP0.25″
Action.c(118): Notify: Saving Parameter “CompanyName_4 = TESCO ORD GBP0.05″
Action.c(118): Notify: Saving Parameter “CompanyName_5 = VODAFONE GROUP ORD USD0.11428571“
The lr_save_string function is then used to save one of the “CompanyName” parameters into a new parameter called “RandCo”.
Action.c(154): Notify: Parameter Substitution: parameter “RandCo” = “HBOS ORD GBP0.25“