Screen Shot 2558-06-11 at 6.19.51 PM
วันที่ 10 และ 11 มิถุนายน 2558 ได้มีโอกาสไปแบ่งปันความรู้
เรื่อง Performance testing with Apache jMeter ที่ NECTEC
โดยสามารถสรุปสิ่งที่นำไปแบ่งปันได้ดังนี้

1. สรุปความรู้ความเข้าใจเกี่ยวกับ performance testing

ซึ่งมันสามารถแบ่งออกได้หลายประเภท
ตามความต้องการ และ เป้าหมายของการทดสอบ เช่น

  • Load testing
  • Endurance testing
  • Stress testing
  • Spike testing
  • Volume testing
  • Capacity testing
  • Scalable testing

แต่ส่วนใหญ่จะเรียกรวมๆ ว่า performance testing !!

รวมทั้งการทดสอบนั้นไม่ควรจะทดสอบหลังจากที่พัฒนาระบบงานเสร็จนะ
เพราะพบว่า ถึงจะทำ performance test ไป
จะได้ผลอย่างไรก็ตาม ก็จะไม่มีการแก้ไขอยู่แล้ว
เนื่องจากมันใกล้ dead line ของการส่งมอบ !!

ดังนั้น ควรทำการทดสอบให้บ่อยที่สุดเท่าที่จะทำได้
เพื่อให้เรารู้ว่า มีปัญหาอะไรที่ต้องทำการแก้ไข
แต่การทดสอบต้องมีเป้าหมาย มีตัวเลขต่างๆ ชัดเจน และ เชื่อถือได้
ไม่เช่นนั้น มันก็เหมือนการโยน load เข้าไปยังระบบ
เพื่อรอดูผลเท่านั้น … ซึ่งมันไม่ช่วยอะไรเลย

2. ความรู้พื้นฐานของ Apache jMeter

อธิบายโครงสร้างต่างๆ ที่สำคัญของ jMeter
พร้อมทั้งทำ workshop ต่างๆ เพื่อให้เข้าใจการทำงาน
ในครั้งนี้ workshop อาจจะน้อยไปหน่อย …
คราวหน้าจะให้เยอะกว่านี้

โดย feature ที่แนะนำไปนั้นประกอบไปด้วย

  • การทำ functional testing ด้วยการ record ผ่าน HTTP proxy ซึ่งทำให้การสร้าง test script ง่าย และ สะดวกขึ้น
  • การใช้งานผ่าน GUI และ non-GUI
  • การใช้งาน Parameterization สำหรับการทดสอบด้วยข้อมูลเยอะๆ
  • การทดสอบระบบ Web application

3. แนะนำและทำ workshop เรื่อง Remote testing หรือ Distributed testing

โดยครั้งนี้ทาง NECTEC ได้นำเครื่อง server และ ระบบมาให้ทดสอบกันจริงๆ เลย
ผลที่ได้ออกมามันสนุกสนานมากๆ
ตรงตามเป้าหมายคือ สามารถทำให้ CPU ร้อน พัดลมเสียงดัง
และ CPU ทำงาน 90% ขึ้นไปทุกตัว แสดงดังรูป
11393234_10153400690653588_3786433304618442921_n

4. ปิดท้ายด้วยเรื่อง Continuous Integration

เป็นแนวปฏิบัติที่ทีมพัฒนา software ทุกๆ ทีม
ควรที่จะรู้และเข้าใจ รวมทั้งนำมาปฏิบัติ และ ใช้งานด้วย
โดยสิ่งที่นำมาใช้ในการสร้างระบบ Continuous Integration ประกอบไปด้วย

  • Jenkins
  • Git และ Github
  • jMeter
  • Performance test plugin ใน Jenkins

โดยได้ผลของระบบดังนี้
Screen Shot 2558-06-11 at 6.35.44 PM

ขอขอบคุณสำหรับโอกาสในการแบ่งปันครับ