Friday, December 21, 2012

Performance Testing INTERVIEW QUESTIONS

Performance Testing INTERVIEW QUESTIONS

1
What is performance testing?
2
What are the leading performance tools in the market?
3
What are phases involved in performance testing?
4
What is the objective of performance testing?
5
Give me some examples which initiate necessity of performance testing?
6
What are different metrics should be monitored?
7
What version of loadrunner you are using?
8
What are the protocols you are familiar with?
9
What is the difference between URL and HTML mode of recording?
10
What is correlation?
11
What is parameterisation?
12
What are methods you use for correlation?
13
What is the file name of Vugen?
14
Can you syntax for think time?
15
What is the testing environment you worked on?
16
What is the extension of a Vuser Script in loadrunner?
17
Can you write statements for start and end transactions?
18
What is port mapping and how it is useful?
19
what function you use for correlation?
20
How do you perform auto correlation?
21
Can you tell me different types of parameters you worked on?
22
What is the application architecture you worked on?
23
Can you tell me the reason why you correlate?
24
Can you distinguish between Sequential, Random and unique?
25
What are your roles and responsibilities?
26
What is break point and how you use it?
27
What is scan script for correlations and how you work on it?
28
How to do manual correlation?
29
What is protocol advisor and how it is useful?
30
What are different components of loadrunner?
31
What is the difference between think time and pacing?
32
What is action and provide me syntax?
33
What are elements you have in your test plan?
34
What is effort estimation and have you performed it?
35
What is the function you use for outputting a message?
36
What is the purpose of Run step by step?
37
What is the purpose of Regenerate script?
38
Rate for scripting/execution/monitoring
39
What are the different logs available?
40
What is latency?
41
What are different views?
42
How do you handle text checks
43
What does a tree view contains?
44
What are the different windows in output window?
45
What is load balancing?
46
If my replay browser is not displaying how can I make it available to display?
47
What is granularity?
48
How can I increase font size and style of script recorded?
49
What is the difference between POST and GET?
50
Explain me basic functions for string conversions?
51
Give me some functions related to Tool specific?
52
Give me some functions related to web protocol specific?
53
Have you written any custom functions? If any explain those.
54
How do you work on blocks?
55
What is IP Spoofing?
56
What are the files generated after recording?
57
What is the max load of users you tested?
58
What are the files generated after replay?
59
What is the component used for executing tests?
60
How do you identify memory leaks?
61
What are different types of scenarios you configure?
62
What is load generator?
63
What is goal oriented scenario?
64
What are the types of performance tests you encountered with?
65
What is the difference between Run vuser as a thread and Run vuser as a process?
66
If I want run a test with different groups how you can achieve?
67
How do you configure monitors?
68
What is load testing?
69
What is the difference between absolute time and relative time?
70
If you got your response time of transactions greater than SLAs how you proceed?
71
How can I get HMTL report?
72
What is stress testing?
73
What are the different ways of merging the graphs?
74
Can you explain me how loadrunner works?
75
What is Web break down analysis?
76
What are different HTTP Status codes?
77
What is ramp up, ramp down and Steady period?
78
What are the Entry and Exit criteria for performance testing?
79
How can I set a content check rule?
80
What is pacing?
81
What log you use for performing Manual correlation?
82
What is 90th percentile and what is its significance?
83
What is rendezvous point?
84
What are the diagnostic tools you are familiar with?
85
What is throughput?
86
What are the monitoring tools you are familiar with?
87
What is relationship between request/sec and throughput?
88
How do you trace performance bottlenecks?
89
How do you manage defect tracking?
90
Do you have any idea on perfmon?
91
What is spike testing?
92
What are the bottlenecks you identified in your project?
93
Give me some examples of Web and application servers?
94
What is Capacity planning?
95
How to increase the size of data coming for a dynamic page?
96
What is application Benchmarking?
97
What is Volume testing?
98
What is work load profiling and how do you manage it?
99
Why Application architecture is significant for performance testing?
100
If I want to know breakpoint of application which test I should go for?
101
Can you tell me advantages and disadvantages of loadrunner?
102
Give me the some examples of open source performance testing tools?
103
Give me some examples of Database servers?
104
Can you explain the capabilities of loadrunner for performance testing?
105
Which version of loadrunner you are using?
106
If the web application has Ajax scripting in it, which protocol do you suggest?
107
Where can I know the tool licensing information?
108
What are the extensions of results file, scenario file and analysis files?
109
If you don’t know which protocol to go, how you proceed?

D. Bottleneck Identification:
You need to identify bottlenecks caused by poor design or implementation early in the application life cycle. Bottlenecks that cannot be optimized or tuned need to be identified as constraints during the design phase of the life cycle, so that they can be factored in the design to minimize the impact on performance.

What Are Bottlenecks?

A bottleneck is the device or resource that constrains throughput. Most of the time, performance bottlenecks in your application relate to resource issues that may include server resources such as CPU, memory, disk I/O, and network I/O or other external resources such as available database connections or network bandwidth.

Bottlenecks vary from layer to layer, based on the server role:

Web/Application server. Some common causes of bottlenecks include inefficient session and state management, thread contention, long-running calls to a Web service or a database, and chatty interfaces.
Database server. Some common causes for bottlenecks include poor logical database design such as bad table design, improper normalization of tables, inefficient indexes on tables, and badly partitioned data across tables. Other causes include inefficient queries, inappropriate isolation levels used by transactions in queries, and inefficient stored procedures.

How to Identify Bottlenecks

The first step in identifying bottlenecks is to know the different tests and measurements that you must run to simulate varying user loads and access patterns for the application. The following measurements help you to expose bottlenecks and isolate areas that require tuning:

Measure response time, throughput, and resource utilization across user loads.
Measure metrics that help you capture a more granular view of your application.

Measure Response Time, Throughput, and Resource Utilization across User Loads .These metrics help you identify whether you are moving toward or away from your performance goals with each iteration through the tuning process. These also give you a rough idea as to which resource is the first bottleneck for the application, and on which server the bottleneck occurs.

Analyzing Response Time across User Loads

When you measure response times with varying number of users, watch for a sharp rise in response time. This rise is the point of poor efficiency, and performance only degrades from this point onward

Measuring Throughput across User Loads

When you measure throughput across user loads, watch for the peak levels of throughput. At the point where throughput starts to fall, the bottleneck has been hit. Performance continues to degrade from this point onward.

Analyzing Resource Utilization across User Loads

Analyze resource utilization levels across linearly increasing user loads. See whether the resource utilization levels increase at a sharper rate as new users are added and more transactions are performed.

Measure Metrics that Help You Capture a More Granular View of Your Application

Using input from the coarse-grained monitoring of your performance objectives mentioned earlier, you can add additional counters during subsequent iterations of the tuning process. Continuing with the example introduced earlier, if you are performing a remote database call, you can measure the time taken by the database call to complete.

Monitor the metrics related to indexes, locks, number of tables scanned, resource utilization levels, and so forth on the database to identify the reason why the query is taking a long time to execute.

E. Tips and Tricks:

1. Consult your developer if you need help to identify the protocol used by the application.

2. Some other applications, such as antivirus, VPN’s, firewall, and so on may interfere with the recorder. In case of problems, always look to see what is installed on the machine and try to disable software that looks like it is interfering with socket level data.

3. Delete (or comment out) all the “web_add_cookie” statements in the script. Some applications use explicit cookies to keep track of users. Therefore cookies statements have to be commented out otherwise old cookies are sent to the server again and it will not work.

4. Delete all the web_url (…..) statements in start of the script, which are downloading the windows updates or something like that.

5. If you are using the Multiple Protocol recorder, you can use this option of Tools “Regenerate Vuser” to regenerate the script, if the earlier modified script is not working fine.

6. Sometimes, you will encounter cases where the Web recorder (Single and Multi) records some initial login steps but nothing else after that, even though it is still using the HTTP protocol. This can happen if the application is dependent on the cache in some way. By default, LoadRunner recording will disable the cache.

    To set LoadRunner not to interfere with the cache setting, change the following in registry:
a. Go to Start Run, and enter regedit to open the registry editor.
b. Navigate to HKEY_CURRENT_USER\Software\Mercury Interactive\ LoadRunner\ Protocols\
HTTP\Analyzer
c. Set AddNoCacheHeaderToHtml=0.

7. The following are limitations of the Single Protocol Web recorder. If any of the following is causing a problem, you are recommended to switch to use the Multiple Protocol web recorder to record.

Note: All the issues below can be resolved with Multiple Protocol Web recorder.

a. While recording, the Single Protocol Web recorder will redirect the client requests to a local proxy, at localhost: 7777. For such, make sure that you have the permission to change the LAN settings of the machine.
 To verify:
i. Open Internet Explorer and go to Tools Internet Options Connections LAN Settings.
ii. Make sure that you can modify the entries here.
b. The Single Protocol Web recorder obtains the proxy setting from the HKEY_CURRENT_USER registry hive. Verify the following to make sure that it is set up correctly:
i. Go to Start Run, and enter regedit to open the registry editor.
ii. Navigate to HKLM\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\InternetSettings.
iii. Verify the non-default key, ProxySettingsPerUser. If the
 iv. ProxySettingsPerUser value exists and has a value data of 0 (zero), set it to
1. It is okay if you do not have that registry key. As long as ProxySettingsPerUser is not set to one, proxy settings will be obtained from the HKEY_CURRENT_USER registry hive.

1.       To make permanent change in default settings in VuGenerator:

To keep from having to change the run-time settings every time that you create a new script, here is an easy way to save your own default settings.
1. Create a new script
2. Make the setting changes that you need to make.
3. Save the script
4. Now, copy the default.cfg file out of the directory of the script file that you just created to the Program Files\Mercury Interactive\LoadRunner\template\{dir}.
The {dir} is whatever directory that you are creating your scripts from. For example, a Web/HTML vuser directory is the \qtweb\ directory. You can also change the init.c, end.c, or action.c if you seem to always have to make changes to these files every time you create a new script.

1 comment:

Siva said...

The last tip that you have given is not working. I checked in the version Loadrunner 12.02.
Please help with an alternative way.