
มีโอกาสไปแบ่งปันเรื่อง Performance testing ใน
Performance Testing: Analysis, Design, Develop and Test in Action ที่ SCK Dojo
โดยมีหัวข้อที่แบ่งปันไปดังนี้
- การออกแบบการทดสอบ performance ของระบบจาก architecture
- เตรียมระบบ monitoring และ observability ต่าง ๆ ให้ครบถ้วน
- ตั้งสมมุติฐานในการทดสอบว่า มีเป้าหมายอย่างไร
- ทำการออกแบบรูปแบบของ workload หรือ (Load type) ว่าต้องการอย่างไร
- ทำการเขียน script ของการทดสอบด้วย Grafana K6
เริ่มจากการทำความรู้จักและเข้าใจ Architecture ของระบบงาน
ว่าเป็นอย่างไร
มีระบบ network อย่างไรบ้าง
จากนั้นวางระบบ monitoring และ observability ในส่วนต่าง ๆ ให้ครบ
เพื่อทำให้เราเข้าใจว่าตรงไหนของระบบมีปัญหา หรือ มีปัญหาคอขวด
เมื่อทำการทดสอบ performance นั่นเอง
จะดูเพียง report จาก test tool อย่างเดียวไม่เพียงพอ
แสดงดังรูป

ต่อมาทำความเข้าใจกับ Workload เพื่อสร้าง Virtual User (VU) ตามความต้องการ
โดยประกอบไปด้วยรูปแบบต่าง ๆ ดังนี้
- Smoke test
- Average-load test
- Stress test
- Spike test
- Breakpoint test
- Soak test
แสดงดังรูป

จากนั้นก็เริ่มทำการติดตั้งและเขียน test script ด้วย Grafana K6
โดย script ของ K6 นั้นเขียนด้วยภาษา JavaScript
ประกอบไปด้วยส่วนการทำงาน 2 ส่วนหลัก คือ
- รูปแบบของการทดสอบ ไม่ว่าจะเป็น HTTP หรือ Web browser
- รูปแบบของ work load
ตัวอย่างเช่น
ทำการ run โดยเปิด K6 dashboard ไปด้วย
K6_WEB_DASHBOARD=true k6 run load01.js
แต่ในการทำงานจริง ๆ นั้น มีการทดสอบหลายเครื่อง หรือ หลายระบบ
จึงจำเป็นต้องเอา report มาแสดงไว้ตรงกลางแบบ near-realtime
ซึ่ง K6 มีให้ใช้งานหลายรูปแบบตามความชอบได้เลย
- InfluxDB + Grafana
- Prometheus + Grafana
- ELK stack
ลองใช้งานกันดูครับ
ควรต้องคิด วางแผนไว้ก่อนเสมอ