ข้ามไปที่เนื้อหาหลัก

การทำ Performance Testing ด้วย Postman

Performance Test คืออะไร?

Performance Test คือการทดสอบซอฟต์แวร์หรือระบบ เพื่อประเมินความสามารถในการทำงานเมื่อมีภาระหรือโหลดต่างๆ เข้ามาในระบบ เช่น จำนวนผู้ใช้ที่เพิ่มขึ้น, ปริมาณข้อมูลที่ถูกประมวลผล หรือความซับซ้อนในการทำงานของระบบ

เหตุผลที่ต้องทำ Performance Test

วัดความเร็วของระบบ (Speed)

ช่วยให้ทราบว่าระบบสามารถตอบสนองต่อการร้องขอ (request) ได้เร็วเพียงใดในสภาวะการใช้งานที่หลากหลาย ไม่ว่าจะเป็นเมื่อมีผู้ใช้จำนวนน้อยหรือมาก

ประเมินความเสถียร (Stability)

ตรวจสอบว่าระบบสามารถทำงานได้ต่อเนื่องภายใต้การทำงานหนักหรือโหลดที่สูง เช่นในช่วงที่มีจำนวนผู้ใช้เพิ่มขึ้นอย่างมาก หรือในสถานการณ์ที่ต้องประมวลผลข้อมูลจำนวนมาก

ปรับปรุงประสิทธิภาพ (Optimization)

ช่วยให้ระบุจุดอ่อนของระบบ เช่น API ที่ทำงานช้า หรือการใช้ทรัพยากรมากเกินไปในบางส่วน ซึ่งสามารถปรับปรุงได้เพื่อเพิ่มประสิทธิภาพ

เตรียมพร้อมสำหรับการใช้งานจริง (Real-World Readiness)

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

รูปแบบการทำ Performance Test

การทดสอบโหลด (Load Testing)

เป็นการจำลองภาระงานที่ใกล้เคียงกับการใช้งานจริง เพื่อดูว่าระบบสามารถทำงานภายใต้ภาระหนักได้ดีแค่ไหน ช่วยในการค้นหาคอขวด (bottleneck) และระบุจำนวนผู้ใช้หรือธุรกรรมสูงสุดที่ระบบสามารถรองรับได้ จุดประสงค์คือเพื่อค้นหาจุดที่ระบบเกิดปัญหาก่อนจะนำซอฟต์แวร์ออกสู่ตลาด

การทดสอบความเครียด (Stress Testing)

เป็นการทดสอบโดยจำลองภาระงานที่สูงกว่าปกติ เพื่อดูว่าระบบสามารถรองรับการใช้งานหนักเกินขนาดได้หรือไม่ ช่วยในการค้นหาจุดที่ระบบเริ่มล้มเหลว (breaking point) และระบุปัญหาที่อาจเกิดขึ้นเมื่อระบบถูกใช้งานหนักมาก

การทดสอบการเกิดพุ่ง (Spike Testing)

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

การทดสอบการรับภาระนาน (Soak Testing)

เป็นการทดสอบที่จำลองภาระงานคงที่ในระยะเวลานาน เพื่อตรวจสอบว่าระบบสามารถรองรับการใช้งานต่อเนื่องได้โดยไม่เกิดปัญหา เช่น การเกิดหน่วยความจำรั่ว (memory leaks) หรือความเสถียรของระบบเมื่อใช้งานเป็นเวลานาน

การทดสอบความทนทาน (Endurance Testing)

คล้ายกับ Soak Testing แต่เน้นที่การทดสอบระบบภายใต้การใช้งานในระยะยาวเพื่อตรวจสอบว่าระบบสามารถรองรับภาระงานในช่วงเวลายาวนานได้อย่างไร

การทดสอบปริมาณข้อมูล (Volume Testing)

เป็นการทดสอบที่ใช้ข้อมูลปริมาณมากในฐานข้อมูลเพื่อดูการตอบสนองของระบบ จุดประสงค์คือเพื่อทดสอบว่าระบบสามารถทำงานได้ดีแค่ไหนเมื่อปริมาณข้อมูลในฐานข้อมูลมีการเปลี่ยนแปลง

การทดสอบการขยายตัว (Scalability Testing)

ทดสอบความสามารถของซอฟต์แวร์ในการรองรับผู้ใช้หรือภาระงานที่เพิ่มขึ้น เพื่อดูว่าระบบสามารถขยายขนาดเพื่อรองรับการใช้งานที่เพิ่มขึ้นได้มากน้อยแค่ไหน ช่วยในการวางแผนการเพิ่มประสิทธิภาพในอนาคต

กระบวนการทำ Performance Testing อย่างง่าย

1. เตรียมสภาพแวดล้อมการทดสอบ (Set Up the Testing Environment)

จัดเตรียมอุปกรณ์และซอฟต์แวร์ที่จำเป็นสำหรับการทดสอบ ทำให้แน่ใจว่าสภาพแวดล้อมพร้อมสำหรับการรันทดสอบ

2. ตัดสินใจว่าจะวัดอะไร (Decide What to Measure)

กำหนดสิ่งที่ต้องการทดสอบ เช่น ความเร็วในการตอบสนองของระบบ หรือความสามารถในการรองรับโหลด เพื่อวางเป้าหมายที่ชัดเจน

3. วางแผนการทดสอบ (Plan Your Tests)

คิดสถานการณ์ต่างๆ ที่ผู้ใช้อาจเจอ และสร้างการทดสอบให้ครอบคลุมสถานการณ์เหล่านั้น รวมถึงตัดสินใจว่าจะเก็บข้อมูลใดบ้าง

4. เตรียมเครื่องมือ (Set Up Your Tools)

เตรียมเครื่องมือและวิธีการติดตามข้อมูลในระหว่างการทดสอบ

5. สร้างและรันทดสอบ (Create and Run Tests)

สร้างการทดสอบตามแผนและรันทดสอบ พร้อมเก็บข้อมูลที่ได้จากการทดสอบ

6. วิเคราะห์ผลลัพธ์ (Look at the Results)

ดูผลที่ได้จากการทดสอบ ปรับการทดสอบตามข้อมูลที่พบ แล้วทดสอบซ้ำเพื่อดูการเปลี่ยนแปลง

การใช้ Postman ทำ Performance Testing ด้วยตัวอย่าง API testing ของ postman

Download & Install postman [คลิก]

หมายเหตุ ข้อจำกัดของ postman คือ run ได้ 25 ครั้ง/เดือน ในรูปแบบฟรี (22/03/2025)

การสร้าง Template สำหรับ Test จาก postman

  • Step 1 - Login to postman
  • Step 2 - เลือก Workspaces > กด create Workspace
  • Step 3 - เลือก API testing > กด next
  • Step 4 - ตั้งชื่อ Workspace > เลือก Only you and invited people > กด Create
  • Complete

การ Run Performance Test

  • Step 1 - เลือก Collection Performance Testing > กด View more actions > เลือก Run collection
  • Step 2 - เลือก Performance
  • Step 3 - ตั้งค่าการทดสอบ ประกอบไปด้วย
    • Load Profile: ประเภทการทดสอบ
    • Virtual users: จำลองจำนวนผู้ใช้งาน
    • Test duration: ระยะเวลาที่ทำงานยิงทดสอบ
    > กด Run
  • Postman จะทำการยิงทดสอบ Performance testing ตามการตั้งค่าของเรา
  • Step 4 - ดูผลลัพธ์การทดสอบ
  • ผลลัพธ์จะแสดงค่าต่อไปนี้
    • Total requests sent: จำนวน request ทั้งหมดที่ระบบทดสอบยิงไปยัง API
    • Requests/second: จำนวน request เฉลี่ยต่อวินาที
    • Avg. response time: ระยะเวลาตอบกลับจาก API โดยเฉลี่ย
    • P90: 90% ของคำขอมีความเร็วการตอบกลับมากกว่าค่าดังกล่าว
    • P95: 95% ของคำขอมีความเร็วการตอบกลับมากกว่าค่าดังกล่าว
    • P99: 99% ของคำขอมีความเร็วการตอบกลับมากกว่าค่าดังกล่าว
    • Error rate: เปอร์เซ็นต์ที่ request แล้ว มีข้อผิดพลาด
อ้างอิง https://www.geeksforgeeks.org/performance-testing-software-testing/

ความคิดเห็น

โพสต์ยอดนิยมจากบล็อกนี้

Python: Chat bot &Text to Speech ภาษาไทย ด้วย gTTS

วันนี้จะมาแนะนำทุกๆ คนเกี่ยวกับ การเขียนโปรแกรมง่าย ๆ เพื่อให้คอมพิวเตอร์อ่านออกเสียงตามที่เราได้พิมพ์ให้ โดย ใช้ library คือ gTTS และ play sound จะมีวิธีการเขียนอย่างไร มาดูกันเลย เริ่มจากติดตั้ง package gTTS และ play sound ก่อน                                                                          pip install gTTS                                                                                pip install playsound                                                    ...

รวมชุดคำสั่ง Assembly ของ AVR

บทความนี้ได้รวบรวมชุดคำสั่งภาษา assembly ของไมโคคอนโทรลเลอร์ตระกูล AVR และสรุปการใช้งานเป็นภาษาไทยอย่างง่ายหากมีข้อผิดพลาด ขออภัยด้วยครับ ชุดคำสั่งทางคณิตศาสตร์และลอจิก add Rd, Rr   :   Rd + Rr เก็บผลลัพธ์ไว้ใน Rd adc Rd, Rr   :   Rd + Rr + Carry flag  เก็บผลลัพธ์ไว้ใน Rd mul Rd, Rr   :   Rd x Rr ได้ผลลัพธ์เป็น 16 bit เก็บไว้ใน R0, R1 sub Rd, Rr   :   Rd - Rr เก็บผลลัพธ์ไว้ใน Rd sbc Rd, Rr   :   Rd - Rr - Carry flag  เก็บผลลัพธ์ไว้ใน Rd and Rd, Rr   :   Rd and Rr แบบ bit ต่อ bit or Rd, Rr   :   Rd or Rr แบบ bit ต่อ bit eor Rd, Rr   :    Rd exclusive or Rr แบบ bit ต่อ bit com Rd   :   complement (กลับบิต) Rd neg Rd   :   2'complement (ติดลบ) Rd inc Rd   :   Rd++ dec Rd   :   Rd-- clr Rd   :   เคลียร์ bit Rd เป็น 0 ชุดคำสั่งเคลื่อนย้ายข้อมูล mov R...