บทนำ
ก่อนที่ระบบจะเปิดให้ผู้ใช้เข้าใช้งานจริง สิ่งสำคัญอย่างหนึ่งที่ควรทำคือการ Load Testing เพื่อดูว่าระบบสามารถรองรับผู้ใช้งานจำนวนมากได้หรือไม่ โดยเครื่องมือยอดนิยมที่ใช้กันแพร่หลายคือ Apache JMeter และ k6
ในบทความนี้เราจะอธิบายความแตกต่าง วิธีการใช้งาน และตัวอย่างจริงที่คุณสามารถนำไปทดลองได้ทันที
Load Testing คืออะไร?
Load Testing คือการจำลองการใช้งานของผู้ใช้จำนวนมากเพื่อดูว่า Server หรือระบบ Backend ของเราจะสามารถรองรับภาระการใช้งานได้มากแค่ไหน
- 🔍 ตรวจสอบการทำงานเมื่อมี traffic สูง
- 📉 ค้นหาคอขวด (bottleneck) ของระบบ
- 🛡️ ป้องกันระบบล่มเมื่อผู้ใช้ใช้งานพร้อมกัน
Apache JMeter
JMeter เป็นเครื่องมือที่พัฒนาโดย Apache Foundation ใช้งานง่ายด้วย GUI และสามารถรันแบบ CLI เพื่อใช้งานใน CI/CD ได้
ติดตั้ง JMeter
# ดาวน์โหลดจากเว็บไซต์ https://jmeter.apache.org/download_jmeter.cgi # แตก zip และรัน ./bin/jmeter.sh
ภาพหน้าจอ UI

ฟีเจอร์เด่น
- กำหนดจำนวน Threads (ผู้ใช้จำลอง)
- รองรับ HTTP, FTP, JDBC, SOAP, REST
- สามารถแสดงกราฟผลลัพธ์แบบ real-time
ตัวอย่างโครงสร้าง
- Thread Group → 100 Users
- HTTP Request → ไปยัง API
- View Results Tree → ดูผลลัพธ์
k6: Load Testing แบบ Dev Friendly
k6 เป็น CLI tool สำหรับทำ Load Test ด้วยการเขียนสคริปต์ด้วย JavaScript เหมาะกับนักพัฒนายุคใหม่
ติดตั้ง k6
brew install k6 # macOS choco install k6 # Windows sudo apt install k6 # Ubuntu
เขียน Script Load Test ด้วย JS
// script.js import http from 'k6/http'; import { sleep } from 'k6'; export let options = { vus: 50, duration: '30s', }; export default function () { http.get('https://example.com/api/products'); sleep(1); }
รันเทสต์
k6 run script.js
ผลลัพธ์
running (30.0s), 50/50 VUs, 1500 complete and 0 interrupted http_reqs................: 1500 50.000000/s http_req_duration........: avg=245ms min=90ms max=530ms
เลือกเครื่องมือไหนดี?
คุณสมบัติ | JMeter | k6 |
---|---|---|
ใช้งานผ่าน GUI | ✅ | ❌ |
ใช้งานผ่าน CLI | ✅ | ✅ |
รองรับ scripting | น้อย | JavaScript เต็มรูปแบบ |
เหมาะกับ Dev | กลาง | สูง |
Integration CI/CD | ดี | ยอดเยี่ยม |
เทคนิค Load Test อย่างมืออาชีพ
- กำหนดค่า Ramp-up ให้เหมือนจริง เช่น เพิ่มผู้ใช้จาก 0 → 100 ใน 1 นาที
- ทดสอบหลาย scenario เช่น Login, Browse, Checkout
- ทดสอบ API แบบ Authenticated ด้วย Token
- เก็บผลลัพธ์เป็น JSON/CSV เพื่อวิเคราะห์ต่อ
สรุป
การทำ Load Testing เป็นสิ่งสำคัญที่ไม่ควรละเลยเมื่อคุณสร้างระบบขนาดใหญ่หรือหวังให้มีผู้ใช้จำนวนมาก JMeter เหมาะกับ QA หรือผู้ที่ชอบ GUI ส่วน k6 เหมาะกับนักพัฒนา DevOps หรือการรันใน CI/CD
บทความนี้ใช้เวลาอ่าน 10–15 นาที เขียนโดยทีมงาน poolsawat.com