150 likes | 169 Views
Unleashing the power of JMeter. Suresh Malan, Senior Consultant Venkata Goday, Director Capgemini Technology Services. Abstract. Can Apache JMeter replace some of the established and standard performance tools in the market?
E N D
Unleashing the power of JMeter Suresh Malan, Senior Consultant Venkata Goday, Director Capgemini Technology Services
Abstract • Can Apache JMeter replace some of the established and standard performance tools in the market? • A typical IT application stack more than 70% are web based, making JMeter an economical choice • This paper discusses two major areas on JMeter – • JMeter needs to meet enterprise performance testing tool expectations and this is possible with enhancements in the areas of – • Reporting • Standardization and Script enhancements • Test execution • JMeter’s capability to cater to new and future technologies like Cloud, Mobile, IoT and Big data
Background • Apache JMeter is Open source and off late organizations have been asking about if and how JMeter can be used for Performance testing • Reasons for moving towards JMeter could be • Conscious move towards Open source • Economical choice • Possibility of improvements in JMeter in terms of • Script enhancements • Scheduled test executions • Comprehensive Reporting (editable and non-editable formats) • Capability of JMeter to handle newer technologies
Performance Testing • In software engineering, Performance testing1 is in general, a testing practice performed to determine how a system performs in terms of responsiveness and stability under a particular workload. It can also serve to investigate, measure, validate or verify other quality attributes of the system, such as scalability, reliability and resource usage. • Objectives of Performance testing can be to help evaluate: • If the system meets performance criteria under the different identified workloads. • Compare two similar systems as to which one performs better. • Identify any bottlenecks / slow components that are causing the system to perform badly under a certain given workload.
Apache JMeter • Apache JMeter2 is one of the most popular Open Source Performance testing tools. A few of the features are mentioned below – • It is capable of performance testing many different application/server/protocol types like Web – HTTP/HTTPS, Web services, JMS, Java objects and so on. • It is built in Java and its command-line mode can be used across different operating systems, making it platform independent. • It has a full featured test IDE that allows fast Test Plan recording (from Browsers or native applications), building and debugging. • It is highly extensible with the use of different samplers, especially the scriptable ones allowing for unlimited testing capabilities. Also plug-ins are available to enhance the capabilities
Extending the JMeter capabilities Generic Steps involved in Performance testing using JMeter
Extending the JMeter capabilities Enhancements performed via the custom-built framework around JMeter • Script Automation: • Automated script recording reduces the time and effort spent in understanding the business transactions and thereby speeding up the script recording activity • Script enhancements: • Automating the process of Parameterization, Correlation, Transaction controller addition & renaming as per convention, and Adding of Timers and Response assertions
Extending the JMeter capabilities • Scheduling Test executions: • Scheduling of test executions either via – • Jenkins or • the Framework • Result analysis and Report generation: • Automating the Analysis of the test results, Test report preparation and formatting as per pre-conceived structure making it available in editable and non-editable formats
Extending the JMeter capabilities • Overall time/effort spent on the end-to-end performance testing lifecycle reduced by upto 30-40% • Automation during each stage of Performance testing from script recording, to execution, to analysis and reporting help improve the productivity of the performance test analyst • With these changes in place, there is a greater push to using JMeter in Performance testing engagements
Compatibility with newer / future technologies • Emulating the Mobile users • An ever-increasing number of end-users are moving towards mobile and hence the organizations have to factor them in their performance testing as well • JMeter via its Proxy-based recording capabilities allows for recording the requests and replay is possible with the required number of virtual users • Cloud infrastructure • JMeter can be successfully used to run tests using the cloud infrastructure and Blazemeter3 is doing just that
Compatibility with newer / future technologies • IoT – MQTT Protocol • Design principles of Message Queue Telemetry Transport (MQTT)4 are to minimise network bandwidth and device resource requirements whilst also attempting to ensure reliability and some degree of assurance of delivery. These principles make it ideal for IoT • The MQTT Plugin in JMeter5is used for the injection testing of MQTT server. It permits to completely test many scenarios, which depend on type of messages and type of connections. • Big Data • Performance testing of Big Data will always be challenging, since it deals with huge amounts of complex, structured/unstructured data with high levels of insertion and retrieval rates. • However tools like JMeter help since they already have a set of plug-ins for testing databases like the one available for MongoDB, arguably the most popular NoSQL database.
Summarizing the discussion • Apache JMeter is an Open source tool with the required features, however there are certain areas which can be improved • Through the Framework around JMeter, it has been proven that it is possible to automate the performance testing cycle performed using JMeter, thereby reducing the effort by 30-40% • Also JMeter has the capability to handle the newer / future technologies like Cloud, Mobile, IoT and BigData • With the economy of Open source, the enhancements through automation, the ease of use that follows and the future-readiness, JMeter will be a force to reckon with.
References & Appendix • References • https://en.wikipedia.org/wiki/Software_performance_testing • http://JMeter.apache.org/ • https://www.blazemeter.com/ • http://mqtt.org/ • https://github.com/tuanhiep/mqtt-jmeter • Abbreviations used
Author Biography Suresh Malan is part of the Performance Testing & Engineering CoE for Capgemini global; he has been in the field of Performance Testing / Engineering for the past decade working on performance testing engagements with several clients and also supporting development of different performance testing assets. Venkata Goday heads Performance Testing & Engineering CoE for Capgemini global; he has been leading this practice from the last 10 years and is well known to be a thought leader in performance engineering space. He has rich experience in setting up Performance CoE’s for customers and has partnered with several clients for strategic consulting and transformation initiatives. He architected and developed many assets in Non Functional testing space.