SlideShare ist ein Scribd-Unternehmen logo
1 von 34
Downloaden Sie, um offline zu lesen
Find the Bottleneck
of Your System
Load / Stress Test with JMeter
StarNight
Who am I?
潘建宏 / Jian-Hong Pan (StarNight)
About Me : http://about.me/StarNight
出沒在~
GitHub : starnight
PTT : zack2004
plurk : StarNight
Facebook : 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.
DB
Server
(Web AP)
Clients
Possible
Bottleneck
Possible Bottleneck
Possible 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.
DB
Server
(Web AP)
Clients
Super Node
HTTP(S) Request
HTTP(S) Response
probe probe
probe
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 Description
Test 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 Response
in the World Wide Web.
Open a browser which will go through this proxy
Test Plan - HTTP Request
Test Plan - HTTP Cookie Manager
Cookie - Session
IETF: 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 be
URL_g1, URL_g2
Place Variables
${URL_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 it
2. Add Ant’s directory into PATH
3. Use the command line:
a. cd Apache JMeters’s extras directory
b. 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:UsersjhpanDesktopapache-jmeter-2.13extras
$ ant -Dtest=test -Dtestpath=C:UsersjhpanDesktop
Thank you ~

Weitere ähnliche Inhalte

Was ist angesagt?

Was ist angesagt? (20)

Netty: asynchronous data transfer
Netty: asynchronous data transferNetty: asynchronous data transfer
Netty: asynchronous data transfer
 
WebTalk - Implementing Web Services with a dedicated Java daemon
WebTalk - Implementing Web Services with a dedicated Java daemonWebTalk - Implementing Web Services with a dedicated Java daemon
WebTalk - Implementing Web Services with a dedicated Java daemon
 
gRPC or Rest, why not both?
gRPC or Rest, why not both?gRPC or Rest, why not both?
gRPC or Rest, why not both?
 
Netty @Apple: Large Scale Deployment/Connectivity
Netty @Apple: Large Scale Deployment/ConnectivityNetty @Apple: Large Scale Deployment/Connectivity
Netty @Apple: Large Scale Deployment/Connectivity
 
Loom and concurrency latest
Loom and concurrency latestLoom and concurrency latest
Loom and concurrency latest
 
202107 - Orion introduction - COSCUP
202107 - Orion introduction - COSCUP202107 - Orion introduction - COSCUP
202107 - Orion introduction - COSCUP
 
Packet filtering using jpcap
Packet filtering using jpcapPacket filtering using jpcap
Packet filtering using jpcap
 
Networking and Go: An Epic Journey
Networking and Go: An Epic JourneyNetworking and Go: An Epic Journey
Networking and Go: An Epic Journey
 
Asynchronous IO in Rust - Enrico Risa - Codemotion Rome 2017
Asynchronous IO in Rust - Enrico Risa - Codemotion Rome 2017Asynchronous IO in Rust - Enrico Risa - Codemotion Rome 2017
Asynchronous IO in Rust - Enrico Risa - Codemotion Rome 2017
 
Easy Steps to implement UDP Server and Client Sockets
Easy Steps to implement UDP Server and Client SocketsEasy Steps to implement UDP Server and Client Sockets
Easy Steps to implement UDP Server and Client Sockets
 
gRPC in Go
gRPC in GogRPC in Go
gRPC in Go
 
Skydive 31 janv. 2016
Skydive 31 janv. 2016Skydive 31 janv. 2016
Skydive 31 janv. 2016
 
Non blocking io with netty
Non blocking io with nettyNon blocking io with netty
Non blocking io with netty
 
Fm wtm12-v2
Fm wtm12-v2Fm wtm12-v2
Fm wtm12-v2
 
Quick Introduction to Kotlin Coroutine for Android Dev
Quick Introduction to Kotlin Coroutine for Android DevQuick Introduction to Kotlin Coroutine for Android Dev
Quick Introduction to Kotlin Coroutine for Android Dev
 
Skydive 5/07/2016
Skydive 5/07/2016Skydive 5/07/2016
Skydive 5/07/2016
 
The Simple Scheduler in Embedded System @ OSDC.TW 2014
The Simple Scheduler in Embedded System @ OSDC.TW 2014The Simple Scheduler in Embedded System @ OSDC.TW 2014
The Simple Scheduler in Embedded System @ OSDC.TW 2014
 
Adding replication protocol support for psycopg2
Adding replication protocol support for psycopg2Adding replication protocol support for psycopg2
Adding replication protocol support for psycopg2
 
Load testing in Zonky with Gatling
Load testing in Zonky with GatlingLoad testing in Zonky with Gatling
Load testing in Zonky with Gatling
 
Skydive, real-time network analyzer, container integration
Skydive, real-time network analyzer, container integrationSkydive, real-time network analyzer, container integration
Skydive, real-time network analyzer, container integration
 

Andere mochten auch

Eliminating the production bottlenecks
Eliminating the production bottlenecksEliminating the production bottlenecks
Eliminating the production bottlenecks
dutconsult
 
Bottleneck of thinking
Bottleneck of thinkingBottleneck of thinking
Bottleneck of thinking
宏暢 菅原
 
Debug C/C++ Programs More Comfortably @ 2014.12.14 Trace Code Meetup
Debug C/C++ Programs More Comfortably @ 2014.12.14 Trace Code MeetupDebug C/C++ Programs More Comfortably @ 2014.12.14 Trace Code Meetup
Debug C/C++ Programs More Comfortably @ 2014.12.14 Trace Code Meetup
Jian-Hong Pan
 

Andere mochten auch (18)

Bind Python and C @ COSCUP 2015
Bind Python and C @ COSCUP 2015Bind Python and C @ COSCUP 2015
Bind Python and C @ COSCUP 2015
 
Build a Micro HTTP Server for Embedded System
Build a Micro HTTP Server for Embedded SystemBuild a Micro HTTP Server for Embedded System
Build a Micro HTTP Server for Embedded System
 
Learn How to Develop Embedded System for ARM @ 2014.12.22 JuluOSDev
Learn How to Develop Embedded System for ARM @ 2014.12.22 JuluOSDevLearn How to Develop Embedded System for ARM @ 2014.12.22 JuluOSDev
Learn How to Develop Embedded System for ARM @ 2014.12.22 JuluOSDev
 
Eliminating the production bottlenecks
Eliminating the production bottlenecksEliminating the production bottlenecks
Eliminating the production bottlenecks
 
Identifying Software Performance Bottlenecks Using Diagnostic Tools- Impetus ...
Identifying Software Performance Bottlenecks Using Diagnostic Tools- Impetus ...Identifying Software Performance Bottlenecks Using Diagnostic Tools- Impetus ...
Identifying Software Performance Bottlenecks Using Diagnostic Tools- Impetus ...
 
People as Bottlenecks
People as BottlenecksPeople as Bottlenecks
People as Bottlenecks
 
Adn11 toc bottleneck game
Adn11   toc bottleneck gameAdn11   toc bottleneck game
Adn11 toc bottleneck game
 
Bottleneck of thinking
Bottleneck of thinkingBottleneck of thinking
Bottleneck of thinking
 
Bruce Damer's talk on the Von Neumann Bottleneck to the Singularity Universit...
Bruce Damer's talk on the Von Neumann Bottleneck to the Singularity Universit...Bruce Damer's talk on the Von Neumann Bottleneck to the Singularity Universit...
Bruce Damer's talk on the Von Neumann Bottleneck to the Singularity Universit...
 
Debug C/C++ Programs More Comfortably @ 2014.12.14 Trace Code Meetup
Debug C/C++ Programs More Comfortably @ 2014.12.14 Trace Code MeetupDebug C/C++ Programs More Comfortably @ 2014.12.14 Trace Code Meetup
Debug C/C++ Programs More Comfortably @ 2014.12.14 Trace Code Meetup
 
The Knowledge Reengineering Bottleneck
The Knowledge Reengineering BottleneckThe Knowledge Reengineering Bottleneck
The Knowledge Reengineering Bottleneck
 
Kodak Bottleneck
Kodak BottleneckKodak Bottleneck
Kodak Bottleneck
 
Pqm bottlenecks
Pqm   bottlenecksPqm   bottlenecks
Pqm bottlenecks
 
The Considerations for Internet of Things @ 2017
The Considerations for Internet of Things @ 2017The Considerations for Internet of Things @ 2017
The Considerations for Internet of Things @ 2017
 
Performance Bottleneck Identification
Performance Bottleneck IdentificationPerformance Bottleneck Identification
Performance Bottleneck Identification
 
Requirements the Last Bottleneck
Requirements the Last BottleneckRequirements the Last Bottleneck
Requirements the Last Bottleneck
 
Functional Programming in JavaScript by Luis Atencio
Functional Programming in JavaScript by Luis AtencioFunctional Programming in JavaScript by Luis Atencio
Functional Programming in JavaScript by Luis Atencio
 
Growth bottleneck
Growth bottleneckGrowth bottleneck
Growth bottleneck
 

Ähnlich wie Find the bottleneck of your system

Performance testing jmeter
Performance testing jmeterPerformance testing jmeter
Performance testing jmeter
Bhojan Rajan
 
performancetestingjmeter-121109061704-phpapp02
performancetestingjmeter-121109061704-phpapp02performancetestingjmeter-121109061704-phpapp02
performancetestingjmeter-121109061704-phpapp02
Gopi Raghavendra
 
performancetestingjmeter-121109061704-phpapp02 (1)
performancetestingjmeter-121109061704-phpapp02 (1)performancetestingjmeter-121109061704-phpapp02 (1)
performancetestingjmeter-121109061704-phpapp02 (1)
QA Programmer
 
Performancetestingjmeter 131210111657-phpapp02
Performancetestingjmeter 131210111657-phpapp02Performancetestingjmeter 131210111657-phpapp02
Performancetestingjmeter 131210111657-phpapp02
Nitish Bhardwaj
 
Jmeter Performance Testing
Jmeter Performance TestingJmeter Performance Testing
Jmeter Performance Testing
Atul Pant
 
Load Impact
Load Impact Load Impact
Load Impact
z-999
 

Ähnlich wie Find the bottleneck of your system (20)

Apache jMeter
Apache jMeterApache jMeter
Apache jMeter
 
Performance testing jmeter
Performance testing jmeterPerformance testing jmeter
Performance testing jmeter
 
apache_jmeter.pptx
apache_jmeter.pptxapache_jmeter.pptx
apache_jmeter.pptx
 
Performancetestingjmeter 121109061704-phpapp02
Performancetestingjmeter 121109061704-phpapp02Performancetestingjmeter 121109061704-phpapp02
Performancetestingjmeter 121109061704-phpapp02
 
JMeter
JMeterJMeter
JMeter
 
performancetestingjmeter-121109061704-phpapp02
performancetestingjmeter-121109061704-phpapp02performancetestingjmeter-121109061704-phpapp02
performancetestingjmeter-121109061704-phpapp02
 
performancetestingjmeter-121109061704-phpapp02 (1)
performancetestingjmeter-121109061704-phpapp02 (1)performancetestingjmeter-121109061704-phpapp02 (1)
performancetestingjmeter-121109061704-phpapp02 (1)
 
Perofrmance testing and apache jmeter
Perofrmance testing and apache jmeterPerofrmance testing and apache jmeter
Perofrmance testing and apache jmeter
 
Introduction to Prometheus and Cortex (WOUG)
Introduction to Prometheus and Cortex (WOUG)Introduction to Prometheus and Cortex (WOUG)
Introduction to Prometheus and Cortex (WOUG)
 
Testing - How Vital and How Easy to use
Testing - How Vital and How Easy to useTesting - How Vital and How Easy to use
Testing - How Vital and How Easy to use
 
Performancetestingjmeter 131210111657-phpapp02
Performancetestingjmeter 131210111657-phpapp02Performancetestingjmeter 131210111657-phpapp02
Performancetestingjmeter 131210111657-phpapp02
 
Integration testing - A&BP CC
Integration testing - A&BP CCIntegration testing - A&BP CC
Integration testing - A&BP CC
 
Jmeter Performance Testing
Jmeter Performance TestingJmeter Performance Testing
Jmeter Performance Testing
 
JMeter & ColdFusion
JMeter & ColdFusion JMeter & ColdFusion
JMeter & ColdFusion
 
Load Impact
Load Impact Load Impact
Load Impact
 
Performance testing and j meter
Performance testing and j meterPerformance testing and j meter
Performance testing and j meter
 
J Meter Intro
J Meter IntroJ Meter Intro
J Meter Intro
 
JMeter Intro
JMeter IntroJMeter Intro
JMeter Intro
 
OpenTelemetry For Architects
OpenTelemetry For ArchitectsOpenTelemetry For Architects
OpenTelemetry For Architects
 
Performance Tuning Oracle Weblogic Server 12c
Performance Tuning Oracle Weblogic Server 12cPerformance Tuning Oracle Weblogic Server 12c
Performance Tuning Oracle Weblogic Server 12c
 

Mehr von Jian-Hong Pan

Share the Experience of Using Embedded Development Board
Share the Experience of Using Embedded Development BoardShare the Experience of Using Embedded Development Board
Share the Experience of Using Embedded Development Board
Jian-Hong Pan
 
Let's Have an IEEE 802.15.4 over LoRa Linux Device Driver for IoT
Let's Have an IEEE 802.15.4 over LoRa Linux Device Driver for IoTLet's Have an IEEE 802.15.4 over LoRa Linux Device Driver for IoT
Let's Have an IEEE 802.15.4 over LoRa Linux Device Driver for IoT
Jian-Hong Pan
 

Mehr von Jian-Hong Pan (11)

國稅局,我也好想用電腦報稅
國稅局,我也好想用電腦報稅國稅局,我也好想用電腦報稅
國稅局,我也好想用電腦報稅
 
Share the Experience of Using Embedded Development Board
Share the Experience of Using Embedded Development BoardShare the Experience of Using Embedded Development Board
Share the Experience of Using Embedded Development Board
 
Package a PyApp as a Flatpak Package: An HTTP Server for Example @ PyCon APAC...
Package a PyApp as a Flatpak Package: An HTTP Server for Example @ PyCon APAC...Package a PyApp as a Flatpak Package: An HTTP Server for Example @ PyCon APAC...
Package a PyApp as a Flatpak Package: An HTTP Server for Example @ PyCon APAC...
 
Launch the First Process in Linux System
Launch the First Process in Linux SystemLaunch the First Process in Linux System
Launch the First Process in Linux System
 
Let's trace Linux Lernel with KGDB @ COSCUP 2021
Let's trace Linux Lernel with KGDB @ COSCUP 2021Let's trace Linux Lernel with KGDB @ COSCUP 2021
Let's trace Linux Lernel with KGDB @ COSCUP 2021
 
A Journey to Boot Linux on Raspberry Pi
A Journey to Boot Linux on Raspberry PiA Journey to Boot Linux on Raspberry Pi
A Journey to Boot Linux on Raspberry Pi
 
Have a Simple Modbus Server
Have a Simple Modbus ServerHave a Simple Modbus Server
Have a Simple Modbus Server
 
Software Packaging for Cross OS Distribution
Software Packaging for Cross OS DistributionSoftware Packaging for Cross OS Distribution
Software Packaging for Cross OS Distribution
 
Nasa Hackthon 2018 Light Wonder - Go! Polar Bear!
Nasa Hackthon 2018 Light Wonder - Go! Polar Bear!Nasa Hackthon 2018 Light Wonder - Go! Polar Bear!
Nasa Hackthon 2018 Light Wonder - Go! Polar Bear!
 
LoRaWAN class module and subsystem
LoRaWAN class module and subsystemLoRaWAN class module and subsystem
LoRaWAN class module and subsystem
 
Let's Have an IEEE 802.15.4 over LoRa Linux Device Driver for IoT
Let's Have an IEEE 802.15.4 over LoRa Linux Device Driver for IoTLet's Have an IEEE 802.15.4 over LoRa Linux Device Driver for IoT
Let's Have an IEEE 802.15.4 over LoRa Linux Device Driver for IoT
 

Kürzlich hochgeladen

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Kürzlich hochgeladen (20)

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 

Find the bottleneck of your system

  • 1. Find the Bottleneck of Your System Load / Stress Test with JMeter StarNight
  • 2. Who am I? 潘建宏 / Jian-Hong Pan (StarNight) About Me : http://about.me/StarNight 出沒在~ GitHub : starnight PTT : zack2004 plurk : StarNight Facebook : StarNight 目前繼續在種花店當個打雜園丁 ~
  • 3. 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
  • 4. 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. DB Server (Web AP) Clients Possible Bottleneck Possible Bottleneck Possible Bottleneck Possible Bottleneck Possible Bottleneck
  • 5. 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
  • 6. HTTP Request Header & Body we can see Secured HTTP Request Header & Body
  • 7. Even though the HTTP is encrypted, you still see the plain text in the browser
  • 8. ● 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)
  • 9. 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
  • 10. 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. DB Server (Web AP) Clients Super Node HTTP(S) Request HTTP(S) Response probe probe probe Flow Generator
  • 11. 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!
  • 12. 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
  • 13. UI Description Test 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
  • 14. Test Plan - Thread Group
  • 15. Test Plan - Test Script Recorder Browser JMeter Proxy Target Client X There are only HTTP requests and Response in the World Wide Web.
  • 16. Open a browser which will go through this proxy
  • 17. Test Plan - HTTP Request
  • 18. Test Plan - HTTP Cookie Manager Cookie - Session IETF: RFC 6265 / 8.4
  • 19. Test Plan - HTTP Request Defaults Variables Default Values
  • 20. 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 ...
  • 21. Test Plan - View Results Tree
  • 22. Test Plan - Summary Report
  • 24. Run the Test Plan
  • 25. Read Result - View Results Tree
  • 26. Read Result - Summary Report
  • 31. 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
  • 32. Use JMeter Ant addon 1. Download Apache Ant and install it 2. Add Ant’s directory into PATH 3. Use the command line: a. cd Apache JMeters’s extras directory b. 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:UsersjhpanDesktopapache-jmeter-2.13extras $ ant -Dtest=test -Dtestpath=C:UsersjhpanDesktop
  • 33.

Hinweis der Redaktion

  1. Session: IETF 6265 8.4. Session Identifiers