Tuesday, February 9, 2016

Advantage of running Vuser as thread during Load test in Loadrunner

VuGen provides the facility to use multi threading. This helps us to generate more virtual users on load generators. If we set Vuser to run as a process, the same driver program is loaded into memory for each Vuser on load generator, thus taking up a large amount of memory. This limits the number of Vusers that can be run on a single load generator. If we set Vuser to run as a thread, then one instance of the driver program is loaded into the memory and will be used by multiple vusers depending upon the vuser type. Each thread shares the memory of the parent driver program, thus enabling more Vusers to be run per generator.

Monday, February 8, 2016

What is correlation? Explain types of Correlation.

Correlation is a process to capture dynamic values and pass them at appropriate places in the script on run time.
E.g. There are situations when a request is based on a response of previous request received from the server, such as, a Session ID, server date/time which is fetched from server. Depending upon the configuration of the servers, these values changes (it might change every time you run the application, after certain time, hour, day etc.). Obviously, if the execution of script depends upon a value returned by server, it means we need to find a way where we can “catch” the server response and replace those values in the requests where it is required. This whole process is called Correlation in Loadrunner.
In simple words, the solution by using Correlation is:
1. Capture response of previous step
2. Use captured value of step 1 to serve as input to all subsequent steps

Loadrunner provides 2 ways for doing correlation.

1.       Automatic Correlation
Loadrunner has provided a mechanism by which we it will automatically capture the dynamic values.
Below are the steps for Automatic correlation

I.            Open Recording options by clicking Record à Recording options (Ctrl + F7)















            
            II.      Below window will open

        III.            Check following check boxes
a.       Rules Scan
b.      Automatically correlate values found – If you check this option then vugen will not ask for correlation, it will automatically correlate the dynamic values for the defined rules.
c.       Record Scan
d.      Replay Scan

                IV.            Click on Rules (Correlation à Rules)
















In this window you can choose the application you are recording. Loadrunner has provided some predefined rules for various applications.
You can create new rules for your application if you know left and right boundaries. We will take this topic in my next article.

                  V.           Click Ok. If you have already recorded the application then click on regenerate the script. It will replace all the dynamic values which are identified by defined rules.
Note. We can do the same process of automatic correlation before recording the script, then we don’t need to regenerate the script.


2.       Manual Correlation
In this we directly identify the dynamic value and write code in the script

Below are the steps for doing manual correlation:

                    I.            Find the dynamic value which is required to correlate.

                  II.            Find unique left and right boundaries of where dynamic value is coming from the server.

                III.            If unique left and right boundaries can’t be found then find for which occurrence of left and right boundary this dynamic value is coming.

                IV.            Add a web_reg_save_param function to the script, above the request whose response contains that dynamic value.

                  V.            Add a parameter name, left boundary, right boundary, and occurrence to the function


                VI.            Replace the dynamic value with this parameter in the script every time it occurs.

Types of Goal Oriented Scenario in Loadrunner

Loadrunner offer five different types of goals in Goal-Oriented Scenario. These are:


  1. The number of concurrent Vusers
  2. The number of hits per second
  3. The number of transactions per second
  4. The number of pages per minute
  5. The transaction response time

Components of HP Loadrunner?

There are 4 components of LoadRunner:

1. VUGen (Virtual User Generator)- This component helps us to automate the business scenarios which can emulate virtual uers during the performance test.

2. Controller – Administrative center for creating, maintaining and executing load test scenarios. Assigns scenarios to Vusers and load generators, starts and stops loading tests.

3. Load Generator/Agent – An agent through which we can generate load

4. Analysis – Provides graphs and reports that summarize the system performance.

5.Agent process - It manages connection between Controller and Load Generator instances.

Out of these 4 components only Controller requires license rest all are free.

Friday, February 5, 2016

Phases of performance testing life cycle?

Planning: 
This is the first phase of life cycle. During this phase team will gather performance testing requirements with the help of Business Analysts and Application Architects. After Requirement gathering team will prepare performance test plan and get is approved with BA's and architects of the application. Output of this phase is performance test plan which will consist of all the details of business process which we need to include in performance test and what all performance test we need to execute.

Design:
During this phase performance testing team will create performance test scripts using performance testing tools i.e. HP Loadrunner, Jmeter etc of the business scenarios finalized during planning phase.Output of this phase is the automated performance test scripts of the business process.

Execution: 
During this phase we conduct various types of tests like Average load test,  Peak load test, Stress test, Soak test, Endurance test. Output of this phase is the performance test results of all the performance test conducted in this phase.

Analyse Results:
During this phase we capture results of all the performance test executions and create graphs based on those results. After studying those graphs we try to identify if there are any issues related to transaction response time, server utilization etc. Output of this phase is transaction response time details and various utilization graphs.

Tuning:
During this phase we try to identify root cause of performance bottlenecks and resolve them. We need to use applicaiton monitoring tools for understaing how application servers perform under load. Output of this phase is improved performance of the application

How to identify the performance bottlenecks situations?

We need to configure performance monitoring tools on all the servers under test(Application, Web, Database servers). These tools will help us to see how servers are behaving against load and stress conditions. These monitors can help to us to determine the condition which causes increased response time of the application. The measurements of performance of the application are based on response time, throughput, hits per sec, network delay graphs, etc

Mostly used tool for conducting performance test is HP Loadrunner. This tool can collate with various monitoring tools which helps to relate the performance test results with the monitoring tool graphs and this in turn help us to identify performance bottlenecks.

Difference between Performance Testing and Performance Engineering

Performance testing means testing the performance of the application with a pre-defined user load. This involves requirement gathering, scripting, execution, result sharing and report generation.

Performance Engineering is the next step once performance testing is complete. During this we analyse performance test results and try to correlate them with different server utilization graphs in order to find performance bottlenecks and the solution is provided to resolve the identified issues.