Performance testing using JMeter
Updated February 26, 2015

Performance testing using JMeter

Artavazd Yeritsyan | TrustRadius Reviewer
Score 8 out of 10
Vetted Review
Verified User

Overall Satisfaction with JMeter

We used JMeter as a tool for performance testing of our web application for both frontend/backend. We have configured jobs on Jenkins to execute jmeter tests on parallel. For ex. we have tried out registration performance both on Stage and Live environments in parallel with the same parameters to compare the results.
  • Apache JMeter is a great tool for doing performance testing of web-applications.
  • Apache JMeter also can be used for functional tests because it has a set of assertions and extractors (i.e. elements) which allow you to not only get the page from the server, but also to control its content. In this mode, JMeter saves much more information about each request (full response and request body).
  • To make browser emulation more realistic, JMeter has elements which can work with cookies and cache. These elements are HTTP Cookie Manager and HTTP Cache Manager.
  • JMeter uses a synchronous request approach. That means for every request JMeter generates, an internal thread is raised and therefore blocked until a response is being received or a timeout happens. This results in resource blocking on the load injector. The maximum number of threads is limited within a JVM - dependent on the underlying infrastructure - and even if you are able to run a lot of parallel threads this will result in a higher CPU and memory utilization. Although performance tweaking and scaling out to distributed testing might help in such a case, it makes testing more complex and error-prone.
  • This behavior can result in distorted metrics. Think about a typical breakpoint load test. You want to determine, which is the maximum number of requests per second your tested system can serve. This will be limited by JMeter to max_requests_per_second = (1000 / average_request_time_in milliseconds) * max_jmeter_threads.
  • Even if the system could serve more, this is the maximum number JMeter can inject. This is especially important when the tested application has long response cycles, e.g. because of long lasting transactions or long lasting calculations within the requests.
  • It has only postiive impact.
  • Gomez
Gomez doesn't have problems like the waiting time for a test to run, a limited number of locations and browser agents, lack of reports, etc. But Gomez is a commercial software and JMeter is not.
If you want calculate request and response time JMeter will be very valuable for you, but if you want to do Stress Testing with thousands of simulated users, it will be not very valuable.

Using JMeter

We have started to use another tool (Gomez)