SlideShare une entreprise Scribd logo
1  sur  61
Télécharger pour lire hors ligne
jMeter 101


     @somkiat
-- สยามชํานาญกิจ --
jMeter
● เครืองมือช่วยทํา Load test และ
  วัดประสิทธิภาพการทํางานของ service ต่างๆ
● เน ้นการทดสอบ Web application
● Multi-Threading
● พัฒนาด ้วยภาษา Java
● ฟรี
● Open source
● http://jmeter.apache.org/
ความสามารถอืนๆ ของ jMeter
● สามารถทํา Unit testing ของส่วนต่างๆ ได ้
   ○   JDBC
   ○   FTP
   ○   LDAP
   ○   Web service
   ○   JMS
   ○   Mail => SMTP, POP3, IMAP
   ○   HTTP, HTTPS
   ○   TPC
สามารถทําอะไรก ับ jMeter ได้บาง
                             ้

● ใช ้สําหรับการทดสอบระบบ
  ○   Load testing
  ○   Performance testing
  ○   Availability testing
  ○   Functional testing
● Monitor ระบบ
  ○   Database
  ○   Web server
  ○   FTP
  ○   ...
การทํางานของ jMeter
● จําลองกลุมของผู ้ใช ้งานระบบ
           ่
● ส่ง request ไปยัง server
● บันทึกผลการ return จาก server
  เพือแสดงประสิทธิภาพการทํางาน
● แสดงผลด ้วยภาพ เช่น Graph เป็ นต ้น
การทํางานของ jMeter

                          สร้าง request
เริมต้น                   เพือส่งไปย ัง                       จบการทํางาน
                          server




          jMeter
                                           Server             แสดงผลการ
    ทําการรวบรวมข้อมูล
                                           ส่งข้อมูลกล ับมา   ทํางาน
    เพือสรุปผลทางสถิต ิ




                               jMeter
                           บ ันทึกข้อมูล
เริมต้นการใช้งาน
●   Download จาก http://jmeter.apache.org
●   Extract file
●   Go to folder /bin
●   Run jmeter.bat/.sh
ผลการทํางาน
องค์ประกอบของ jMeter
●   Test plan
●   Thread Group
●   Controller
●   Sampler
●   Listerner
●   Timmer
●   Assertion
●   Configuration
●   Pre-processor element
●   Post-processor element
Test Plan
● กําหนดลําดับการทํางานของ process ต่างๆ
● ประกอบไปด ้วย
  ○   Thread Group
  ○   Controller
  ○   Listener
  ○   Timer
  ○   Assertion
  ○   Configuration
Thread Group
● จุดเริมต ้นการทํางานของแต่ละ Test Plan
● ประกอบไปด ้วย
   ○ Controller
   ○ Sampler
● ข ้อมูลทีต ้องกําหนด
   ○ Number of thread
   ○ Ramp-up period
   ○ Loop count
Thread Group
รายละเอียดของ Thread Group
Configuration
● ทําการกําหนดค่าเริมต ้นต่างๆ เช่น
   ○ HTTP Request Default
     ■ กําหนดค่าเริมต ้นของ HTTP Request เช่น url ของ
       server
     ■ ไม่ได ้ทําหน ้าทีสร ้าง Request
   ○ CSV Data Set Config
   ○ HTTP Cache Manager
   ○ HTTP Cookie Manager
   ○ HTTP Header Manager
   ○
HTTP Request Default
● เลือก Thread Group
● click ขวา
● เลือกเมนู
  ○ Add -> Config Element -> HTTP Request Default
HTTP Request Default
HTTP Request Default
Sampler
● ส่วนการทํางานจริงของ jMeter
● สร ้าง Request ต่างๆ เพือให ้ได ้ผลทีต ้องการ
● ตัวอย่างเช่น
   ○ HTTP Request
   ○ FTP Request
   ○ JDBC Request
HTTP Request
● กําหนดค่าต่างๆ ของ Request นันๆ
  ○ Path
  ○ Protocol
  ○ Encoding
  ○ HTTP Method
    ■ GET
    ■ POST
    ■ HEAD
    ■ PUT
  ○ Parameters
HTTP Request
● เลือก Thread Group
● click ขวา
● เลือกเมนู
  ○ Add -> Sampler -> HTTP Request
HTTP Request
HTTP Request
Listener
● ทําหน ้าทีบันทึกข ้อมูลของผลการทํางาน เช่น
  ข ้อมูลจาก HTTP Request ลง file
● แสดงผลการทํางานในรูปแบบ vistualization
● ตัวอย่าง
   ○   Graph Result
   ○   View Result in Table
   ○   Summary Report
   ○   Aggregate Graph
   ○   Aggregate Report
Graph Result
●   แสดงผลการทํางานในรูปแบบ Graph
●   จะสร ้าง graph ในรูปแบบง่ายๆ
●   สามารถบันทึกลง file ทีต ้องการได ้
●   แสดงค่าต่างๆ ทาง สถิต ิ เช่น Average, Median

ข้อควรระว ัง
ไม่ควรใช ้งานในการทํา Load testing เพราะว่าใช ้งาน
CPU มากๆๆๆๆ
Graph Result
● เลือก Thread Group
● click ขวา
● เลือกเมนู
  ○ Add -> Listener -> Graph Result
Graph Result
Graph Result
สงให้ทางาน
 ั    ํ
ผลการทํางานในรูปแบบ Graph Result
ผลการทํางานในรูปแบบ Result in Table
ผลการทํางานในรูปแบบ Aggregate graph
TODO :: Google Test Plan
● Step
  ○   Create Test Plan
  ○   Create Thread Group
  ○   Create HTTP Request Default
  ○   Create HTTP Request
  ○   Create Listener ( Report )
  ○   Run ...
TODO :: Search Google Test Plan
● Step
  ○ Create Test Plan
  ○ Create Thread Group
  ○ Config Element
    ■ HTTP Cookie Manager
    ■ HTTP Header Manager
  ○ Create HTTP Request Default
  ○ Create HTTP Request
  ○ Create Listener ( Report )
  ○ Run ...
เฉลย
● https://github.com/up1/jMeter101/
  ○ Google.jmx
การ import ข้อมูลจาก CSV file
● เลือก Thread Group
● click ขวา
● เลือกเมนู
  ○ Add -> Config Element -> CSV Data Set Config
การ import ข้อมูลจาก CSV file
การ import ข้อมูลจาก CSV file
การกําหนด parameter ต่างๆ
●   File name
●   File Encoding
●   Variable Names
●   Delimiter
●   Allow quote data
●   Share mode
การ import ข้อมูลจาก CSV file
ต ัวอย่าง CSV file
bugday2013
bug
defect
incident
ต ัวอย่าง CSV file
user1,password1
user2,password2
user3,password3
user4,password4
user5,password5
การอ้างถึง Variable จาก Data Set
● ${variable_name}
การอ้างถึง Variable จาก Data Set
TODO :: Search Google + CSV
● Step
  ○ Create Test Plan
  ○ Create Thread Group
  ○ Create Data set CSV
    ■ keyword.csv
  ○ Create config element => CSV
  ○ Create HTTP Request Default
  ○ Create HTTP Request
  ○ Create Listener ( Report )
  ○ Run ...
TODO :: Login Test Plan
● Step
  ○ Create Test Plan
  ○ Create Thread Group
  ○ Create Data set CSV
    ■ userprofile.csv
  ○ Create config element => CSV
  ○ Create HTTP Request Default
  ○ Create HTTP Request
  ○ Create Listener ( Report )
  ○ Run ...
เฉลย
● https://github.com/up1/jMeter101/
  ○ LoadDataFromCSV.jmx
  ○ userprofile.csv
Batch process with jMeter ( Non-GUI )


        jmeter -n -t <Google.jmx>


          -n = Run with Non-GUI mode
         -t = กําหนด file jmx ( Test plan )
jMeter Distributed Testing

    127.0.0.1     192.168.1.10   192.168.1.11




                    jMeter
                   Summary




   192.168.1.10   192.168.1.10   192.168.1.10
Step to config (1)
● เพิมการ Start RMI Registry ของ server ต่างๆ
  ใน file jmeter-server.bat

เพิม RMI Registry ต่อจาก :setCP
START "%JAVA_HOME%
jrebinrmiregistry"
Step to config (2)
● Start RMI Registry ของ server ต่างๆ ใน file
  jmeter-server.bat

               jmeter-server
Step to config (3)
● เพิม Remote server ใน file jmeter.properties

remote_hosts=127.0.0.1, 192.168.1.10,
192.168.1.11, 192.168.1.12, 192.168.1.13,
192.168.1.14
Step to config (4)
● เปิ ดโปรแกรม jMeter ขึนมา เพือดู Remote host
Step to config (5)
● Run !!
ผลการทํางาน
ข้อเสีย
●   มีความซับซ ้อน
●   GUI ค่อนข ้างสับสน
●   ยากต่อผู ้เริมต ้นใช ้งาน
●   Report ห่วย
ข้อดี
● สําหรับคนทีเขียน Code เป็ น
   ○ สามารถเขียน plugin เพือขยายความสามารถได ้
ข้อดี
● สําหรับคนทีเขียน Code ไม่เป็ น
   ○ http://code.google.com/p/jmeter-plugins/
Resources
● http://jmeter.apache.
  org/usermanual/component_reference.html
● http://jmeter.apache.org/usermanual/build-
  web-test-plan.html
● http://jmeter.apache.org/usermanual/build-
  adv-web-test-plan.html
TODO :: Register Test Plan
● Step
  ○ Create Test Plan
  ○ Create Thread Group
  ○ Create Data set CSV
    ■ user_register.csv
  ○ Create config element => CSV
  ○ Create HTTP Request Default
  ○ Create HTTP Request
  ○ Create Listener ( Report )
  ○ Run ...
TODO :: Information
● Server IP = http://119.59.97.9/
● Parameters ( Visible )
  ○   Firstname
  ○   Lastname
  ○   Company
  ○   Position
  ○   Phone
● HTTP Post method
เฉลย
● https://github.com/up1/jMeter101/
  ○ Agile Singapore 2013.jmx
  ○ user_register.csv

Contenu connexe

En vedette

2014 02-18 drake univ faculty forum
2014 02-18 drake univ faculty forum2014 02-18 drake univ faculty forum
2014 02-18 drake univ faculty forumBruce Gilbert
 
หนึ่ง สอง Automate
หนึ่ง สอง Automateหนึ่ง สอง Automate
หนึ่ง สอง AutomateSomkiat Puisungnoen
 
Rabobank Outlook2012
Rabobank Outlook2012Rabobank Outlook2012
Rabobank Outlook2012ramlal1974
 
InterPARES 2: Система принципов для разработки политик, стратегий и стандарто...
InterPARES 2: Система принципов для разработки политик, стратегий и стандарто...InterPARES 2: Система принципов для разработки политик, стратегий и стандарто...
InterPARES 2: Система принципов для разработки политик, стратегий и стандарто...Natasha Khramtsovsky
 
Deans-textbook-alternatives
Deans-textbook-alternativesDeans-textbook-alternatives
Deans-textbook-alternativesBruce Gilbert
 
Межведомственный электронный документооборот: отечественный и зарубежный опыт
Межведомственный электронный документооборот: отечественный и зарубежный опытМежведомственный электронный документооборот: отечественный и зарубежный опыт
Межведомственный электронный документооборот: отечественный и зарубежный опытNatasha Khramtsovsky
 
Powerpoint Presentation On Animated Flipbook Ryan Mcginty D D07064
Powerpoint Presentation On Animated Flipbook Ryan Mcginty  D D07064Powerpoint Presentation On Animated Flipbook Ryan Mcginty  D D07064
Powerpoint Presentation On Animated Flipbook Ryan Mcginty D D07064jaspang
 
มาเขียนโค้ดแย่ๆ กันเถอะ
มาเขียนโค้ดแย่ๆ กันเถอะมาเขียนโค้ดแย่ๆ กันเถอะ
มาเขียนโค้ดแย่ๆ กันเถอะSomkiat Puisungnoen
 
Pandrade Powerpoint
Pandrade PowerpointPandrade Powerpoint
Pandrade Powerpointjaspang
 
PROEXPOSURE spotlight: Yenenesh Abraham
PROEXPOSURE spotlight: Yenenesh AbrahamPROEXPOSURE spotlight: Yenenesh Abraham
PROEXPOSURE spotlight: Yenenesh AbrahamPROEXPOSURE CIC
 
Photo Album Cunningham
Photo Album CunninghamPhoto Album Cunningham
Photo Album CunninghamMarcus Banks
 
Innovation Union Atlas 2011
Innovation Union Atlas 2011Innovation Union Atlas 2011
Innovation Union Atlas 2011teknoport
 

En vedette (17)

2014 02-18 drake univ faculty forum
2014 02-18 drake univ faculty forum2014 02-18 drake univ faculty forum
2014 02-18 drake univ faculty forum
 
หนึ่ง สอง Automate
หนึ่ง สอง Automateหนึ่ง สอง Automate
หนึ่ง สอง Automate
 
Rabobank Outlook2012
Rabobank Outlook2012Rabobank Outlook2012
Rabobank Outlook2012
 
InterPARES 2: Система принципов для разработки политик, стратегий и стандарто...
InterPARES 2: Система принципов для разработки политик, стратегий и стандарто...InterPARES 2: Система принципов для разработки политик, стратегий и стандарто...
InterPARES 2: Система принципов для разработки политик, стратегий и стандарто...
 
Deans-textbook-alternatives
Deans-textbook-alternativesDeans-textbook-alternatives
Deans-textbook-alternatives
 
Imparare è...
Imparare è...Imparare è...
Imparare è...
 
Brandon
BrandonBrandon
Brandon
 
Межведомственный электронный документооборот: отечественный и зарубежный опыт
Межведомственный электронный документооборот: отечественный и зарубежный опытМежведомственный электронный документооборот: отечественный и зарубежный опыт
Межведомственный электронный документооборот: отечественный и зарубежный опыт
 
Powerpoint Presentation On Animated Flipbook Ryan Mcginty D D07064
Powerpoint Presentation On Animated Flipbook Ryan Mcginty  D D07064Powerpoint Presentation On Animated Flipbook Ryan Mcginty  D D07064
Powerpoint Presentation On Animated Flipbook Ryan Mcginty D D07064
 
Educatie voor duurzame ontwikkeling
Educatie voor duurzame ontwikkelingEducatie voor duurzame ontwikkeling
Educatie voor duurzame ontwikkeling
 
มาเขียนโค้ดแย่ๆ กันเถอะ
มาเขียนโค้ดแย่ๆ กันเถอะมาเขียนโค้ดแย่ๆ กันเถอะ
มาเขียนโค้ดแย่ๆ กันเถอะ
 
Faure learning tobe
Faure learning tobeFaure learning tobe
Faure learning tobe
 
Lab van Troje (Dries Gysels)
Lab van Troje (Dries Gysels)Lab van Troje (Dries Gysels)
Lab van Troje (Dries Gysels)
 
Pandrade Powerpoint
Pandrade PowerpointPandrade Powerpoint
Pandrade Powerpoint
 
PROEXPOSURE spotlight: Yenenesh Abraham
PROEXPOSURE spotlight: Yenenesh AbrahamPROEXPOSURE spotlight: Yenenesh Abraham
PROEXPOSURE spotlight: Yenenesh Abraham
 
Photo Album Cunningham
Photo Album CunninghamPhoto Album Cunningham
Photo Album Cunningham
 
Innovation Union Atlas 2011
Innovation Union Atlas 2011Innovation Union Atlas 2011
Innovation Union Atlas 2011
 

Similaire à jMeter101 (20)

Ch07 bind9-part2
Ch07 bind9-part2Ch07 bind9-part2
Ch07 bind9-part2
 
การเขียนโปรแกรมโดยใช้NetBeans และ การสร้าง App Android
การเขียนโปรแกรมโดยใช้NetBeans และ การสร้าง App Androidการเขียนโปรแกรมโดยใช้NetBeans และ การสร้าง App Android
การเขียนโปรแกรมโดยใช้NetBeans และ การสร้าง App Android
 
Server2Go เว็บพกพาตัวจริง
Server2Go เว็บพกพาตัวจริงServer2Go เว็บพกพาตัวจริง
Server2Go เว็บพกพาตัวจริง
 
Red5 workshop
Red5 workshopRed5 workshop
Red5 workshop
 
Dw ch08 display_records
Dw ch08 display_recordsDw ch08 display_records
Dw ch08 display_records
 
คู่มือ Joomla
คู่มือ Joomlaคู่มือ Joomla
คู่มือ Joomla
 
Joomla
JoomlaJoomla
Joomla
 
Hotspotubuntu8
Hotspotubuntu8Hotspotubuntu8
Hotspotubuntu8
 
Ch10 web servers
Ch10 web serversCh10 web servers
Ch10 web servers
 
Chapter 2 data
Chapter 2 dataChapter 2 data
Chapter 2 data
 
Iis7on microsoftwindows2008
Iis7on microsoftwindows2008Iis7on microsoftwindows2008
Iis7on microsoftwindows2008
 
ณหทัย ซอเฮง รหัส 56170219
ณหทัย ซอเฮง รหัส 56170219ณหทัย ซอเฮง รหัส 56170219
ณหทัย ซอเฮง รหัส 56170219
 
Portable Moodle : Moodle & Server2Go
Portable Moodle  : Moodle & Server2GoPortable Moodle  : Moodle & Server2Go
Portable Moodle : Moodle & Server2Go
 
Ch08 mail-systems
Ch08 mail-systemsCh08 mail-systems
Ch08 mail-systems
 
Gisเป้
Gisเป้Gisเป้
Gisเป้
 
Ch12 web-app-part2
Ch12 web-app-part2Ch12 web-app-part2
Ch12 web-app-part2
 
Setup project (csharp)
Setup project (csharp)Setup project (csharp)
Setup project (csharp)
 
Cent os
Cent osCent os
Cent os
 
56170171
5617017156170171
56170171
 
56170253
5617025356170253
56170253
 

Plus de Somkiat Puisungnoen (20)

Next of Java 2022
Next of Java 2022Next of Java 2022
Next of Java 2022
 
Sck spring-reactive
Sck spring-reactiveSck spring-reactive
Sck spring-reactive
 
Part 2 :: Spring Boot testing
Part 2 :: Spring Boot testingPart 2 :: Spring Boot testing
Part 2 :: Spring Boot testing
 
vTalk#1 Microservices with Spring Boot
vTalk#1 Microservices with Spring BootvTalk#1 Microservices with Spring Boot
vTalk#1 Microservices with Spring Boot
 
Lesson learned from React native and Flutter
Lesson learned from React native and FlutterLesson learned from React native and Flutter
Lesson learned from React native and Flutter
 
devops
devops devops
devops
 
Angular :: basic tuning performance
Angular :: basic tuning performanceAngular :: basic tuning performance
Angular :: basic tuning performance
 
Shared code between projects
Shared code between projectsShared code between projects
Shared code between projects
 
Distributed Tracing
Distributed Tracing Distributed Tracing
Distributed Tracing
 
Manage data of service
Manage data of serviceManage data of service
Manage data of service
 
RobotFramework Meetup at Thailand #2
RobotFramework Meetup at Thailand #2RobotFramework Meetup at Thailand #2
RobotFramework Meetup at Thailand #2
 
Visual testing
Visual testingVisual testing
Visual testing
 
Cloud Native App
Cloud Native AppCloud Native App
Cloud Native App
 
Wordpress for Newbie
Wordpress for NewbieWordpress for Newbie
Wordpress for Newbie
 
Sck Agile in Real World
Sck Agile in Real WorldSck Agile in Real World
Sck Agile in Real World
 
Clean you code
Clean you codeClean you code
Clean you code
 
SCK Firestore at CNX
SCK Firestore at CNXSCK Firestore at CNX
SCK Firestore at CNX
 
Unhappiness Developer
Unhappiness DeveloperUnhappiness Developer
Unhappiness Developer
 
The Beauty of BAD code
The Beauty of  BAD codeThe Beauty of  BAD code
The Beauty of BAD code
 
React in the right way
React in the right wayReact in the right way
React in the right way
 

jMeter101