Upload
chien-hung-pan
View
160
Download
1
Embed Size (px)
Citation preview
Find the Bottleneckof Your System
Load / Stress Test with JMeter
StarNight
Who am I?
潘建宏 / Jian-Hong Pan (StarNight)About Me : http://about.me/StarNight
出沒在~
GitHub : starnightPTT : zack2004plurk : StarNightFacebook : StarNight
目前繼續在種花店當個打雜園丁 ~
Outline
● The Bottleneck● Web / HTTP(S)
○ Request / Response Header and Body
● Load / Stress Test● Apache JMeter
○ Installation○ UI Description○ Test Plan○ Read Result○ Parsing and Variables
The Bottleneck
● The operation of a system is the cooperation between many parts.
○ Nodes(Termial, Server):Clients, Server, DB○ Connections(Communication)
● The whole system will reach the planned efficiency, only if each part meets the planned efficiency criteria.
DBServer
(Web AP)Clients
PossibleBottleneck
Possible BottleneckPossible Bottleneck
Possible Bottleneck Possible Bottleneck
Web / HTTP(S)
● It is the protocol between Client and Web Servers
○ W3C: HTTP Specifications and Drafts○ IETF: RFC 2616 Hypertext Transfer Protocol / 1.1
■ 4.2 Message Headers, 4.3 Message Body■ 5.1.1 Method■ 6.1.1 Status Code and Reason Phrase
● HTTPS: Use SSL certificate to encrypt HTTP
Server(Web AP)Clients
HTTP(S) Request
HTTP(S) Response
HTTP Request Header & Body we can see
Secured HTTP Request Header & Body
Even though the HTTP is encrypted, you still see the plain text in the browser
● Composite of○ Request-Line
■ Method sp Request-URI sp HTTP-Version○ general-header | request-header | entity-header○ message-body
● Method○ OPTIONS, GET, HEAD, POST, PUT, DELETE,
TRACE, CONNECT
● Request-URI○ "*" | absoluteURI | abs_path | authority
● Content-Type
HTTP Request (5)
HTTP Response (6)
● Composite of○ Status-Line
■ HTTP-Version sp Status-Code sp Reason-Phrase○ general-header | response-header | entity-header○ message-body
● Status Code and Reason Phrase○ 1xx: Informational○ 2xx: Success○ 3xx: Redirection○ 4xx: Client Error○ 5xx: Server Error
Load / Stress Test
● Load Test○ Load testing examines the entire environment and
database, while measuring the response time.
● Stress Test○ Stress testing focuses on identified transactions,
pushing to a level so as to break transactions or systems.
DBServer
(Web AP)Clients
Super Node
HTTP(S) Request
HTTP(S) Response
probe probeprobe
Flow Generator
Apache JMeter
● Java application designed to load test functional behavior and measure performance.It was originally designed for testing Web Applications but has since expanded to other test functions.
● http://jmeter.apache.org/● Apache License Version 2.0● Getting Started (User’s Manual)
Open Source is Awesome!
Installation
● Download Page:○ http://jmeter.apache.org/download_jmeter.cgi
● Requires Java 6 or later
● Excute bin/jmeter.sh or bin/jmeter.bat
● Using JMeter behind a proxy○ Append the arguments “--proxyHost ProxyServer --
proxyPort ProxyPort” after the ApacheJMeter.jar command in bin/jmeter.sh or bin/jmeter.bat
UI DescriptionTest Plan related: Thread, Query Script, Header ...
Workbench to make Test Plan
How to run the Test Plan
Global User Defined Variables
Start / Stop Test Clear Test Result
Test Plan - Thread Group
Test Plan - Test Script Recorder
Browser
JMeter Proxy
Target
Client
X
There are only HTTP requests and Responsein the World Wide Web.
Open a browser which will go through this proxy
Test Plan - HTTP Request
Test Plan - HTTP Cookie Manager
Cookie - SessionIETF: RFC 6265 / 8.4
Test Plan - HTTP Request Defaults
Variables Default Values
Test Plan: Many other scenarios
● How to use a CSV file with JMeter○ Many usernames and paswwords for exmaple
● Upload and Download Scenarios with Apache JMeter○ Upload files tests
● And so on ...
Test Plan - View Results Tree
Test Plan - Summary Report
Many other listeners ...
Run the Test Plan
Read Result - View Results Tree
Read Result - Summary Report
Parsing
Extract Variables
(.*?)Variables will beURL_g1, URL_g2
Verify Variables
Apache Ant
● 5 Ways To Launch a JMeter Test without Using the JMeter GUI
● JMeter Ant Task● To have a test report in HTML
form● One may need to add Ant into
the enviroment variable PATH
Use JMeter Ant addon
1. Download Apache Ant and install it2. Add Ant’s directory into PATH3. Use the command line:
a. cd Apache JMeters’s extras directoryb. ant -Dtest=Test Plan’s File Name -Dtestpath=Path of
the Test Plan’s File
For example: I put the test.jmx on my desktop$ cd C:\Users\jhpan\Desktop\apache-jmeter-2.13\extras$ ant -Dtest=test -Dtestpath=C:\Users\jhpan\Desktop
Thank you ~