JMETER introduction

JMETER is a tool that can used for load testing various types of applications:

  1. web sites
  2. database servers
  3. ftp servers
  4. web services
  5. other apps

It is an open source project born as an Apache project. 

The application is written in Java and can be run on Windows, Mac and Linux.

It has a multi-threaded architecture so that it can run requests on concurrent threads.

The interface is GUI based but it is not very user friendly because the app was created with the focus on technical functionality and not so much on user experience.

JMETER is not a browser since it  operates at the HTTP protocol level.

JMETER does not do the following:
  1. it does not open a browser (most of the time :); it is possible to run Web Driver scripts in JMETER but that's a different discussion))
  2. it does not perform actions supported by a browser
  3. it does not render html pages
  4. it does not execute JAVASCRIPT code embedded in html pages

Because it works at the HTTP protocol level, it simulates almost everything that a browser does because most of the browser actions generate HTTP requests.

It does not generate real users (like Web Driver) but virtual users.

JMETER works with requests (HTTP requests for web sites):

- a request is created in JMETER

- the request is sent to the server

- the server sends the request response back

- JMETER uses the request response by running different assertions

The requests can be sent directly from JMETER to the target system or a master - slave architecture can be used where:

- the master JMETER server creates the requests
- the master JMETER server sends the requests to the slave JMETER server
- the slave JMETER server sends the requests to the target server

Some of the functionality that make JMETER very different from other tools (Load Runner) are

  1. the plug-in interface: Java plug-ins can be added to Jmeter
  2. extensive API (lots of classes and methods that can be used in load test plans)
  3. can run Selenium Web Driver test scripts

The test plans can either be created manually from scratch or be started using the recording module. 

When using the recorder, the browser needs to be configured with JMETER acting as proxy so that all web requests executed in the browser are recorded.

The weak points of JMETER are the reporting and the lack of enterprise support.

There are multiple reporting components out of the box but they are not sophisticated enough.

Great reporting and enterprise features are available from Blazemeter which implements JMETER in the cloud.

Share this