Fix error id must be a valid path component (Parameter id)
แก้ error maui เมื่อสร้างโปรเจ็กใหม่
เริ่มทำ Performance Testing
ปรับปรุงล่าสุด 29/10/2569
ปกติคำแนะนำก็คือใช้ K6 กัน แต่ถ้าอยากเลือก C# ก็เลือก NBomber ส่วนช่วงนี้เราชอบ C# ก็เลือกใช้ NBomber
| Metric | ความหมาย | สิ่งที่ต้องการ |
|---|---|---|
| Average | เวลาตอบกลับเฉลี่ย | ยิ่งน้อยยิ่งดี |
| p95 | 95% ของคำขอตอบกลับได้ภายในเวลานี้ | ยิ่งน้อยยิ่งดี |
| Error Rate | สัดส่วนคำขอที่ล้มเหลว | ใกล้ 0% |
Request per Second ต่อ 1 วินาที ยิงกี่ครั้ง เช่น
สูตรคือ เอา จำนวน Request / ระยะเวลา
ปริมาณข้อมูลทั้งหมดที่ระบบ (Client และ Server) รับส่งผ่านเครือข่ายต่อหนึ่งวินาที เป็นผลรวมของ:
| ระดับ | RPS | ระยะเวลา | จำนวน Requests โดยประมาณ |
|---|---|---|---|
| รอบที่ 1 | 1 | 30 วินาที | 30 |
| รอบที่ 2 | 2 | 30 วินาที | 60 |
| รอบที่ 3 | 3 | 30 วินาที | 90 |
| รอบที่ 4 | 4 | 30 วินาที | 120 |
แนะนำให้รัน แยกทีละรอบ และเพิ่มระดับเมื่อรอบก่อนหน้าไม่มี Error หรือสัญญาณว่า Server รับโหลดไม่ไหว
หลักการคือดูว่าเมื่อเพิ่ม RPS แล้วค่า p95 เพิ่มขึ้นมากแค่ไหน และเริ่มเกิด HTTP 429, 500, 502, 503 หรือ Timeout หรือไม่
| Metric | เกณฑ์เริ่มต้นสำหรับทดลอง |
|---|---|
| Average | บันทึกเปรียบเทียบแต่ละ RPS |
| p95 | เป้าหมายเบื้องต้นต่ำกว่า 1,000 ms |
| Error Rate | 0% |
| RPS | ทำได้ใกล้เคียงค่าที่ตั้ง |
| HTTP 429 / 5xx | ไม่ควรเกิด |
ค่า p95 ต่ำกว่า 1,000 ms เป็นเพียงเกณฑ์ทดลองที่ตั้งขึ้น ไม่ใช่มาตรฐานตายตัวของเว็บไซต์นี้ หาก Error เพิ่มขึ้นอย่างต่อเนื่องหรือเว็บเริ่มผิดปกติ ให้หยุดทดสอบทันที
เราจะรู้ว่า Server เริ่มรับโหลดไม่ไหวจาก พฤติกรรมที่เปลี่ยนไปเมื่อเพิ่ม RPS ครับ ไม่ใช่ดูแค่ว่า Server ตอบกลับ HTTP 500 หรือไม่
ตัวอย่างเช่น เว็บไซต์อาจรับ 50 RPS ได้สบาย แต่เมื่อเพิ่มเป็น 100 RPS เวลา Response เพิ่มจาก 100 ms เป็น 2,000 ms แม้ไม่มี Error เลย แบบนี้ก็ถือว่าเริ่มมีปัญหาแล้ว

| Target RPS | p95 | Error Rate | ประเมินเบื้องต้น |
|---|---|---|---|
| 1 | 110 ms | 0% | ปกติ |
| 5 | 115 ms | 0% | ปกติ |
| 10 | 130 ms | 0% | ปกติ |
| 20 | 160 ms | 0% | ปกติ |
| 30 | 350 ms | 0% | เริ่มช้าลง |
| 40 | 950 ms | 1% | ควรตรวจสอบ |
| 50 | 2,100 ms | 8% | เกินเกณฑ์ตัวอย่าง |