Você está na página 1de 12

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

Learn more about Loadrunner and its architecture in this video lesson.

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

Learn more about Vuser Script development in Video tutorial here.


5) How many VUsers are required for load testing ?

This is essentially a trick question.

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.

Learn more about parameterization in this Video Tutorial

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.

Learn more about Controller & Scenario creation

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.

Learn more about Checkpoints

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.

Learn more about Correlation in this video tutorial.


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.

Learn Manual Correlation.

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.


Video Transcript with Key Takeaways Highlighted:

• Suppose, you are assigned a task, to develop a custom software for a client.
• Each block below represents a step required to develop the software.
• Irrespective of your technical background, try and make an educated guess about
the sequence of steps you will follow, to achieve the task
• The correct sequence would be.
• Gather as much information as possible about the details & specifications of the
desired software from the client. This is nothing but the Requirements gathering
stage.
• Plan the programming language like java , php , .net ; database like oracle , mysql
etc which would be suited for the project. also some high level functions &
architecture. This is the Design Stage.
• Actually code the software. This is the Built Stage.
• Next you ,Test the software to verify that it is built as per the specifications given
by the client. This is the TEST stage.
• Once your software product is ready , you may to do some code changes to
accommodate enhancements requested by the client. This would be Maintenance
stage.
• All these levels constitute the waterfall method of software development
lifecycle.As you may observe, that testing in the model starts only after
implementation is done.
• But if you are working in large project, where the systems are complex, its easy
to miss out key details in the requirements phase itself. In such cases , an entirely
wrong product will be delivered to the client. You will have to start a fresh with
the project
• Or if you manage to note the requirements correctly but make serious mistakes in
design and architecture of you software you will have to redesign the entire
software to correct the error.
• Assessments of thousands of projects have shown that defects introduced during
requirements & design make up close to half of the total number of defects
• Also, the costs of fixing a defect increases across the development life cycle.
The earlier in life cycle a defect is detected, the cheaper it is to fix it. As the
say, "A stitch in time saves a nine"
• To address this concern , the V model of testing was developed where for every
phase , in the Development life cycle there is a corresponding Testing phase
• The left side of the model is Software Development Life Cycle - SDLC
• The right side of the model is Software Test Life Cycle - STLC
• The entire figure looks like a V , hence the name V - model
• You a find a few stages different from the waterfall model.
• These differences , along with the details of each testing phase will be discussed
in later tutorial
• Apart from V model , there are iterative development models , where
development is carried in phases , with each phase adding a functionality to the
software.
• Each phase comprises of, its own independent set of development and testing
activities.
• Good examples of Development lifecycles following iterative method are
Rapid Application Development, Agile Development
• Before we close this software testing training a few pointers -
• You must note that, there are numerous development life cycle models.
Development model selected for a project, depends on the aims and goals of
that project
• Testing is not a stand-alone activity and it has to adopt with the development
model chosen for the project.
• In any model, testing should performed at all levels i.e. right from requirements
until maintenance.

• Consider a scenario where you are moving a file from folder A to Folder B.Think
of all the possible ways you can test this.
• Apart from the usual scenarios, you can also test the following conditions
• Trying to move the file when it is Open
• You do not have the security rights to paste the file in Folder B
• Folder B is on a shared drive and storage capacity is full.
• Folder B already has a file with the same name, infact the list is endless
• Or suppose you have 15 input fields to test ,each having 5 possible values , the
number of combinations to be tested would be 5^15
• If you were to test the entire possible combinations project EXECUTION
TIME & COSTS will rise exponentially.
• Hence, one of the testing principle states that EXHAUSTIVE testing is not
possible. Instead we need optimal amount of testing based on the risk
assessment of the application.
• And the million dollar question is, how do you determine this risk ?
• To answer this lets do an exercise
• In your opinion, Which operations is most likely to cause your Operating system
to fail?
• I am sure most of you would have guessed, Opening 10 different application all at
the same time.
• So if you were testing this Operating system you would realize that defects are
likely to be found in multi-tasking and needs to be tested thoroughly which
brings us to our next principle Defect Clustering which states that a small
number of modules contain most of the defects detected.
• By experience you can identify such risky modules.But this approach has its own
problems
• If the same tests are repeated over and over again , eventually the same test
cases will no longer find new bugs
• This is the another principle of testing called “Pesticide Paradox”
• To overcome this, the test cases need to be regularly reviewed & revised ,
adding new & different test cases to help find more defects.
• But even after all this sweat & hard work in testing, you can never claim you
product is bug free. To drive home this point , lets see this video of public launch
of Windows 98
• You think a company like MICROSOFT would not have tested their OS
thoroughly & would risk their reputation just to see their OS crashing during its
public launch!
• Hence, testing principle states that - Testing shows presence of defects i.e.
Software Testing reduces the probability of undiscovered defects remaining
in the software but even if no defects are found, it is not a proof of
correctness.
• But what if , you work extra hard , taking all precautions & make your software
product 99% bug free .And the software does not meet the needs & requirements
of the clients.
• This leads us to our next principle, which states that-
• Absence of Error is a Fallacy i.e. Finding and fixing defects does not help if
the system build is unusable and does not fulfill the users needs &
requirements
• To fix this problem , the next principle of testing states that
• Early Testing - Testing should start as early as possible in the Software
Development Life Cycle. so that any defects in the requirements or design phase
are captured as well more on this principle in a later training tutorial.
• And the last principle of testing states that the Testing is context dependent
which basically means that the way you test a e-commerce site will be
different from the way you test a commercial off the shelf application

Summary of the Seven Testing Principles

Principle 1 Testing shows presence of defects


Principle 2 Exhaustive testing is impossible
Principle 3 Early Testing
Principle 4 Defect Clustering
Principle 5 Pesticide Paradox
Principle 6 Testing is context dependent
Principle 7 Absence of errors - fallacy

• Software testing is a process used to identify the correctness, completeness,


and quality of developed computer software. It includes a set of activities
conducted with the intent of finding errors in software so that it could be corrected
before the product is released to the end users.
• In simple words, software testing is an activity to check whether the actual
results match the expected results and to ensure that the software system is
defect free.
• Why is testing is important?
• This is China Airlines Airbus A300 crashing due to a software bug on April 26,
1994 killing 264 innocent lives
• Software bugs can potentially cause monetary and human loss, history is full of
such examples
• In 1985, Canada's Therac-25 radiation therapy machine malfunctioned due to
software bug and delivered lethal radiation doses to patients ,leaving 3 people
dead and critically injuring 3 others
• In April of 1999 ,a software bug caused the failure of a $1.2 billion military
satellite launch, the costliest accident in history
• In may of 1996, a software bug caused the bank accounts of 823 customers of a
major U.S. bank to be credited with 920 million US dollars
• As you see, testing is important because software bugs could be expensive or
even dangerous
• As Paul Elrich puts it - "To err is human, but to really foul things up you need a
computer."
• Consider a scenario, when after fixing defects of integration testing , the system is
made available to the testing team for system testing
• You look at the initial screen , system looks fine and delay system test execution
for the next day since you have other critical testing requirements to attend to
• Next day say you plan to execute the scenario login > View Balance > Transfer
500 > logout . The deadline is 4 hours.
• You begin executing the scenario , enter a valid login id , password, click the
login button and boom you are taken to a blank screen with absolutely no links ,
no buttons & no where for you to proceed with succeeding steps of your scenario
• This is not a figment of any imagination but a very practical condition which
could arise due to developer negligence, time pressures , test environment
configuration & instability
• To fix this developer requires atleast 5 hours & deadline would be missed
• In fact , none of your team members would be able to execute their respective
scenarios , since view balance is start point to perform any other operation and the
entire project will be delayed
• Had you checked this yesterday itself, the system would been fixed by now and
you were good for testing
• To avoid such situation sanity also know SMOKE testing is done to check
critical functionalities of the system before its is accepted for major testing.
Sanity testing is quick and is non- exhaustive. Goal is not to find defects but
to check system health

• Suppose in the current Balance module instead of just showing the current
balance the client now wants customized reports based on date & amount of
transaction
• Obviously, any such change needs to be tested. Once deployed, testing any
further system changes , enhancements or corrections forms part of
Maintenance Testing
• Suppose that in our banking application your current balance is 2000.
• Using the new enhancement, you check your balance for an year ago that comes
out to be 500.
• You enter the transfer module and try to transfer Rs 1000.In order to proceed the
transfer module checks for the current balance.
• Instead of sending the current balance, it sends the old balance of 500 and
transaction fails
• As you may observe, code changes were in Current Balance module only but still
transfer module is affected. Regression testing is carried out to check
modification in software has not caused unintended adverse side - effects

• Apart from Functional testing, non – functional requirements like performance ,


usability ,load factor are also important.
• How many times have you seen such long load time messages while accessing an
application - (pic in video) I am sure many
• To address this issue , performance testing is carried out to check & fine tune
system response times. The goal of performance testing is to reduce response
time to an acceptable level
• Or you may have seen messages like - (pic in video ) .Hence load testing is
carried out to check systems performance at different loads i.e. number of
users accessing the system
• Depending on the results and expected usage, more system resources may be
added
• That’s all to Types of Testing
• In general there three testing types 1) Functional 2) Non - Functional 3)
Maintenance. Under these types, you have multiple TESTING Level's but
usually people call them as Testing Types.
• You may find some difference in this classification in different resources but the
general theme remains the same.
• This is not the complete list as there are more than 150 types of testing types
and still adding. No need to bother or worry, you will pick them up as you age in
the testing industry
• Also, note that not all testing types are applicable to all projects but depend on
nature & scope of the project. More on this in a later tutorial.