มีโอกาสไปแบ่งปันเรื่อง 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

ลองใช้งานกันดูครับ
ควรต้องคิด วางแผนไว้ก่อนเสมอ