jMeter101
-
Upload
somkiat-puisungnoen -
Category
Technology
-
view
1.310 -
download
2
description
Transcript of jMeter101
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
Server สง่ขอ้มลูกลบัมา
jMeter บนัทกึขอ้มลู
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
bugday2013bugdefectincident
ตวัอยา่ง CSV file
user1,password1user2,password2user3,password3user4,password4user5,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
jMeter Summary
127.0.0.1 192.168.1.10 192.168.1.11
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 ตอ่จาก :setCPSTART "%JAVA_HOME%\jre\bin\rmiregistry"
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