การทดสอบเวลาตอบสนอง: วิธีการวัดประสิทธิภาพ API

⚡ สรุปอย่างชาญฉลาด

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

  • ⏱️ คำจำกัดความหลัก: เวลาตอบสนองครอบคลุมกระบวนการทั้งหมด ตั้งแต่การส่งคำขอจนถึงการประมวลผลเสร็จสมบูรณ์
  • 📊 ตัวชี้วัดสามประการ: เวลาตอบสนองเฉลี่ย เวลาตอบสนองสูงสุด และอัตราข้อผิดพลาด รวมกันแล้วสามารถอธิบายพฤติกรรมของระบบได้
  • 🟢 0.1 วินาที: ให้ความรู้สึกว่าเกิดขึ้นทันที โดยผู้ใช้ไม่รู้สึกถึงการหยุดชะงักใดๆ
  • 🟡 1 วินาที: ขีดจำกัดสูงสุดสำหรับการคิดอย่างต่อเนื่องโดยไม่ถูกขัดจังหวะ
  • ???? 10 วินาที: ขีดจำกัดของความสนใจนั้นมีอยู่จริง แต่ในทางปฏิบัติผู้ใช้มักเลิกใช้ก่อนถึงจุดนั้นนานแล้ว
  • 🧪 วิธีการวัด: นำกระบวนการทางธุรกิจมาประกอบด้วยธุรกรรมเริ่มต้นและสิ้นสุดภายในเครื่องมือทดสอบโหลด

การทดสอบเวลาตอบสนอง

การทดสอบเวลาตอบสนองคืออะไร?

การทดสอบเวลาตอบสนอง เวลาตอบสนอง (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

สิ่งอำนวยความสะดวก:

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

ดาวน์โหลดลิงค์: Apache JMeter ดาวน์โหลด


2) ตัววิ่งโหลด

Loadrunner ซอฟต์แวร์จาก Micro Focus เป็นเครื่องมือทดสอบโหลดที่ใช้กันอย่างแพร่หลาย เป็นหนึ่งในทางเลือกที่ดีที่สุดสำหรับ... JMeter ที่มีอินเทอร์เฟซการตรวจสอบและการวิเคราะห์ที่ใช้งานง่ายพร้อมแผนภูมิสีและกราฟิก

โหลดนักวิ่ง

สิ่งอำนวยความสะดวก:

  • รองรับการทดสอบอย่างต่อเนื่อง
  • LoadRunner สามารถทำงานในสภาพแวดล้อมองค์กรต่างๆ ได้อย่างมีประสิทธิภาพ
  • สามารถเรียกใช้สคริปต์โปรโตคอลหลายตัวพร้อมกันได้ Loadrunner
  • บูรณาการกับเครื่องมือการพัฒนาต่างๆ เช่น Visual Studio, Jenkins, Seleniumฯลฯ

ดาวน์โหลดลิงค์: โหลดรันเนอร์มืออาชีพ

การทดสอบนี้เข้ากับกลุ่มการทดสอบประสิทธิภาพอย่างไร

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

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

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

การทดสอบเวลาตอบสนอง: ข้อสรุปที่สำคัญ

  • เวลาตอบสนอง คือ เวลาที่ใช้ในการที่โหนดระบบหนึ่งจะตอบสนองต่อคำขอของโหนดอื่น
  • เวลาตอบสนองเฉลี่ยใน การทดสอบประสิทธิภาพ คือเวลาเฉลี่ยที่ใช้สำหรับคำขอไปกลับทุกครั้ง
  • เวลาตอบสนองสูงสุดบ่งชี้ว่าส่วนประกอบใดอาจมีปัญหา
  • อัตราข้อผิดพลาดคือการคำนวณทางคณิตศาสตร์ซึ่งแสดงเปอร์เซ็นต์ของคำขอปัญหา
  • ค่าเวลาตอบสนองที่สำคัญสามค่าคือ: 0.1 วินาที, 1.0 วินาที และ 10 วินาที
  • เครื่องมือทดสอบเวลาตอบสนองที่ใช้กันอย่างแพร่หลายที่สุดสองชนิด ได้แก่ JMeter และ โหลดรันเนอร์.

คำถามที่พบบ่อย

ความหน่วง (Latency) คือระยะเวลาที่คำขอเดินทางผ่านเครือข่าย เวลาตอบสนอง (Response Time) รวมทั้งความหน่วงและการประมวลผลและการแสดงผลทั้งหมดของเซิร์ฟเวอร์ เครือข่ายที่เร็วก็อาจยังให้เวลาตอบสนองที่แย่ได้หากเซิร์ฟเวอร์ช้า

ค่าเฉลี่ยอาจซ่อนค่าผิดปกติไว้ ระบบที่มีค่าเฉลี่ย 800 มิลลิวินาที และเปอร์เซ็นไทล์ที่ 95 อยู่ที่ 9 วินาที หมายความว่าระบบนั้นล้มเหลวกับผู้ใช้ 1 ใน 20 คน และมีเพียงเปอร์เซ็นไทล์เท่านั้นที่จะเปิดเผยความผิดปกตินี้ได้

ตั้งเป้าให้เวลาในการโหลดกิจกรรมแบบโต้ตอบต่ำกว่า 1 วินาที และการโหลดหน้าเว็บแบบเต็มหน้าจอต่ำกว่า 2 วินาที หากเกิน 3 วินาที อัตราการออกจากเว็บไซต์จะเพิ่มขึ้นอย่างรวดเร็ว ไม่ว่าขีดจำกัดทางทฤษฎีที่ 10 วินาทีจะบ่งบอกอย่างไรก็ตาม

ระบบตรวจสอบด้วย AI จะกำหนดค่าพื้นฐานปกติสำหรับแต่ละจุด และแจ้งเตือนความผิดปกติโดยอัตโนมัติ แทนที่เกณฑ์คงที่ที่ก่อให้เกิดสัญญาณรบกวนในช่วงเวลาที่มีปริมาณการจราจรหนาแน่น

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

สรุปโพสต์นี้ด้วย: