วิธีทำ Load Testing ระบบด้วย Apache JMeter หรือ k6

Sharing is caring!

บทนำ

ก่อนที่ระบบจะเปิดให้ผู้ใช้เข้าใช้งานจริง สิ่งสำคัญอย่างหนึ่งที่ควรทำคือการ 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

เลือกเครื่องมือไหนดี?

คุณสมบัติJMeterk6
ใช้งานผ่าน 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

Leave a Reply

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *