Saturday 12 April 2014

jMeter Interview Questions

Performance testing is an important process of any software application that provide that measure the behavior of  an application under certain conditions. .Here we have provided some of the most important  jMeter interview questions and answers asked by most of the IT companies. . Setting up a performance/load test script is always the first step in fixing non-functional and hard to reproduce issues relating to memory leaks, database deadlocks, thread-safety,  CPU usage, excessive disk I/O, etc


The Apache JMeter is an open source software, a 100% pure Java application designed to load test functional behavior and measure performance. It was originally designed for testing Web Applications but has since expanded to other test functions.

JMeter Architecture

jmeter pdf

What can I do with it?

Apache JMeter may be used to test performance both on static and dynamic resources (Files, Web dynamic languages - PHP, Java, ASP.NET, etc. -, Java Objects, Data Bases and Queries, FTP Servers and more). It can be used to simulate a heavy load on a server, group of servers, network or object to test its strength or to analyze overall performance under different load types. You can use it to make a graphical analysis of performance or to test your server/script/object behavior under heavy concurrent load.

Jmeter interview questions


Q: What is Performance Testing?
A: This test sets the ‘best possible’ performance expectation under a given configuration of infrastructure. It also highlights early in the testing process if changes need to be made before application goes into production.

Q: What is Load Test?
A: This test is basically used for exercising\discovering the system under the top load it was designed to operate under.

Q: What is Stress Test?
A: This test is an attempt to break the system by overwhelming its resources.

Q: What are the protocols supported by JMeter?
A: The protocols supported by JMeter are:

Web: HTTP, HTTPS sites 'web 1.0' web 2.0 (ajax, flex and flex-ws-amf)

Web Services: SOAP / XML-RPC

Database via JDBC drivers

Directory: LDAP

Messaging Oriented service via JMS

Service: POP3, IMAP, SMTP

FTP Service

Q: List some of the features of JMeter.
A: Following are some of the features of JMeter:

Its free. Its an open source software.

It has simple and intuitive GUI.

JMeter can load and performance test many different server types: Web - HTTP, HTTPS, SOAP, Database via JDBC, LDAP, JMS, Mail - POP3

It is platform-independent tool. On Linux/Unix, JMeter can be invoked by clicking on JMeter shell script. On Windows it can be invoked by starting the jmeter.bat file.

It has full Swing and lightweight component support (precompiled JAR uses packages javax.swing.* ).

JMeter store its test plans in XML format. This means you can generate a test plan using a text editor.

It's full multi-threading framework allows concurrent sampling by many threads and simultaneous sampling of different functions by separate thread groups.

It is highly Extensible.

Can also be used to perform automated and functional testing of your application.

Q: What is a Test Plan in JMeter?
A: A Test Plan defines and provides a layout of how and what to test. For example the web application as well as the client server application. It can be viewed as a container for running tests. A complete test plan will consist of one or more elements such as thread groups, logic controllers, sample-generating controllers, listeners, timers, assertions, and configuration elements. A test plan must have at least one thread group.

Q: List some of the test plan elements in JMeter.
A: Following is a list of some of the test plan elements:

ThreadGroup

Controllers

Listeners

Timers

Assertions

Configuration Elements

Pre-Processor Elements

Post-Processor Elements

Q: What is Thread Group?
A: Thread Group elements are the beginning points of your test plan. As the name suggests, the thread group elements control the number of threads JMeter will use during the test.

Q: What are Controllers and its types?
A: JMeter has two types of Controllers:

Samplers Controllers : Samplers allow JMeter to send specific types of requests to a server. They simulate a user's request for a page from the target server. For example, you can add a HTTP Request sampler if you need to perform a POST, GET, DELETE on a HTTP service

Logical Controllers : Logic Controllers let you control order of processing of Samplers in a Thread. Logic Controllers can change the order of request coming from any of their child elements. Some examples are: ForEach Controller, While Controller, Loop Controller, IF Controller, Run Time Controller, Interleave Controller, Throughput Controller, Run Once Controller.

Q: What is Configuration element?
A: Configuration Elements allow you to create defaults and variables to be used by Samplers. They are used to add or modify requests made by Samplers.

They are executed at the start of the scope of which they are part, before any Samplers that are located in the same scope. Therefore, a Configuration Element is accessed only from inside the branch where it is placed.

Q: What are Listeners?
A: Listeners let you view the results of Samplers in the form of tables, graphs, trees or simple text in some log files. They provide visual access to the data gathered by JMeter about the test cases as a Sampler component of JMeter is executed.

Listeners can be added anywhere in the test, including directly under the test plan. They will collect data only from elements at or below their level.

Q: What are Pre-Processor and Post-Processor elements?
A: A Pre-Procesor is something that will happen before a sampler executes. They are often used to modify the settings of a Sample Request just before it runs, or to update variables that are not extracted from response text.

A Post Processor executes after a sampler finishes its execution. This element is most often used to process the response data, for example, to retrieve particular value for later use.

Q: What is the execution order of Test Elements?
A: Following is the execution order of the test plan elements:

Configuration elements

Pre-Processors

Timers

Sampler

Post-Processors (unless SampleResult is null)

Assertions (unless SampleResult is null)

Listeners (unless SampleResult is null)

Q: How do you ensure re-usability in your JMeter scripts?
A: Using config elements like "CSV Data Set Config", "User Defined Variables", etc for greater data reuse.

Modularizing shared tasks and invoking them via a "Module Controller".

Writing your own BeanShell functions, and reusing them.

Q: Are the test plans built using JMeter OS dependant?
A: Test plans are usually saved in thr XML format, hence they have nothing to do with any particular OS. You can run those test plans on any OS where JMeter can run.

Q: What are the monitor tests?
A: Uses of monitor tests are:

Monitors are useful for a stress testing and system management.

Used with stress testing, the monitor provides additional information about server performance.

Monitors makes it easier to see the relationship between server performance and response time on the client side.
As a system administration tool, the monitor provides an easy way to monitor multiple servers from one console.

Q: What are JMeter Functions?
A: JMeter functions are special values that can populate fields of any Sampler or other element in a test tree. A function call looks like this:

${__functionName(var1,var2,var3)}

Q: Where can functions and variables be used?
A: Functions and variables can be written into any field of any test component.

Q: What are regular expressions in JMeter?
A: Regular expressions are used to search and manipulate text, based on patterns. JMeter interprets forms of regular expressions or patterns being used throughout a JMeter test plan, by including the pattern matching software Apache Jakarta ORO.

Q: How can you reduce resource requirements in JMeter?
A: Below are some suggestion to reduce resource requirements:

Use non-GUI mode: jmeter -n -t test.jmx -l test.jtl.

Use as few Listeners as possible; if using the -l flag as above they can all be deleted or disabled.

Disable the “View Result Tree” listener as it consumes a lot of memory and can result in the console freezing or JMeter running out of memory. It is, however, safe to use the “View Result Tree” listener with only “Errors” checked.

Rather than using lots of similar samplers, use the same sampler in a loop, and use variables (CSV Data Set) to vary the sample. Or perhaps use the Access Log Sampler.

Don't use functional mode.

Use CSV output rather than XML.

Only save the data that you need.

Use as few Assertions as possible.

Disable all JMeter graphs as they consume a lot of memory. You can view all of the real time graphs using the JTLs tab in your web interface.

Do not forget to erase the local path from CSV Data Set Config if used.

Clean the Files tab prior to every test run.


Q. How did you go about fixing a performance issue?

A. Set up JMeter to reproduce the production like scenario to put through concurrent requests and put the system under heavy load. Used a profiling tool to monitor CPU times, memory usage, etc.


What are the types of Bottle necks in Performance testing?

Any system resources like hardware, software, bandwidth which has defined limits on the flow of data or processing speed might create bottle necks. The bottle necks effects the web application’s performance and scalability. The following are some of the bottle necks in performance testing:

1. The recommended software authorities do not match the requirements.
2. Synchronization of AJAX is difficult
3. Recognizing popups are cryptic in certain scripting soft wares
4. The patterns that are produced are not constant because of various environmental factors.




1 comment:

  1. Very nicely compiled and presented...just adding on some more selenium interview questions - Art Of Testing | JMeter Interview Questions

    ReplyDelete