JMeter - Performance testing your webapp


Published on

Published in: Technology

JMeter - Performance testing your webapp

  1. 1. JMeter ( A tool for performance testing your webapp Amit Solanki
  2. 2. Testing - Performance/Load/Stress • Performance testing • how fast an app performs under a particular workload • validation, verification of quality attributes (scalability, reliability, resource usage) • demonstrates that the system meets performance criteria • Load Testing • modeling the expected usage by simulating multiple users accessing the web services concurrently • raised beyond normal usage - stress testing • Stress Testing • determination of stability of an application • tries to break the app by overwhelming its resources
  3. 3. Before starting • What is our anticipated average number of users (normal load) ? • What is our anticipated peak number of users ? • When is a good time to load-test our application (i.e. off-hours or week-ends), bearing in mind that this may very well crash one or more of our servers ? • What is the testing intended to achieve? • Sequential • functional (low-volume) • benchmark (the average number of users) • load-test (the maximum number of users) • test destructively (what is our hard limit?)
  4. 4. JMeter - Introduction • Features • 100% pure java, open source desktop application • originally developed by Stefano Mazzocchi • designed for functional/load/performance/stress testing • Extensible… write your own test • Simulate heavy load (application, server and network) • Gives instant visual feedback • distributed testing • various protocols - HTTP, FTP, JDBC, JMS, LDAP, SOAP • multi-platform • Full multithreading framework • Caching and offline analysis/replaying of test results.
  5. 5. Application Overview • GUI, command line interface • Tests can be run and analyzed interactively, or run in batch mode and analyzed offline • Test plans consist of • Thread groups: organize threads of execution • Samplers: sends requests to a server • Logical controllers : control flow of test plan (loops, conditionals, ordering, etc.) • Listeners: record, summarize and display record and response data • Timers: introduce delays in test plan • Assertions: assert facts about responses, for functional testing • Configuration elements • Pre-processors and post-processors
  6. 6. Testing Process Create Thread Create Test Plan Test Group Script Run Test Plan Analyze Result Test Plan Thread Group Samplers Listeners Scheduler Timers
  7. 7. Elements of test plan Thread group Logic Controllers Samplers Configuration Elements Pre-Processor Elements Post-Processor Elements Timers Assertions Listeners
  8. 8. Demo
  9. 9. Distributed Testing jmeter -server jmeter -server jmeter -server jmeter jmeter -server jmeter -server jmeter -server
  10. 10. Distributed Testing (contd...) Check : - • firewalls turned off • jmeter & jmeter -servers on same subnet • jmeter can access all jmeter -servers • same version of jmeter on all systems
  11. 11. Drawbacks • Complex terminology • Manual distributed execution • Graphic representation quite confusing • Difficult to build for beginners
  12. 12. Thank You!!!