Thursday, March 21, 2013

LR Basic Questions

1)      Which protocols are supported by Loadrunner ?

As of Loadrunner 9.5 following protocols are supported. This will increase with future releases. The interviewer is not looking for you to name all but a few (say 5-7 protocols).
Application Deployment Solution: For the Citrix protocol.
Client/Server: For DB2 CLI, DNS, MS SQL, ODBC, Oracle (2-tier), Sybase
Ctlib, Sybase Dblib, and Windows Sockets protocols.
Custom: For C templates, Visual Basic templates, Java templates,
Javascript and VBscript type scripts.
Distributed Components: For COM/DCOM, Corba-Java, and Rmi -Java protocols.
E-business: For FTP, LDAP, Palm, Web (HTTP/HTML), Web Services, and the dual Web/Winsocket protocols.
Enterprise Java Beans: For EJB Testing and Rmi-Java protocols.
ERP/CRM: For Baan, Oracle NCA, Peoplesoft-Tuxedo, Peoplesoft 8,
SAPGUI, SAP-Web, and Siebel (Siebel-DB2CLI, Siebel-MSSQL, Siebel-Web, and Siebel-Oracle) protocols.
Legacy: For Terminal Emulation (RTE).
Mailing Services: Internet Messaging (IMAP), MS Exchange (MAPI), POP3, and SMTP.
Middleware: Jacada and Tuxedo (6, 7) protocols.
Streaming: For MediaPlayer and RealPlayer protocols.
2) Which components have you used in Loadrunner ?
 Vuser generator - For generating Scripts
Controller - For creating and executing scenarios
Analyzer - To analyze results

3) What is load runner Agent.

Agent is interface between host machine and controller

4)  What is the process for developing a Vuser Script ?

There are 4 steps for developing a vuser script.
1-Record the Vuser Script .
2-Playback / Enhance the recorded vuser script.
3- Define the various run-time settings & check
4- Incorporate the script in a Loadrunner scenario

5) How many VUsers are required for load testing ?

The number of VUsers required depends on your system under test , network configurations , hardware settings, memory, operating system, software applications objective of performance test. There can not be any generic value for Vuser.


6) What is the difference in running the Vuser as a process and as a thread? Which is more advantageous way of running Vuser?

When Vuser is run as a process the same driver program is loaded into memory for each Vuser. This will take a large amount of memory and will limit the number of Vusers you can run on a single generator
When Vuser is run as a thread, only one instance of driver program is shared by given number of Vusers.  You can run more number of Vusers on a single generator using the multi-threading mode.

7) What is the significance of "Vuser-init "?

Vuser-init records the pre-operations also called the initialization operations before the actual application is run.

8) What is extended log?

An extended log will store information such as data returned by server and advanced trace, parameter substitution and much other information depending on the options you select in run-time settings.

9) Why do you create parameter?

To create a parameter you will replace the hard coded value within the script and replace it with a parameter.  This allows a single Vuser to be run many times, and to use different data on each run. It helps in stimulating more real life server demand as it prevents server from caching results.

10) How will you divide your script into multiple Actions? Why?

I will divide the script into Actions based on the functionality. For example, Once Action for Logining into Application, another Action for booking and so on.
Actions increase code reusability, reduce maintenance time and hence, decrease costs.

11) How can you set the number of Vusers in Loadrunner ?

You can set the number of Vusers in the controller section while creating your scenarios. Many other advanced options like ramp-up, ramp-down of Vusers are also available in the Controller section.

12) What are monitors?
Monitors are used to "monitor" performance bottlenecks. They are used in Controller section of Load Runner

13) What are the types of check points is available in LoadRunner?
Loadrunner provides two types of check points
a) Image Checkpoints : This checkpoint will verify the presence of an image on a page during run-time
b) Text Checkpoint : This checkpoint will verify the presence of a text-string on a page during run-time
Both of the above checkpoints can be added in Vugen.

14) What kind of problem we can face regarding hardware, software,  network and memory bottleneck during the performance test?

The possible issues amongst others could be -
1. Lack of Hardware
2. Memory Leakage
3. Network related issues.
4. Applicaton/Software error

15) What would be your recommendation to improve performance measure?

Fine Tuning of network, database, and app and web server is recommended.
At the network level try to optimize the latency and bandwidth.
At database level, verify all indexes and sequences by running profilers. You may also optimize your database queries.
At the App server level, run profilers for finding the memory leaks in the application
At the web server level you can use monitors and optimize the throughput and other related metrics of the server.

16) What is Rendezvous point?

Rendezvous point is Synchronization/Wait point . Rendezvous points instruct Vusers to wait during test execution for multiple Vusers to arrive at a certain point, in order that they may simultaneously perform a task.
The significance of this is to emulate some heavy load only to particular portion of the scenario and test the behavior of the application.

17) What is Correlation?
Correlation is used to obtain data which is unique for each run of your test script (ex: session ids). While recording, these dynamic values are hard-coded in your script causing the script to fail during playback. Correlation is a technique where dynamic values are not hard-coded in your script but are extracted at run-time to avoid failure.

18) What is Manual Correlation?
Its correlation technique which uses function Web_reg_save_param() to identify dynamic values in your script.  It is important that your playback your script to verify that correlation is done successfully.



19) How do you identify the performance bottlenecks?

Performance Bottlenecks can be detected by using monitors.
These monitors might be application server monitors, web server monitors, database server monitors and network monitors.
They help in finding out the troubled area in our scenario which causes increased response time.
The measurements made are usually performance response time, throughput, hits/sec, network delay graphs, etc

20) Which function is used to end a nested transaction ?
The function is -  lr_end_sub_transaction
Learn More about Transactions in this video.

21) What is the difference between transaction and transaction instance in loadrunner ?
A transaction is used to measure time between executions of certain statements
A transaction instance is used for performance analysis

22) While the script is running we find some values that may be need to be correlated? Is it possible to do manual correlation for those values?
NO. Its not possible to do correlation when script is running but you can make changes once script has stopped.

23) What is Elapsed Time in Load Runner?
Elapsed time designates how much time has passed since the launch of the current event and is measured differently for different screens as given below -
In Scenario Status Window - Elapsed time is measured from the moment you hit "Start Scenario" or " Initialize/Run Vuser?" button.
In "Vuser" window elapsed time is measured form the moment Vuser enters "running" state.

24) Does caching have a negative effect on your load testing results ?
Yes. Caching has a negative effect. Cache is temporary memory which stores your browsing history. When you visit a page for the SECOND time , the time required to load the page will be less than that required to load the page for your first visit since much of the information required to load the page is grabbed from the cache instead of the server. This will effect the response times in your test. Hence, it is recommended to turn-off caching.

25) What is the difference between Overlay graph and Correlate graph?
Overlay Graph: It will overlay the content of two graphs that shares a common x-axis
Correlate Graph: It will Plot the Y-axis of two graphs against each other.
Learn more about Analyzer

26) What is the difference between lr_error_message and lr_debug _message?
lr_error_message - Sends a error message to the LoadRunner Controller's Output window
lr_debug _message - Sends a debug message to the LoadRunner Controller's Output window


27) What is the difference between load , performance  testing ?
The objective of performance testing is to check whether an application loads/updates  within stipulate time limit (say 2 seconds). It uses metrics like response time , Requests per second. It is carried out under production - like load conditions.
The objective of load testing is to check scalability of the system. For example, finding out the maximum number of users supported by the system within certain specifications.

28) You have created several  Auto Correlation rules. A new tester on your team is preparing to record a group of scripts on the same application on his workstation. What can you do to provide the tester with the correlation rules?
I would  export the Auto Correlation rules to a .cor file, and then have the new team member import the .cor file into his Auto Correlation rules

29) You want to emulate a call center for an airline. All representatives login in the morning, perform their business processes, and log out at night. In one day, a representative will Create 40 flight reservations, Modify 10 flight reservations, and Search for 20 flight reservations. A representative cannot perform a Modify without performing a Search first. How would you design the run logic ?
Create - 67% Search - 16% Block0 - 17% Search Modify

30) Where should you add a web_reg_save_param function to a script?
Before the step that retrieves the dynamic value

31) You want to have each step in your script measured as a transaction in the Controller and not shown in the Replay Log in VuGen. How can you accomplish this?
This can be done by enabling  the automatic transaction in the Run-time settings

32) Which web protocol recording level generates the web_submit_form function?
The URL protocol generates this function.