Most important LoadRunner interview questions and answers
Q:What are the different components of LoadRunner?
A:The major components of LoadRunner are as follows:
VUGen- Records Vuser scripts that emulate the actions of real users.
Controller – Administrative center for creating, maintaining and executing load test scenarios. Assigns scenarios to Vusers and load generators, starts and stops loading tests.
Load Generator – An agent through which we can generate load
Analysis – Provides graphs and reports that summarize the system performance.
Q:How do you perform functional testing under load? - Functionality under load can be tested by running several Vusers concurrently?
A: By increasing the amount of Vusers, we can determine how much load the server can sustain.
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.
Q: What is the significance of Vuser-init ?
A: Vuser-init records the pre-operations also called the initialization operations before the actual application is run.
Q: What is extended log?
A: 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.
Q: What is the Rendezvous point?
A: Rendezvous point helps in emulating heavy user load (request) on the server. This instructs Vusers to act simultaneously. When the vuser reaches the Rendezvous point, it waits for all Vusers with Rendezvous point. Once designated numbers of Vusers reaches it, the Vusers are released. Function lr_rendezvous is used to create the Rendezvous point. This can be inserted by:
Rendezvous button on the floating Recording toolbar while recording.
After recording Rendezvous point is inserted through Insert> Rendezvous.
Q: What are the different sections of the script? In what sequence does these section runs?
A: LoadRunner script has three sections vuser_init, Action and vuser_end.
vuser_init has requests/actions to login to the application/server.
Action has actual code to test the functionality of the application. This can be played many times in iterations.
Vuser_end has requests/actions to login out the application/server.
The sequence in which these sections get executed is vuser_init is at the very beginning and vuser_end at the very end. Action is executed in between the two.
Q: How do you identify which protocol to use for any application?
A: Previously Performance tester had to depend much on the development team to know about the protocol that application is using to interact with the server. Sometimes, it also used to be speculative.
However, LoadRunner provides a great help in form of Protocol Advisor from version 9.5 onwards. Protocol advisor detects the protocols that application uses and suggest us the possible protocols in which script can be created to simulate the real user.
Q: What is correlation? Explain the difference between automatic correlation and manual correlation?
A: Correlation is used to handle the dynamic values in a script. The dynamic value could change for each user action (value changes when action is replayed by the same user) or for different users (value changes when action is replayed with different user). In both the cases correlation takes care of these values and prevents them from failing during execution.
Manual Correlation involves identifying the dynamic value, finding the first occurrence of dynamic value, identifying the unique boundaries of capturing the dynamic value, writing correlation function web_reg_save_param before the request having the first occurrence of dynamic value in its response.
Automated correlation works on predefined correlation rules. The script is played back and scanned for auto correlation on failing. Vugen identifies the place wherever the correlation rules work and correlate the value on approval.
Q:What would be your recommendation to improve performance measure?
A: 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.
Q: How to identify what to correlate and what to parameterize?
A: Any value in the script that changes on each iteration or with different user while replaying needs correlation. Any user input while recording should be parametrized.
Q:What is parameterization and why is it necessary in the script?
A: Replacing hard coded values within the script with a parameter is called Parameterization. This helps a single virtual user (vuser) to use different data on each run. This simulates real life usage of application as it avoids server from caching results.
Refer this tutorial for more details.
Q: How you identify Performance test use cases of any application?
A: Test cases/Uses cases for Performance test are almost same as any manual/functional testing test cases where each and every step performed by the user is written. The only difference is that all manual test cases can’t be Performance testing use cases as there are few criteria for the selection as:
I. The user activity should be related to critical and most important functionality of the application.
II. The user activity should be having good amount of database activity such as search, delete or insert.
III. The user activity should be having good user volume. The functionality having less user activity is generally omitted from Performance testing point of view. e.g admin account activity.
Any of the manual test cases that fulfill the above criteria can be used as performance testing use case/test case. If manual test cases are not written step by step , Performance team should create dedicated documents for them.
Q:What is Elapsed Time in Load Runner?
A: 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.
Q: While scripting you created correlation rules for automatic correlation. If you want to share the correlation rules with your team member working on the same application so that he/she can use the same on his workstation, how will you do that?
A: Correlation rules can be exported through .cor file and the same file can be imported through VuGen.
Q: Which function is used to end a nested transaction ?
A: The function is - lr_end_sub_transaction
Q: What are different types of vuser logs which can be used while scripting and execution? What is the difference between these logs? When you disable logging?
A: There are two types of Vuser logs available –Standard log and Extended log. Logs are key for debugging the script. Once a script is up and running, logging is enabled for errors only. Standard log creates a log of functions and messages sent to the server during script execution whereas Extended log contains additional of warnings and other messages. Logging is used during debugging and disabled while execution. Logging can be enabled for errors in that case.
Q: What is Modular approach of scripting?
A: In Modular approach, a function is created for each request (e.g. login, logout, save, delete, etc.) and these functions are called wherever required. This approach gives more freedom to reuse the request and saves time. With this approach it is recommended to work with web custom request.
Q: What are the different types goals in Goal-Oriented Scenario?
A: LoadRunner has five different types of goals in Goal-Oriented Scenario. These are:
The number of concurrent Vusers
The number of hits per second
The number of transactions per second
The number of pages per minute
The transaction response time
Q: How is each step validated in the script?
A: Each step in the script is validated with the content on the returned page. A content check verifies whether specific content is present on the web page or not. There are two types of content check which can be used in LoadRunner:
Text Check- This checks for a text/string on the web page
Image Check- This checks for an image on a web page.
Q: How is VuGen script modified after recording?
A: Once the script is recorded, it can be modified with the following process:
Transaction
Parameterization
Correlation
Variable declarations
Rendezvous Point
Validations/Check point
Q: What is Ramp up and Ramp Down?
A: Ramp up- Rate at which virtual users add to the load test
Ramp Down- Rate at which virtual users exit from the load test.
Q: What is the advantage of running the Vuser as thread?
A: Running vusers as thread helps generate more virtual users from any machine due to small memory print of the vuser running as thread.
Q: What is wasted time in VuGen Replay log?
A Waste time is never performed by any browser user and just the time spent on the activities which support the test analysis. These activities are related to logging, keeping record and custom analysis.
Q: How do you enable text and image checks in VuGen?
A: This can be done by using functions web_find (for text check) and web_image_check (for image check) and enabling image and text check from run time setting.
Run Time Setting–>Preference–>Enable the Image and text check box.
Q: What is the difference between web_reg_find and web_find?
A: web_reg_find function is processed before the request sent and is placed before the request in the VuGen script whereas web_find function is processed after the response of the request come and is placed after the request in VuGen script.
Q: What is the difference between lr_error_message and lr_debug _message?
A: 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
Q: What are the challenges that you will face to script the step “Select All” and then “Delete” for any mail account?
A: In this case the post for “Select All” and “Delete” will change every time depending on the number mails available. For this the recorded request for the two should be replaced with custom request and string building is required to build the post. (Note- This question needs practical knowledge. So please this practically and formulate your answer).
Q: What is difference between pacing and think time?
A: Pacing is wait time between the action iterations whereas think time is wait time between the transactions.
Q:What are the number of graphs you can monitor using Controller at a time? What is the max of them?
Ans => One, two, four and eight graphs can be seen at a time. The maximum number of graphs can be monitored in at a time is 8.
Q:Does caching have a negative effect on your load testing results ?
A: 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.
Q: During the load test what is the optimum setting for Logs?
A: For the load test log level is set to minimal. This can be achieved with setting the log level to the standard log and selecting the radio button “Send message only when an error occurs”.
Q: How will you handle the situation in scripting where for your mailbox you have to select any one mail randomly to read?
A: For this we will record the script for reading the first mail. Try to find what is being posted in the request to read the first mail such as mail ids or row no. From the post where a list of mails is reflecting, we will try to capture all the email ids row no with correlation function and keeping Ordinal as All i.e. ORD=All . Replace the requested email id in the read post with any of the randomly selected email id from the list of captured email ids.
Q: What is the Think Time? What is the Threshold level for think time and how can be this changed?
A: Think time is the wait time inserted intentionally between the actions in the script to emulate real user`s wait time while performing activity on the application. The Threshold level for Think time in the level below which recorded think time will be ignored. This can be changed from Recorded options->Script->Generate think time greater than threshold.
Q: How is Automated Correlation configured?
A: Any setting related to Automated Correlation can be done by General Options->Correlation. Correlation rules are set from Recording options->Correlations.
Q: How you decide the number of load generator machine required to run a test?
A: Number of load generator required totally depends on the protocol used to create the script and configuration of the load generator machine. Each protocol has different memory print and this decides how many virtual users can be generated from the give configuration of the machine (load generator).
Q: What are the capabilities exactly you look for while selecting the performance testing tool?
A: Performance testing tool should capable of:-
Testing an application built using multiple technologies and hardware platforms.
Determine the suitability of a server for testing the application
Testing an application with load of tens, thousand and even thousands virtual users.
Q: How concurrent users are differing from simultaneous users?
A: All simultaneous users are concurrent users but vice versa is not true.
All the vusers in the running scenario are Concurrent users as they are using the same application at the same time but may be or may not be doing the same tasks. Simultaneous users perform the same task at the same time. Concurrent users are made Simultaneous users through rendezvous points. Rendezvous points instruct the system to wait till a certain number of vusers arrive so that they all can do a particular task simultaneously.
Q:Which web protocol recording level generates the web_submit_form function?
A: This can be done in ways:
a) Record the two scripts with similar steps and compare them using WDiff utility. (See tutorial Correlation).
b) Replay the recorded script and scan for correlation. This gives a list of values that can be correlated.
Session Id is a good example of this. When two scripts are recorded and compared using WDiff utility. Session ids in the two scripts should be different and WDiff highlight these values.
Q: How does caching affect performance testing results?
A: When data is cached in server`s memory, the server need not fetch the result and no server activity triggered. Test result does not reflect the same performance of real user using the application with different data.
Q: How will you stop the execution of script on error?
A: This can be achieved through lr_abort function. The function instructs the vuser to stop executing Action section and end the execution by executing the vuser_end section. This function is helpful in handling a specific error. This can also be used to handle a situation rather than error where execution is not possible. The function assigned “Stopped” status to the vuser which stopped due to lr_abort function. In Run-Time setting, “Continue on error” should be unchecked.
Q:What are the different components of LoadRunner?
A:The major components of LoadRunner are as follows:
VUGen- Records Vuser scripts that emulate the actions of real users.
Controller – Administrative center for creating, maintaining and executing load test scenarios. Assigns scenarios to Vusers and load generators, starts and stops loading tests.
Load Generator – An agent through which we can generate load
Analysis – Provides graphs and reports that summarize the system performance.
Q:How do you perform functional testing under load? - Functionality under load can be tested by running several Vusers concurrently?
A: By increasing the amount of Vusers, we can determine how much load the server can sustain.
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.
Q: What is the significance of Vuser-init ?
A: Vuser-init records the pre-operations also called the initialization operations before the actual application is run.
Q: What is extended log?
A: 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.
Q: What is the Rendezvous point?
A: Rendezvous point helps in emulating heavy user load (request) on the server. This instructs Vusers to act simultaneously. When the vuser reaches the Rendezvous point, it waits for all Vusers with Rendezvous point. Once designated numbers of Vusers reaches it, the Vusers are released. Function lr_rendezvous is used to create the Rendezvous point. This can be inserted by:
Rendezvous button on the floating Recording toolbar while recording.
After recording Rendezvous point is inserted through Insert> Rendezvous.
Q: What are the different sections of the script? In what sequence does these section runs?
A: LoadRunner script has three sections vuser_init, Action and vuser_end.
vuser_init has requests/actions to login to the application/server.
Action has actual code to test the functionality of the application. This can be played many times in iterations.
Vuser_end has requests/actions to login out the application/server.
The sequence in which these sections get executed is vuser_init is at the very beginning and vuser_end at the very end. Action is executed in between the two.
Q: How do you identify which protocol to use for any application?
A: Previously Performance tester had to depend much on the development team to know about the protocol that application is using to interact with the server. Sometimes, it also used to be speculative.
However, LoadRunner provides a great help in form of Protocol Advisor from version 9.5 onwards. Protocol advisor detects the protocols that application uses and suggest us the possible protocols in which script can be created to simulate the real user.
Q: What is correlation? Explain the difference between automatic correlation and manual correlation?
A: Correlation is used to handle the dynamic values in a script. The dynamic value could change for each user action (value changes when action is replayed by the same user) or for different users (value changes when action is replayed with different user). In both the cases correlation takes care of these values and prevents them from failing during execution.
Manual Correlation involves identifying the dynamic value, finding the first occurrence of dynamic value, identifying the unique boundaries of capturing the dynamic value, writing correlation function web_reg_save_param before the request having the first occurrence of dynamic value in its response.
Automated correlation works on predefined correlation rules. The script is played back and scanned for auto correlation on failing. Vugen identifies the place wherever the correlation rules work and correlate the value on approval.
Q:What would be your recommendation to improve performance measure?
A: 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.
Q: How to identify what to correlate and what to parameterize?
A: Any value in the script that changes on each iteration or with different user while replaying needs correlation. Any user input while recording should be parametrized.
Q:What is parameterization and why is it necessary in the script?
A: Replacing hard coded values within the script with a parameter is called Parameterization. This helps a single virtual user (vuser) to use different data on each run. This simulates real life usage of application as it avoids server from caching results.
Refer this tutorial for more details.
Q: How you identify Performance test use cases of any application?
A: Test cases/Uses cases for Performance test are almost same as any manual/functional testing test cases where each and every step performed by the user is written. The only difference is that all manual test cases can’t be Performance testing use cases as there are few criteria for the selection as:
I. The user activity should be related to critical and most important functionality of the application.
II. The user activity should be having good amount of database activity such as search, delete or insert.
III. The user activity should be having good user volume. The functionality having less user activity is generally omitted from Performance testing point of view. e.g admin account activity.
Any of the manual test cases that fulfill the above criteria can be used as performance testing use case/test case. If manual test cases are not written step by step , Performance team should create dedicated documents for them.
Q:What is Elapsed Time in Load Runner?
A: 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.
Q: While scripting you created correlation rules for automatic correlation. If you want to share the correlation rules with your team member working on the same application so that he/she can use the same on his workstation, how will you do that?
A: Correlation rules can be exported through .cor file and the same file can be imported through VuGen.
Q: Which function is used to end a nested transaction ?
A: The function is - lr_end_sub_transaction
Q: What are different types of vuser logs which can be used while scripting and execution? What is the difference between these logs? When you disable logging?
A: There are two types of Vuser logs available –Standard log and Extended log. Logs are key for debugging the script. Once a script is up and running, logging is enabled for errors only. Standard log creates a log of functions and messages sent to the server during script execution whereas Extended log contains additional of warnings and other messages. Logging is used during debugging and disabled while execution. Logging can be enabled for errors in that case.
Q: What is Modular approach of scripting?
A: In Modular approach, a function is created for each request (e.g. login, logout, save, delete, etc.) and these functions are called wherever required. This approach gives more freedom to reuse the request and saves time. With this approach it is recommended to work with web custom request.
Q: What are the different types goals in Goal-Oriented Scenario?
A: LoadRunner has five different types of goals in Goal-Oriented Scenario. These are:
The number of concurrent Vusers
The number of hits per second
The number of transactions per second
The number of pages per minute
The transaction response time
Q: How is each step validated in the script?
A: Each step in the script is validated with the content on the returned page. A content check verifies whether specific content is present on the web page or not. There are two types of content check which can be used in LoadRunner:
Text Check- This checks for a text/string on the web page
Image Check- This checks for an image on a web page.
Q: How is VuGen script modified after recording?
A: Once the script is recorded, it can be modified with the following process:
Transaction
Parameterization
Correlation
Variable declarations
Rendezvous Point
Validations/Check point
Q: What is Ramp up and Ramp Down?
A: Ramp up- Rate at which virtual users add to the load test
Ramp Down- Rate at which virtual users exit from the load test.
Q: What is the advantage of running the Vuser as thread?
A: Running vusers as thread helps generate more virtual users from any machine due to small memory print of the vuser running as thread.
Q: What is wasted time in VuGen Replay log?
A Waste time is never performed by any browser user and just the time spent on the activities which support the test analysis. These activities are related to logging, keeping record and custom analysis.
Q: How do you enable text and image checks in VuGen?
A: This can be done by using functions web_find (for text check) and web_image_check (for image check) and enabling image and text check from run time setting.
Run Time Setting–>Preference–>Enable the Image and text check box.
Q: What is the difference between web_reg_find and web_find?
A: web_reg_find function is processed before the request sent and is placed before the request in the VuGen script whereas web_find function is processed after the response of the request come and is placed after the request in VuGen script.
Q: What is the difference between lr_error_message and lr_debug _message?
A: 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
Q: What are the challenges that you will face to script the step “Select All” and then “Delete” for any mail account?
A: In this case the post for “Select All” and “Delete” will change every time depending on the number mails available. For this the recorded request for the two should be replaced with custom request and string building is required to build the post. (Note- This question needs practical knowledge. So please this practically and formulate your answer).
Q: What is difference between pacing and think time?
A: Pacing is wait time between the action iterations whereas think time is wait time between the transactions.
Q:What are the number of graphs you can monitor using Controller at a time? What is the max of them?
Ans => One, two, four and eight graphs can be seen at a time. The maximum number of graphs can be monitored in at a time is 8.
Q:Does caching have a negative effect on your load testing results ?
A: 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.
Q: During the load test what is the optimum setting for Logs?
A: For the load test log level is set to minimal. This can be achieved with setting the log level to the standard log and selecting the radio button “Send message only when an error occurs”.
Q: How will you handle the situation in scripting where for your mailbox you have to select any one mail randomly to read?
A: For this we will record the script for reading the first mail. Try to find what is being posted in the request to read the first mail such as mail ids or row no. From the post where a list of mails is reflecting, we will try to capture all the email ids row no with correlation function and keeping Ordinal as All i.e. ORD=All . Replace the requested email id in the read post with any of the randomly selected email id from the list of captured email ids.
Q: What is the Think Time? What is the Threshold level for think time and how can be this changed?
A: Think time is the wait time inserted intentionally between the actions in the script to emulate real user`s wait time while performing activity on the application. The Threshold level for Think time in the level below which recorded think time will be ignored. This can be changed from Recorded options->Script->Generate think time greater than threshold.
Q: How is Automated Correlation configured?
A: Any setting related to Automated Correlation can be done by General Options->Correlation. Correlation rules are set from Recording options->Correlations.
Q: How you decide the number of load generator machine required to run a test?
A: Number of load generator required totally depends on the protocol used to create the script and configuration of the load generator machine. Each protocol has different memory print and this decides how many virtual users can be generated from the give configuration of the machine (load generator).
Q: What are the capabilities exactly you look for while selecting the performance testing tool?
A: Performance testing tool should capable of:-
Testing an application built using multiple technologies and hardware platforms.
Determine the suitability of a server for testing the application
Testing an application with load of tens, thousand and even thousands virtual users.
Q: How concurrent users are differing from simultaneous users?
A: All simultaneous users are concurrent users but vice versa is not true.
All the vusers in the running scenario are Concurrent users as they are using the same application at the same time but may be or may not be doing the same tasks. Simultaneous users perform the same task at the same time. Concurrent users are made Simultaneous users through rendezvous points. Rendezvous points instruct the system to wait till a certain number of vusers arrive so that they all can do a particular task simultaneously.
Q:Which web protocol recording level generates the web_submit_form function?
The URL protocol generates this function.
Q: How do you identify which values need to be correlated in the script? Give an example?A: This can be done in ways:
a) Record the two scripts with similar steps and compare them using WDiff utility. (See tutorial Correlation).
b) Replay the recorded script and scan for correlation. This gives a list of values that can be correlated.
Session Id is a good example of this. When two scripts are recorded and compared using WDiff utility. Session ids in the two scripts should be different and WDiff highlight these values.
Q: How does caching affect performance testing results?
A: When data is cached in server`s memory, the server need not fetch the result and no server activity triggered. Test result does not reflect the same performance of real user using the application with different data.
Q: How will you stop the execution of script on error?
A: This can be achieved through lr_abort function. The function instructs the vuser to stop executing Action section and end the execution by executing the vuser_end section. This function is helpful in handling a specific error. This can also be used to handle a situation rather than error where execution is not possible. The function assigned “Stopped” status to the vuser which stopped due to lr_abort function. In Run-Time setting, “Continue on error” should be unchecked.
Your information about loadrunner tool is really interesting. Also I want to know the latest new techniques which are implemented in loadrunner. Can you update it in your website?
ReplyDeleteLoadRunner training in Chennai
It's been a great opportunity for FITA which is a no.1 LoadRunner training center in Chennai to provide me some details on new techniques implemented in loadrunner so that we can publish and get others to know and take advantage of it.
Delete