Apache JMeter may be used to test functional and performance both on static and dynamic resources (files, Servlets, Perl scripts, Java Objects, Data Bases and Queries, FTP Servers and more). It can be used to simulate a heavy load on a server, network or object to test its strength or to analyze overall performance under different load types. You can also use it perform a functional test on websites, databases, LDAPs, web services etc.
Apache JMeter features include:
1. Being an open source, it is totally free, allows developer use the source code for the development and also is widely used tool in the market and it has the large online community support.
2. Easy to use and learn.
3. Can perform simple to advance tasks.
4. Can load and performance test different servers and services like HTTP, HTTPS, FTP Database, LDAP, SMTP, POP3, IMAP, TCP, SOAP, REST.
5. Portability, Platform Independent and full Java purity.
6. Can be used for both static as well as dynamic resources performance testing.
7. Full heavyweight (swing) and lightweight (awt) component supported.
8. Full multi-threading framework allows concurrent sampling by many threads and simultaneous sampling of different functions by separate thread groups.
9. Distributed testing can be implemented.
10. Both Simple GUI and Command line operations.
11. Can generates different types of reports.
12. Can add or remove plugin as per requirements.
13. Scriptable Samplers (BeanShell, BSF- and JSR223- compatible languages)
Working process of JMeter
JMeter pretends a group of users creating requests to a target server, and generates statistics information to show the performance/functionality of the target server/application via tables, graphs, etc.
JMeter internally uses HTTPClient of Apache project and send request using this to the application server and stores results in jtl logs or listeners as a response