วันที่ 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% ขึ้นไปทุกตัว แสดงดังรูป
4. ปิดท้ายด้วยเรื่อง Continuous Integration
เป็นแนวปฏิบัติที่ทีมพัฒนา software ทุกๆ ทีม
ควรที่จะรู้และเข้าใจ รวมทั้งนำมาปฏิบัติ และ ใช้งานด้วย
โดยสิ่งที่นำมาใช้ในการสร้างระบบ Continuous Integration ประกอบไปด้วย
- Jenkins
- Git และ Github
- jMeter
- Performance test plugin ใน Jenkins
โดยได้ผลของระบบดังนี้
ขอขอบคุณสำหรับโอกาสในการแบ่งปันครับ