การทดสอบเวลาตอบสนอง: วิธีการวัดประสิทธิภาพ API
⚡ สรุปอย่างชาญฉลาด
การทดสอบเวลาตอบสนอง (Response Time Testing) วัดระยะเวลาที่ระบบใช้ในการตอบคำขอ นับตั้งแต่ผู้ใช้ส่งคำขอจนถึงเวลาที่แอปพลิเคชันรายงานว่าเสร็จสมบูรณ์ คู่มือนี้จะกล่าวถึงตัวชี้วัด เกณฑ์สำคัญสามประการ และเครื่องมือที่ใช้ในการวัดค่าเหล่านั้น

การทดสอบเวลาตอบสนองคืออะไร?
การทดสอบเวลาตอบสนอง เวลาตอบสนอง (Response Time) คือการวัดระยะเวลาที่โหนดระบบหนึ่งใช้ในการตอบสนองต่อคำขอของอีกโหนดหนึ่ง เป็นช่วงเวลาระหว่างที่คำขอเข้ามาและกระบวนการที่เกี่ยวข้องเสร็จสมบูรณ์ ตัวอย่างเช่น คุณมี API และต้องการทราบว่าใช้เวลานานเท่าใดในการประมวลผลและส่งข้อมูลกลับมาในรูปแบบ JSON เวลาตอบสนองจะวัดการตอบสนองของเซิร์ฟเวอร์ต่อธุรกรรมหรือการสืบค้นแต่ละครั้ง
เวลาตอบสนองเริ่มต้นเมื่อผู้ใช้ส่งคำขอและสิ้นสุด ณ เวลาที่แอปพลิเคชันระบุว่าคำขอเสร็จสมบูรณ์
วิธีการวัดเวลาตอบสนอง
เพื่อวัดเวลาตอบสนองเราสามารถใช้เครื่องมือทดสอบโดยล้อมรอบกระบวนการทางธุรกิจที่สำคัญด้วยธุรกรรมเริ่มต้นและสิ้นสุด กระบวนการทางธุรกิจอาจเป็นการกระทำหรือชุดของการกระทำที่ผู้ใช้ดำเนินการในแอปพลิเคชันเพื่อทำงานทางธุรกิจให้เสร็จสิ้น เช่น ล็อกอินเข้าสู่แอปพลิเคชัน หรือเพื่อซื้อหนังสือบน Amazonด้วย.

สำหรับกระบวนการเดียวกันในการวัดเวลาตอบสนองสำหรับ API การตอบสนองจะแตกต่างกันเล็กน้อยในแต่ละเครื่องมือ นี่คือเหตุผล
- ขั้นตอน 1) วิธีการคำนวณเมตริกที่รวบรวมโดยเครื่องมือทดสอบเวลาตอบสนองของ API แต่ละรายการ
- ขั้นตอน 2) เครื่องมือจำลองความเร็วในการโหลดและการบันทึกซึ่งสามารถสร้างความแตกต่างในเวลาตอบสนองได้
- ขั้นตอน 3) รายการพิเศษที่บันทึกไว้เมื่อตรวจสอบโหลดของผู้ใช้
- ขั้นตอน 4) ตัวชี้วัดการประมวลผลที่รวบรวมโดยแต่ละเครื่องมือจะเพิ่มเวลาตอบสนองเนื่องจากมีการใช้ทรัพยากรสูง
- ขั้นตอน 5) สถาปัตยกรรมของเครื่องมือทั้งสองอาจแตกต่างกัน
ประเภทของตัวชี้วัดการตอบสนอง
| การวัดเวลาตอบสนอง | คำอธิบาย |
|---|---|
| เวลาตอบสนองโดยเฉลี่ย | เวลาตอบกลับเฉลี่ยคือเวลาเฉลี่ยที่ใช้สำหรับคำขอไปกลับทุกครั้ง เวลาตอบสนองโดยเฉลี่ยรวมถึงเวลาในการโหลด HTML, CSS, XML, รูปภาพ, Javaไฟล์สคริปต์ ฯลฯ ดังนั้นค่าเฉลี่ยจึงได้รับผลกระทบเมื่อมีส่วนประกอบที่ช้าอยู่ในระบบ |
| เวลาตอบสนองสูงสุด | เวลาตอบสนองสูงสุดช่วยให้เราค้นหาส่วนประกอบที่อาจเป็นปัญหาได้ ช่วยให้เราค้นหาความผิดปกติทั้งหมดในเว็บไซต์หรือระบบที่คำขอบางอย่างไม่ได้รับการจัดการอย่างถูกต้อง ตัวอย่างเช่น อาจมีการดำเนินการค้นหาฐานข้อมูลขนาดใหญ่ซึ่งอาจส่งผลต่อเวลาตอบสนอง แบบสอบถามนี้ไม่อนุญาตให้โหลดเพจในเวลาที่ต้องการ |
| อัตราความผิดพลาด | อัตราข้อผิดพลาด (Error Rate) คือการคำนวณทางคณิตศาสตร์ที่แสดงเปอร์เซ็นต์ของคำขอที่มีปัญหาเทียบกับคำขอทั้งหมด โดยเปอร์เซ็นต์นี้จะนับรวมรหัสสถานะ HTTP ทั้งหมดที่แสดงข้อผิดพลาดบนเซิร์ฟเวอร์ รวมถึงคำขอที่หมดเวลาด้วย |
เกณฑ์เวลาตอบสนองสามประการที่สำคัญ
ตัวเลขสองตัวที่สำคัญที่สุดในรายงานเวลาตอบสนองใดๆ ก็ตาม ได้แก่:
- เวลาตอบสนองโดยเฉลี่ย
- เวลาตอบสนองสูงสุด หรือเวลาตอบสนองพีค
ข้อมูลเหล่านี้แสดงให้เห็นว่าโดยทั่วไปผู้ใช้ต้องรอนานแค่ไหน และผู้ใช้ที่โชคร้ายที่สุดต้องรอนานแค่ไหน
ต่อไปนี้เป็นตัวอย่างค่าการทดสอบเวลาตอบสนองที่สำคัญ
| เวลาตอบสนอง | อย่างมีนัยสำคัญ |
|---|---|
| 0.1 สอง | เป็นเวลาตอบสนองที่ต้องการมากที่สุด หากเวลาตอบสนองเป็น 0.1 ผู้ใช้จะรู้สึกเสมอว่าแอปพลิเคชันหรือระบบกำลังตอบสนองทันที และไม่รู้สึกว่ามีการหยุดชะงักใดๆ |
| 1.0 สอง | นี่คือขีดจำกัดสูงสุดที่ยอมรับได้สำหรับการใช้งานที่ไม่สะดุด ผู้ใช้ไม่น่าจะรู้สึกถึงการหยุดชะงักใดๆ แม้ว่าพวกเขาอาจจะรู้สึกถึงความล่าช้าบ้างก็ตาม เวลาตอบสนองที่มากกว่า 1 วินาทีอาจรบกวนประสบการณ์การใช้งานของผู้ใช้ |
| วินาที 10 | มันเป็นขีดจำกัดสูงสุดซึ่งหลังจากนั้นเวลาตอบสนองจะเกินขีดจำกัดที่ยอมรับได้ อย่างไรก็ตาม ในปัจจุบัน หากเวลาตอบสนองเกิน 6 วินาที ผู้ใช้จะออกจากไซต์นั้นหรือออกจากแอปพลิเคชัน |
ควรตั้งเป้าหมายให้เวลาในการตอบสนองอยู่ระหว่าง 0.1 ถึง 1 วินาทีทุกครั้งที่เป็นไปได้ ผู้ใช้จะปรับตัวเข้ากับระบบที่ช้าลงได้ แต่ความพึงพอใจจะลดลงอย่างมากเมื่อเกิน 2 วินาที และทุกๆ วินาทีที่เพิ่มขึ้นจะทำให้ผู้ใช้เลิกใช้มากขึ้น
เครื่องมือทดสอบเวลาตอบสนอง
มีเครื่องมือทดสอบเวลาตอบสนองมากมายให้เลือกใช้ สองเครื่องมือที่ใช้กันอย่างแพร่หลายที่สุด ได้แก่:
1) JMeter
Apache JMeter เป็นเครื่องมือทดสอบโหลดโอเพ่นซอร์ส ได้รับการออกแบบมาเพื่อวัดประสิทธิภาพของเว็บไซต์ เครื่องมือทดสอบโหลดนี้สามารถใช้ในระเบียบวิธี DevOps
สิ่งอำนวยความสะดวก:
- JMeter อนุญาตให้ทำการทดสอบโหลดและประสิทธิภาพสำหรับเซิร์ฟเวอร์ประเภทต่างๆ
- เครื่องมือทดสอบโหลดนี้จัดเก็บแผนการทดสอบในรูปแบบ XML ซึ่งช่วยให้ผู้ใช้สามารถสร้างแผนการทดสอบโดยใช้โปรแกรมแก้ไขข้อความ
- เครื่องมือนี้สามารถใช้เพื่อดำเนินการอัตโนมัติและ การทดสอบการใช้งาน ของแอปพลิเคชัน
ดาวน์โหลดลิงค์: Apache JMeter ดาวน์โหลด
2) ตัววิ่งโหลด
Loadrunner ซอฟต์แวร์จาก Micro Focus เป็นเครื่องมือทดสอบโหลดที่ใช้กันอย่างแพร่หลาย เป็นหนึ่งในทางเลือกที่ดีที่สุดสำหรับ... JMeter ที่มีอินเทอร์เฟซการตรวจสอบและการวิเคราะห์ที่ใช้งานง่ายพร้อมแผนภูมิสีและกราฟิก
สิ่งอำนวยความสะดวก:
- รองรับการทดสอบอย่างต่อเนื่อง
- LoadRunner สามารถทำงานในสภาพแวดล้อมองค์กรต่างๆ ได้อย่างมีประสิทธิภาพ
- สามารถเรียกใช้สคริปต์โปรโตคอลหลายตัวพร้อมกันได้ Loadrunner
- บูรณาการกับเครื่องมือการพัฒนาต่างๆ เช่น Visual Studio, Jenkins, Seleniumฯลฯ
ดาวน์โหลดลิงค์: โหลดรันเนอร์มืออาชีพ
การทดสอบนี้เข้ากับกลุ่มการทดสอบประสิทธิภาพอย่างไร
การทดสอบประสิทธิภาพเป็นคำที่ใช้เรียกโดยรวม รูปแบบต่างๆ ที่กล่าวถึงด้านล่างนี้แตกต่างกันเพียงแค่ลักษณะของแรงที่ใช้และระยะเวลาที่คงแรงไว้ ซึ่งเป็นเหตุผลที่ทำให้มักเกิดความสับสนระหว่างการทดสอบทั้งสามประเภทนี้
| ประเภทการทดสอบ | รูปแบบการโหลด | คำถามมันตอบ |
|---|---|---|
| โหลดการทดสอบ | คาดการณ์ปริมาณการใช้ไฟฟ้าสูงสุด ระยะเวลาสั้น | ระบบสามารถบรรลุเป้าหมายภายใต้ปริมาณการใช้งานสูงสุดปกติได้หรือไม่? |
| การทดสอบความเครียด | เพิ่มขึ้นเกินขีดความสามารถจนกระทั่งเกิดความเสียหาย | มันพังตรงไหน และมันพังอย่างราบรื่นหรือไม่? |
| การทดสอบขัดขวาง | พุ่งขึ้นอย่างรุนแรงอย่างฉับพลัน แล้วก็ลดลง | รถคันนี้สามารถเอาตัวรอดและฟื้นตัวจากแรงกระแทกจากการจราจรได้หรือไม่? |
| การทดสอบความทนทาน | สามารถรับน้ำหนักปกติได้นานหลายชั่วโมง | ประสิทธิภาพจะลดลงเมื่อเวลาผ่านไปหรือไม่? |
| การทดสอบการแช่ | การรับน้ำหนักอย่างต่อเนื่องเป็นระยะเวลานาน | มีการรั่วไหลของหน่วยความจำหรือการใช้ทรัพยากรมากเกินไปหรือไม่? |
| การทดสอบความเสถียร | ภาระที่แตกต่างกันไปตามสภาวะต่างๆ | ระบบยังคงเชื่อถือได้หรือไม่เมื่อสภาวะเปลี่ยนแปลงไป? |
| การทดสอบปริมาตร | ผู้ใช้งานทั่วไป ปริมาณข้อมูลมหาศาล | มันสามารถรองรับการเติบโตของฐานข้อมูลได้หรือไม่? |
การทดสอบความทนทานและการทดสอบการแช่น้ำมักถูกมองว่าเป็นคำที่มีความหมายเหมือนกัน โดยทั่วไปแล้ว การทดสอบทั้งสองแบบสามารถรับภาระงานต่อเนื่องได้เป็นเวลานาน หากทีมงานมีการแยกแยะความแตกต่างระหว่างการทดสอบทั้งสอง การทดสอบความทนทานจะเน้นที่การดูว่าเวลาตอบสนองเพิ่มขึ้นหรือไม่ ในขณะที่การทดสอบความทนทานจะเน้นที่การใช้ทรัพยากร เช่น หน่วยความจำ ตัวจัดการไฟล์ และพูลการเชื่อมต่อ การทดสอบแบบใดแบบหนึ่งมักจะให้หลักฐานสำหรับการทดสอบทั้งสองแบบ
การทดสอบเวลาตอบสนอง: ข้อสรุปที่สำคัญ
- เวลาตอบสนอง คือ เวลาที่ใช้ในการที่โหนดระบบหนึ่งจะตอบสนองต่อคำขอของโหนดอื่น
- เวลาตอบสนองเฉลี่ยใน การทดสอบประสิทธิภาพ คือเวลาเฉลี่ยที่ใช้สำหรับคำขอไปกลับทุกครั้ง
- เวลาตอบสนองสูงสุดบ่งชี้ว่าส่วนประกอบใดอาจมีปัญหา
- อัตราข้อผิดพลาดคือการคำนวณทางคณิตศาสตร์ซึ่งแสดงเปอร์เซ็นต์ของคำขอปัญหา
- ค่าเวลาตอบสนองที่สำคัญสามค่าคือ: 0.1 วินาที, 1.0 วินาที และ 10 วินาที
- เครื่องมือทดสอบเวลาตอบสนองที่ใช้กันอย่างแพร่หลายที่สุดสองชนิด ได้แก่ JMeter และ โหลดรันเนอร์.


