jmeter - performance testing your webapp

12
JMeter (http://jakarta.apache.org/jmeter/) A tool for performance testing your webapp Amit Solanki http://amitsolanki.com [email protected]

Upload: amit-solanki

Post on 09-May-2015

15.819 views

Category:

Technology


8 download

TRANSCRIPT

Page 1: JMeter - Performance testing your webapp

JMeter (http://jakarta.apache.org/jmeter/)

A tool for performance testing your webapp

Amit Solankihttp://[email protected]

Page 2: JMeter - Performance testing your webapp

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

Page 3: JMeter - Performance testing your webapp

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?)

Page 4: JMeter - Performance testing your webapp

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.

Page 5: JMeter - Performance testing your webapp

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

Page 6: JMeter - Performance testing your webapp

Testing Process

Plan Test Create Thread Group

Create Test Script Run Test Plan Analyze Result

Thread GroupScheduler

SamplersTimers

ListenersTest Plan

Page 7: JMeter - Performance testing your webapp

Elements of test planThread group

Samplers

Logic Controllers

Listeners

Timers

Assertions

Pre-Processor Elements

Post-Processor Elements

Configuration Elements

Page 8: JMeter - Performance testing your webapp

Demo

Page 9: JMeter - Performance testing your webapp

Distributed Testing

jmeter -server192.168.1.6

jmeter192.168.1.2

jmeter -server192.168.1.7

jmeter -server192.168.1.8

jmeter -server192.168.1.9

jmeter -server192.168.1.10

jmeter -server192.168.1.11

Page 10: JMeter - Performance testing your webapp

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

Page 11: JMeter - Performance testing your webapp

Drawbacks

• Complex terminology

• Manual distributed execution

• Graphic representation quite confusing

• Difficult to build for beginners

Page 12: JMeter - Performance testing your webapp

Thank You!!!