JMeter #01: การสร้าง Load Test เบื้องต้น

Apache JMeter เป็น Open Source Software ที่พัฒนาด้วย Java 100% ออกแบบมาใช้สำหรับการทดสอบโหลดของพฤติกรรมการใช้งาน และวัดประสิทธิภาพ เดิมใช้เพื่อทดสอบ Web Application แต่ปัจจุบันสามารถใช้งานทดสอบได้หลากหลายขึ้นด้วย

อ่านเพิ่มเติม: http://jmeter.apache.org/index.html

บทความที่เกี่ยวข้อง: https://sysadmin.psu.ac.th/?s=jmeter

ในการใช้งานทั่วไปเบื้องต้น สามารถอ่านได้จาก การติดตั้งโปรแกรมตรวจสอบประสิทธิภาพ Server : Apache JMeter บนเครื่อง Windows

 

การวัดประสิทธิภาพ (Performance Test) [1] แบ่งออกเป็น

  1. Performance Testing
  2. Load Testing
  3. Stress Testing

ในที่นี้จะใช้ JMeter ในการทำ Load Testing โดยจะทดสอบ Web Application ตามเป้าหมายต่อไปนี้

  • ทดสอบกับ Web Page ที่ตั้งไว้ ซึ่งประกอบด้วยภาพจำนวนมาก
  • จำนวน Connection ต่อวินาที ในระดับต่างๆ
  • ในแต่ระดับ จะมีหยุดรอ 10 วินาที ก่อนจะยกระดับที่สูงขึ้น

ขั้นตอนการใช้งาน JMeter สร้าง Load Testing

  1. เนื่องจากการทดสอบจะยิงไปที่ Web Page เดียวกันตลอด จึงสร้าง HTTP Request Default เพื่อให้ง่ายต่อการเปลี่ยนแปลง
    โดยคลิกขวาที่ Test Pane เลือก Add > Config Element > HTTP Request Default
  2. ใน HTTP Request Default กรอก
    Server Name or IP
    Port Number
    Path ตามต้องการ
    เช่น ต้องการทดสอบ http://192.168.107.107:80/wordpress/?p=4
  3. คลิกขวาที่ Test Plan เลือก Add > Threads (Users) > Thread Group
  4. กรอก Name และ Number of Threads (users)
    ในตัวอย่างนี้ ตั้งค่า Number of Threads (users) เป็น 10 และ Ramp-Up Period (in seconds) เป็น 1 เพราะต้องการให้ทดสอบระบบว่า เมื่อ มีผู้ใช้ใช้งานพร้อมกัน 10 คนในวินาทีเดียวกันนั้น ระบบจะตอบสนองอย่างไร
  5. คลิกขวาที่ Thread Group นี้ (ตอนนี้จะเปลี่ยนชื่อจาก Thread Group เป็น 10 แล้ว) แล้วเลือก Add > Sampler > Http Request
  6. ในส่วนนี้ ไม่ต้องแก้ไขอะไร โดย JMeter จะไปเอาค่าที่ตั้งไว้ใน HTTP Request Default ข้างต้นมาใช้
  7. ต่อไป เป็นส่วนของการแสดงผล
    คลิกขวาที่ Test Plan เลือก Add > Listener > Summary Report
  8. ต่อไป ใส่ Timer เพื่อให้ระบบ หยุดพักการทดสอบ เมื่อทำแต่ละ Thread Group เสร็จ เป็นเวลา 10 วินาที ก่อนจะเริ่ม Thread Group ต่อไป
    คลิกขวาที่ Test Plan เลือก Add > Timer > Constant Timer 
    แล้วใส่ค่า 10000 milliseconds หรือ 10 วินาที
  9. Save บ้าง อะไรบ้าง
  10. ในที่นี้ ต้องการทดสอบที่ 10 Users แล้วไป 20 Users ไป จนกระทั่ง 100 Users
    ก็ให้ทำการ Duplicate ตัว Thread Group ที่ชื่อ 10 ขึ้นมา

    ล้วแก้ Name กับ Number of Threads (users) เป็น 20

    แล้วทำซ้ำไปเรื่อยๆ จนได้จำนวนที่ต้องการ (เช่น 10 ถึง 100 เป็นต้น)
  11. สุดท้าย ทำการกำหนดให้ JMeter ทำงานทีละ Thread ตามลำดับ
    โดยการ คลิกที่ Test Plan
    แล้ว เลือก Run Thread Groups consecutively (i.e.run groups one at a time)
  12. ต่อไปก็ทำการทดสอบ
    ให้คลิก Summary Report
    เลือก Include group name in label
    แล้วคลิกปุ่ม Run
  13. ก็จะได้รายงานผล

    สามารถ Save Table Data เป็น .csv

    เอาไป Plot Graph ให้สวยงามได้

Reference:

[1] https://msdn.microsoft.com/en-us/library/bb924356.aspx