Thursday, 27 December 2012

Facing problems recording Ajax protocol

We are recording a script for an HTML application that has some Ajax elements, but some of those elements do not generate requests with protocol HTML Web and we are not able to retrieve some data using "Ajax Click and Script" protocol as well. Please provide us a eBackup link to provide you the scripts recorded.

The application that we are working at is having some issues and we are not able to fix the script that was having problems. So we are done with this case for the moment. Please proceed to close it and once the application is fixed we will raise another case.

Monday, 24 December 2012

Trouble scripting against a secure webservice that uploads files via MTOM

I am currently testing a secure webservice that uploads files to an IBM FileNet server via MTOM. The service uses two way authentication through a certificate which has been installed on the root of the machine I am scripting on.

The service is functioning when tested using SoapUI.

I have imported the WSDL using VUGEN for the service that i am testing.

I then added a call to the operation for uploading a file. I have also added the custom header with the username and password for the service.

When I run the service I am getting errors and the files are not uploaded to FileNet. Please note that I have successfully scripted against some of the other operations for same WebService, i.e. retrieve document details and this works ok so I dont think its an authentication issue that I am encountering.

From the documentation i have found so far I believe that VUGen supports MTOM. Can you advise the correct method of adding a webservice call to add an attachement via MTOM.

I will update my script as an attachement as well as the errors encountered. Not i have tried but Soap_Request and Web_service call.

When LoadRunner (LR) executes a Web Services/MTOM script it uses a Microsoft WCF router within the Load Generator machine for communicating with the Web server. This can be confirmed in the Vugen replay log. For example:

action.c(5): Web service call "Open_document_102" started
action.c(5): Creating handler
action.c(5): Searching for wcf router
action.c(5): Preparing router

The LR Controller picks up the Web Resource metrics such as "Hits per Second" and "Throughput" from the LR HTTP replay engine running on the Load Generator. However, the LR HTTP engine is bypassed in this case and these metrics are not available from an Microsoft WCF router. This explains why there is no data in the "Hits per Second" or "Throughput" graphs in the Analysis session containing a Web Services/MTOM script.

The web_add_header function can be used to specify a custom header in "simple" Web Services scripts where no scenario is specified (in the "Protocol and Security" tab in "Manage Services").

However if a scenario type is specified in the Web Services script, for example, "MTOM" is selected, the web_add_header function cannot be used to specify a custom header. This usage is not currently supported by LoadRunner.

An enhancement request has been submitted to add this capability to LoadRunner for the Web Services protocol.

Please install vugen 11 patch 3 that I have uploaded to the case FTP

the file name is: LRVUG_00015.exe

Saturday, 22 December 2012

How to record mobile applications in LoadRunner 11 patch 3

Loadrunner Mobile protocol:

With the new Mobile App (HTTP/HTML) protocol added to LoadRunner 11 in Patch 3, there are three recording options in the recording Wizard:

1.Record and Analyze Traffic - Use mobile sniffer agent to capture traffic and then analyze.

2.Analyze Traffic - Analyze traffic using existing capture file to generate script.

3.Record Emulator - Record script using a mobile device emulator.

Option 1 allows Vugen to connect to the mobile agent on the server or localhost and carry out the business process for recording.  

More information is available in the online help in:  Mobile Protocols > Mobile App (HTTP/HTML) > How to create a script by Recording and Analyzing Traffic.

Option 2 allows Vugen to scan a pre-captured network traffic (WinPcap) file and generate the code based on the traffic.

More information is available in the online help in Mobile Protocols > Mobile App (HTTP/HTML) > How to create a script by Analzying Traffic

and in Mobile Protocols > Mobile App (HTTP/HTML) > How to create a script by Analzying Traffic

Option 3 allows Vugen to record an emulator installed on the Vugen machine. With this option, you need to verify that you are able to bring up the emulator and navigate to a URL outside of Vugen to make sure the emulator settings are correct. 

More informaiton is available in the online help under: Mobile Protocols > Mobile App (HTTP/HTML) > Recording with Emulation

NOTE: The Mobile TruClient protocol is recommended for browser-based mobile applications -- Mobile TruClient protocol launches Firefox to record the business process.

Friday, 21 December 2012

Oracle nca protocol script recording issues

Oracle nca protocol script recording issues. Not recording event when java applet is being used.

The attached document Oracle NCA Vuser Guide is a troubleshooting guide for the Oracle NCA Vuser type. It covers the common problems encountered when working with this protocol.

Related articles that may be of interests:
Document ID KM170575 - How-to and troubleshooting guide for Multi Protocol (NCA/WEB) Vusers

Thursday, 20 December 2012

Web (HTTP/HTML) protocol not recording one flow in the application to be tested

We have HPSM application which needs to be tested and i am using web (http/html) protocol for recording the flows. I am able to record 5 out of 6 flows through VuGen using this protocol. but Every time one flow is getting stopped when i try to record.
I also try the same flow with different protocol like Ajax and web click and script but finding the same error, with these protocols as well.

Solution:  Make sure that the settings for Web recording are properly set
Many different reasons can cause this problem, but, most of all make sure that the settings for Web recording are properly set.
1. Are you recording against a SSL site that needs authentication? If so, you need to import the certificate to the recording machine to make sure that VuGen is forwarding the proper request to the server during recording.
   a. Go to your homepage manually.
   b. Click on the LOCK symbol on the bottom right corner of Internet Explorer window.
   c. Click on "Install certificate" and follow the screen to import the certificate onto the machine.
2. Do your need to go through a proxy to get to your homepage? If so, make sure that you set up the recorder properly. By default, VuGen changes the browser's proxy settings to localhost: 7777 and this may cause problem with your proxy.
   a. Check for the proxy information under Tools -> Internet Options -> Connections -> LAN Settings.
   b. Replicate the information into the VuGen Tools -> Recording Options -> Recording Proxy.
   c. If authentication is needed, click on the 'Authentication' button and put in your username and password. For NTLM, you can try the username and password of your machine. Otherwise, contact your Network Administrator.
   d. If the proxy needs any authentication, do not forget to specify that and select the "Restore proxy only when recording is complete" option.
3. Is your application using HTTP 1.1? If so, while recording, go to Tools-> Internet options-> Advanced-> HTTP settings and enable "HTTP 1.1 through proxy connection" once the browser is launched.
4. Sometimes, it could happen that the certificate for the site does not match the site to which the user was navigating. Netscape generally gives you a warning, but Internet Explorer may cause the above problem. If this is the case, from Internet Explorer, go to Tools -> Internet Options -> Advanced. Under Security, select "Check for server certificate revocation (requires restart)." This allows Internet Explorer and VuGen to go to the site.
5. Try to record using the multi-protocol recorder, with only web enabled. This recorder is available with LoadRunner7.51 or above and uses a different way to record comparing to the single-protocol web recorder. To record with multi-protocol recorder,
    a. Go to VuGen -> File -> New -> New Multiple protocol Script
    b. Select web from the list, click on right arrow button to add
    c. Click 'OK'
    d. On the 'Start recording' window, select 'Internet Application' on the 'Application Type' pull down menu.
    e. Specify the 'URL address' then click 'OK' to start the recording
6. The problem can be related to some applications running on the VuGen machine that interrupts Load Runner's recording mechanism. You need to find out if there is any antivirus, VPN, firewall, local proxy Spy ware or sniffer running on the machine and disable it. You can also use the application "Process Explorer" that you can download from to see what DLLs are loaded by VuGen while doing the recording. Refer to DocumentID 31731 - Troubleshooting guide for VuGen (not stable/crashes/freezes/GPF) for details of how to use process explorer.
7. If none of the above helps, try to record the application using the 'Manually launch an application" option. For further details, refer to DocumentID 13359 - Manually recording web application (setting proxy for VuGen).
Related articles that may be of interest:
Document ID 17115 -The Web Recorder is not recording any events
Document ID 23633 -Web Recorder's automatic recording is not working, no events recorded

Thursday, 6 September 2012

Loadrunner replay window in loadrunner 11.5

Loadrunner Replay window in Loadrunner 11.5.

In earlier versions, there is a option to enable and disable replay window( show browser during replya : tool-Options-Display tab - Select option to enable replay window)

In this Load runner version, they made this option as protocol specific. It is not available for HTTP/HTTPS/SAP Web protocol.

Please visit below thread for more details:

Wednesday, 8 August 2012

Correlating SAP Event queue ( SAPEVENTQUEUE) value in SAP Web dynpro portal application using loadrunner.

Correlating SAP Event queue ( SAPEVENTQUEUE) value in SAP Web dynpro portal application using  loadrunner.

In general HTTP correlations, most of the times we capture the value using Web_reg_save_param. One of our  client has having SAP portral with Webdynpro environment.  But in this application the value going to server is having different than the one captured value, below is the example
The challenge here is:
the captured Dynamic value od SAP Ext SID is:
sap-ext-sid=bthS*ed*7aBmxbOyv*kQYw--BOJtGMTw_1wFLGmQve28Gg- -
But it is going to the server in SAP in some other format.
"Name=SAPEVENTQUEUE", "Value=Custom_ClientInfos~E002Id~E004WD01~E005WindowOpenerExists~E004false~E005ClientURL~ ~003Bsap-ext-sid~003dbthS~002Aed~002A7aBmxbOyv~002AkQYw--BOJtGMTw_1wFLGmQve28Gg--~E003~E002ClientAction~E004enqueue~E005ResponseData~E004delta~E003~E002~E003~ Action~""E004submit~E003~E002~E003", ENDITEM,
If you observe here, the *in the value is replaced by ~002A, So we have wrote a piece of code to convert that to desired format. Pleas use the below code.
//declare these variables outside of Action block.
int i;
char myVal[100];
char buffer[];
char newSId[]="";
char separators[] = "*";
char *token;
char * position;
//Insert this function above the Action request from which you are capturing the SAP Sid value. Don’t //forget to converting HTML to Text format.
web_reg_save_param("sId_SAPEVENT", "LB=sap-ext-sid&#x3d;", "RB=\"  target=\"Search and", "CONVERT=HTML_TO_TEXT",  LAST);
//Let’s here you have request
//Http call
//Insert this code after HTTP request from where you are capturing this value
position = (char *)strstr(lr_eval_string ("{sId_SAPEVENT}"), "*");
if(position != 0){
                i = strcspn (newSId,"*");
                token = (char *)strtok(newSId, "*"); // Get the first token 
                sprintf(myVal, "");
                while (token != NULL ) { // While valid tokens are returned
                                if((i+1) == 1){strcpy(myVal,"~002A"); i=100;}
                                token = (char *)strtok(NULL, "*"); // Get the next token 
                                if(token != NULL){strcat(myVal,"~002A");}
                lr_save_string (lr_eval_string (myVal),"sId_SAPEVENT");
//You can pass this {sId_SAPEVENT} value in your calls, this holds the SAP EXT SID value after replacing * with ~002A
 If you have any questions, Please reach out to me.
The peice of code is written by Shekhar bhole from ScalarUSA.
Thanks for all the readers who are visiting this article, please write your comments.
If this article is useful to you and saves your time, Please like us on facebook
Thank you,

Wednesday, 11 July 2012

Load runner protocol bundle

Load runner protocol bundle information:

Below are the Loadrunner protocol bundles informationa and if you are looking for Loadrunner licensing information, click here.

.NET Record/Replay
  • Microsoft® .NET 2.0
  • Microsoft .NET 3.0
  • Sybase CTLib
  • DB2 CLI
  • Siebel-DB2 CLI
  • MS SQL Server Informix
  • ODBC
  • Siebel-MSSQL
  • Oracle (2-Tier)
  • Siebel-Oracle
  • Sybase DBLib
  • CORBA-Java (check?)
  • Domain Name Resolution (DNS)
  • File Transfer Protocol (FTP)
  • Internet Messaging (IMAP)
  • Lightweight Directory Access Protocol (LDAP)
  • MS Exchange (MAPI)
  • Post Office Protocol (POP3)
  • Rmi-Java (check?)
  • Simple Mail Protocol (SMTP)
  • Tuxedo 6
  • Tuxedo 7
  • Windows Sockets
Oracle E-Business
  • Oracle NCA
  • Oracle Web Applications 11i (C&S for Oracle)
  • PeopleSoft Enterprise (C&S for PeopleSoft)
  • Siebel-Web
  • PeopleSoft-Tuxedo
Remote Access
  • Citrix_ICA
  • Jacada
  • Terminal Emulation (RTE)
Rich Internet Applications
  • Action Message Format (AMF)
  • Ajax (Click and Script)
  • SAP-Web
  • SAP (Click and Script)
  • SAPGUI/SAP-Web Dual Protocol
  • MQSeries-Client
  • MQSeries-Server
  • Web Services
  • Enterprise Java Protocol (EJB)
  • C Vuser
  • Java Vuser
  • Javascript Vuser
  • VB Vuser
  • VB.NET Template (Visual Studio add-in)
  • VBNet Vuser
  • VB Script Vuser
  • C#.NET Template (Visual Studio add-in)
  • C++.NET Template (Visual Studio add-in)
Web and Multimedia
  • MediaPlayer (MMS)
  • Web (Click and Script)
  • Web (HTTP/HTML)
  • RealPlayer
  • i-mode
  • VoiceXML
  • WAP
  • Palm
  • Multimedia Messaging Service (MMS)
  • HP WinRunner software
  • HP QuickTest Professional software
Java Record/Replay
  • CORBA-Java
  • Rmi-Java
  • Jacada
  • JMS
Remote Desktop
  • Microsoft Remote Desktop Protocol (RDP)
Web 2.0
  • Service-Oriented architecture (SOA)
  • Web & Multimedia
  • Rich Internet Applications (RIA)

Wednesday, 27 June 2012

Loadrunner manual correlation steps

Manual Correlation steps

1)Dynamic values identification
 - record two identical scripts (with same input data) and compate them
2)Search for dynamic values - Generation log - copy the boundaries
3)Insert Web_reg_save_param and define the arguments
4)replace hard code value with parameter name

Wednesday, 30 May 2012

Loadrunner checkpoints - validating response

Loadrunner checkpoints - validating response

Call this as text checkpoint or page validation or response verification, but these checkpoints you insert for every request helpful in identifying the failed transactions.

Function to be used as text checkpoint -
Web_reg_find("text=expected string on the page", LAST);

This function has to be inserted above the http request that you want to validate.

I will add more posts on this function later. 

Tuesday, 29 May 2012

Automatic Correlation - Scan script for correlation

Automatic Correlation - Scan script for correlation:

In loadrunner there are two ways of doing Automatic correlation. Those two techniques correlation during recording and correlation after record and replay. In this post let us know about correlation After record and replay - We can call this as "Scan script for correlation" or "Correlation Scan"

Automatics correlation Step1: Record only once- Run that script instead of recording with extended log. Compare Replay log with Generation log - CTL+F8 - Scan script for correlation

Automatic correlation Step2:  Select dynamic value in the correlation results tab and click on correlate




Difference between Generation log and Replay log

Generation log & Replay log:

Generation Log:

Contains HTML source of recoded snapshots

Replay log: 

Contains HTML source of Replay snapshots (Make sure to enable extended log in the runtime settings.

Tuesday, 15 May 2012

Correlation tips on manual correlation

Correlation steps


 1.Why we have to correlate?
  • Our objective is to create real user behavior  and simulate real time user
  • Make scripts works for multiple users
2.What I have correlate?
  • The values which are changing dynamically every time, correlate those values.
  • Record two similar business process with same steps and same login id and compare the scripts to see which values are changing every time.
3.How do you capture dynamic values?
  • Capture the dynamic values from the source and pass the parameters where ever required.
  • Use common LB and RB of dynamic value and using web_reg_save_param function.
4.How do you replace the dynamic values in the script?
  • Replace the hard coded values with Parameter in the script. 

What is loadrunner

What is loadrunner? 

Loadrunner is a performance testing tool from HP.

It supports more than 40 protocols. Compared to other tools like rational performance tester (RPT) the strength of loadrunner is it support major number of protocols and reporting capability of loadrunner is good.

Support from Hp is also one of strength.

Pls add your comments.

Thursday, 5 April 2012

Loadrunner Training Course content


Loadrunner Training Course content

   6.      Vugen Recording options
   7.      Vugen Runtime settings
   8.      Action files
   9.      Transactions
   10.   Checkpoints
   12.   Manual correlation
   13.  Automatic correlation
   14.  Controller
   15.  Manual scenarion and goal oriented scenario
   16.  Scheduling Scenario
   17.  Adding monitors in Controller
   18.  Running load test in controller
   19.  Analysis
   20.  Adding graphs in Analysis and creating Reports
   22.  Windows performance monitoring tool - Perfmon
   23.  Performance Center overview 
24.  EXAM on Loadrunner scripting and Load testing

Monitoring Unix performance from Loadrunner -controller

Monitoring Unix performance from Loadrunner -controller

      This can be achived through agent less monitoing, that means we don’t need to do any agent installation on the server but the machine should have RSTAT daemon up and running. Controller communicates with port 111 on the Unix machine and this port is then mapped to the dynamic port on which the rstatd is working. The controller then queries rstatd and all communication takes place through this established UDP socket connection.

Loadrunner Vugen parameterization

Loadrunner Vugen parameterization

·         It is the way of replacing a hard coded value in the script with a parameter which represents a list of values.
·    VuGen generates a script that contains the actual values used during recording and during script enhancement phase test engineer has to replace the recorded values with parameters is known as parameterizing the script.

Objectives of parameterization:
·         One  of the main objective of parametrization is to simulate real user behavior while running the test and we also use this to solve below problem
·          Solve Date constraints that may occur during playback
1.     Eg: When Second Virtual User accessing the Application  user may fail because of the 2/14/99 was yesterday!]
·          Solve data caching that may occur during playback
1.      Eg: When Second Virtual User accessing the Application, user will get data  from Cache 
·          Solve unique constraints that may occur during playback
Eg: Order number 1234 is already here
·          Solve data dependency that may occur during playback
·          Emulate real user activity
  • Exercise the server (Some times when we are searching with same keyword, the request will not go to database and it will get the data from the webserver cache and it will not exercise the server. Parameterization will solve this problem)

How to create Parameters:
·         Right click on the value and select “Replace with parameter” where we need to execute with different  set of values.

·         On the new window opened just give the Parameter name as user defined variable and Parmeter typeàselect any one from the drop down and Original Value will be default value and click on properties

·         After clicking on properties new window will be opened then click on Edit with notepad button and enter some list of values.
Note:  After entering values in notepad keep the cursor in new line and save the notepad and close it.

·         After entering the different set of values we have to customize the parameter properties to execute the script as user’s perspective.

Parameter Customization:
1.    Select Columnà By Number
                    àBy Name
  These values are used when we have multiple columns in the same table with the same parameter type. We can select for each parameter by number as column number or by name as column name.

2.    File Formatà Column Delimiter
                àFirst Data Line

Column Delimiter drop down has values Comma,Tab,Space which are used to separate multiple columns.

First Data Line is a number which it uses that number row data at the time of execution. For eg: if you increase the number to 2 by using up button then the execution starts from 2nd row data.

3.    Select Next Row à Sequential

Update Value on à Each Iteration
                        à  Each Occurrence
                        à  Once

If you select Select Next Row as Sequential and Update Value On as Each iteration then the users will execute the data sequentially for each iteration.

Click on close button and press CTRL+L buttons then parameter properties window will open with all parameters in left side and right side parameters data window.

If you click on Simulate Parameter button and then enter the iterations in check box and then click on simulate button then we will get the user behavior when the time of execution how the parameters will pass to the vusers.

If you select Update value on as Each Occurrence we can not simulate the parameter.

If you select Update value on as Once then the vuser will take only one set of data for all vusers. For ex: In the above snapshot we will get jojo and bean for each and every vuser we execute.

If you select Select Next Row as Random and Update value on as Each iteration then the user will pick random data for each and every iteration. At that we have to select for one parameter these values and select Same line as that parameter name for remaining parameters

For Ex: If we select RandomàEach iteration for Username then we have to select Same line as username for password.

If you select Select Next Row as Unique and Update value on as Each Iteration or Each Occurrence then automatically When Out of Values and Allocate Vuser values in the controller will be enabled.

When Out Of Valuesà Abort Vuser
                            à  Continue in a cyclic manner
                            àContinue with last value

Allocate Vuser values in the controller(Radio Buttons)
        Automatically allocate block size
        Allocate ______ values for each vuser

If you have values less than vusers at that time we have to select UniqueàEach IterationàAbort Vuser then what ever the users extra are aborted from the execution.

We can select UniqueàEach IterationàContinue in a cyclic manner


We can select UniqueàEach IterationàContinue with last value

And we can select any of the two radio buttons for Allocate vuser values in the controller in the above three different cases

If you select Uniqueà Each Occurrence only
        Allocate ______ values for each vuser will be enabled for all the three cases

And you can click on Simulate Parameter button for each and every different options customized to view how the vuser behavior.

If you select Uniqueà Once all the vusers will execute with one set of data.
Once parameterization is done click on close button. Test the data execution procedure in the form of iterations in VUGen.

Posted by: Sandeep Yalamanchali

Monday, 2 April 2012

Loadrunner Training Course content

Loadrunner Training Course content

  1.  Core Activities of performance testing
  2.  Key types of Performance testing
  3.  Non functional requirements gathering
  4.  LoadRunner Instalation and Licensing policy discussion
  5.  Loadrunner components and Protcol discussion
  6.  Vugen Recording options
  7.  Vugen Runtime settings
  8.  Action files
  9.  Transactions
  10.  Checkpoints
  11.  Parameters (Parameterization)
  12.  Manual correlation
  13.  Automatic correlation
  14.  Controller
  15.  Manual scenarion and goal oriented scenario
  16.  Scheduling Scenario
  17.  Adding monitors in Controller
  18.  Running load test in controller
  19.  Analysis
  20.  Adding graphs in Analysis and creating Reports
  21.  Performance Counters for O/S and database
  22.  Windows performance monitoring tool - Perfmon
  23.  Performance Center overview
  24.  EXAM on Loadrunner scripting and Load testing

Loadrunner Interview Questions - Part IV

 Loadrunner Interview Questions - Part IV

1.How many types of Correlation are there?
 Correlation can be done by 3 ways: 

  1. Manual Correlation ( this method is most recommended)  
  2. Automatic Correlation (This requires rules need to be created in existing rule engine, this can apply only to popular and frequent dynamic values like viewstates in .Net applications) 
  3. Correlation Studio

2.How you will do the manual Correlation?
  1. Record two identical scripts with the same business process, make sure to use same input data like user names and search strings
  2. Compare the scripts to identify the dynamic value, You can compare them using notepad or keeping side by side or using windiff or any text comparison tools. the mainly you have to look at ITEMDATA section and URL ending part. Once you identified which value is changing every time
  3. Search for the dynamic values in the Generation log and Copy Left boundary (LB) and Right boundary (RB) into notepad
  4. Replay the script with extended log and look for those boundaries in replay log and Double click in the replay log  where the  boundaries are found and it will take the cursor to the point where dynamic value is generating in the recorded script. This step is to identify from which request this value is generating and this will help us to identify the location to keep web_reg_save_param function.
  5. Insert web_reg_save_param("Param name", "LB=" , "RB=", LAST) ; where the cursor is pointing       
  6.  Replace the dynamic values with Param name
3.How you will do the parameterization for Date/Time?
Select the parameter type as Date/Time  and select the date/time format in the list.
If you want u can get the date in the script by using "lr_save_datetime("Tomorrow is %B %d %Y",     DATE_NOW + ONE_DAY, "next"); "

4.How many areas you can do the correlation?
Areas of correlation are:
1) ItemData
2) TimeStamp
3) Links
4) Check Boxes
5) List Butoons
6) Radio Buttons

5.What is the function used for to find out the buffer size of file ?
First of all we have to know the application type for this question.
If it is web application we dont need to go for buffer size bcoz most of the functions are inbuilt with the buffer element.
If we go for windows sockets application the function is mentioned below:
char *lrs_get_static_buffer( char *s_desc, char *buffer, int offset, int length, char *encoding );

6.What is the difference between Hits/secs & Throughput?
Hits Per Second: This graph shows the number of HTTP requests made by Vusers to the Webserver during each second of the load test scenario run.
Throughput:This graph shows the amount of throughput on the server during each second of the load test scenario run. Throughput is measured in bytes or megabytes and represents the amount of data that the Vusers received from the server at any given second.

7.How graph will be there between Hits/secs & Throughput?
Hits per second is directly propositional to through put
 If the Hits/secs Increses Throughput should also increase
 if the Hits/sec decreases through put  should also decrease

8.If suppose we are executing a scenario with 10 vusers and a value is parameterized (Say ex: Sales Id with 10values), how can i know that what is the value of 5th vuser sales id?
The question is having little information to answer, Question should also have which parameter properties this scenario is using. Let us go with some examples. If the setting is sales id picked Sequential and update for each iteration. in the first iteration all the users will use first value, so the answer is 5th iteration. If it is Unique the 5th sales id will the 5th user will take. To find 5th vuser value we have to know first what we have give the  parameter properties.
If we take sequential-->each iteration then in parameter values 5th value is 5th vuser value and if we take unique also same value and if we take random we have to check in the log file of LRR folder.

9.What is the purpose of the Unique value?
Assigns a unique sequential value to the parameter for each Vuser. Ensure that there is enough data in the table for all Vusers and their iterations. Ifyou have 25 Vusers and you want to perform 4 iterations, your table must contain at least 100 unique values.
If you run out of unique values, VuGen behaves according to the option you select in the When run out of values field.

In real life applications, in lot of situations application will not accept duplicate values like order number, registration functionality. 

10.In controller, when I am executing the scenario with 10vusers, among 10vusers 1 is failed then how you will find out who is the exact user? 
First of all enable the ip spoofing and insert "lr_get_vuser_ip()" then execute the scenario and take the log files saved in result directory(.LRR extension) and find the failed user transaction then we can find vuser ip which is failed.

11.Is there any function in lr to avoid multiple login's if a user already logged in? 
There is no function to avoid multiple logins. In case if we have to avoid multiple login based on our application then we have to write our own code in "C" language.

12.In controller I am executing a scenario with 2Vusers and a value is paramerterized ( Say ex: Sales with 10values). So, whether it is possible to assign for each users 5 values? If yes how ? 
Go to parameter properties  
Selext Next Row:Unique 
Update each value on: Each occurence  
then automatically radio button " Allocate ________ values for       each vuser" will be enabeld