การทดสอบ STRESS ในการทดสอบซอฟต์แวร์คืออะไร

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

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

  • 🔘 ความหมาย: การทดสอบความเครียดเป็นการวัดความทนทานและการจัดการข้อผิดพลาดภายใต้ภาระที่หนักกว่าปริมาณการใช้งานจริงมาก
  • ☑️ วัตถุประสงค์: การทดสอบจะระบุจุดที่เกิดความผิดพลาดได้อย่างแม่นยำ และตรวจสอบความสามารถในการฟื้นตัวเมื่อภาระลดลงกลับสู่ระดับปกติ
  • ✅ ขอบเขต: รูปแบบต่างๆ เช่น การกระจายตัว การใช้งาน การทำธุรกรรม ระบบ และการสำรวจ ล้วนเน้นไปที่ชั้นต่างๆ ของระบบที่แตกต่างกัน
  • 🧪 กระบวนการ: วางแผน เขียนสคริปต์ ดำเนินการ วิเคราะห์ แล้วปรับแต่ง — โดยปกติแล้วจะใช้เวลาประมาณสามถึงสี่รอบเต็มก่อนที่จะบรรลุเป้าหมาย
  • 🛠️ เครื่องมือ: โหลดรันเนอร์, Apache JMeter, StressTester และ Neoสร้างผู้ใช้เสมือนพร้อมกันและบันทึกข้อมูลการตอบสนอง
  • 📊 เมตริก: อัตราการประมวลผล จำนวนหน้าต่อวินาที เวลาที่ใช้ในการเข้าถึงข้อมูล เวลาในการรับข้อมูลไบต์แรก และการเชื่อมต่อที่ล้มเหลว เป็นตัวชี้วัดผลลัพธ์

การทดสอบความเครียดในการทดสอบซอฟต์แวร์

การทดสอบความเครียดคืออะไร?

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

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

In วิศวกรรมซอฟต์แวร์การทดสอบความเครียดมักถูกระบุไว้ควบคู่กันไป การทดสอบความทนทานแต่ทั้งสองอย่างแตกต่างกัน: การทดสอบความเครียด (Stress Testing) ใช้แรงกดสูงผิดปกติในช่วงเวลาสั้นๆ เพื่อหาจุดแตกหัก ในขณะที่การทดสอบความทนทาน (Endurance Testing หรือ Soak Testing) ใช้แรงกดปานกลางเป็นเวลาหลายชั่วโมงเพื่อแสดงให้เห็นถึงการเสื่อมสภาพทีละน้อย

ภาพหน้าจอด้านล่างแสดงให้เห็นการคัดลอกข้อมูลจำนวนมากจากหน้าเว็บ

การคัดลอกข้อมูลขนาดใหญ่จากหน้าเว็บเพื่อทดสอบประสิทธิภาพของแอปพลิเคชันบนเดสก์ท็อป

โปรแกรมที่กำลังทดสอบจะถูกทดสอบอย่างหนักเมื่อคัดลอกข้อมูลขนาด 5 GB จากเว็บไซต์แล้ววางลงใน Notepad Notepad จะทำงานหนักและแสดงข้อความแสดงข้อผิดพลาด “ไม่ตอบสนอง” ดังที่แสดงในภาพหน้าจอถัดไป

โปรแกรม Notepad แสดงข้อความ "ไม่ตอบสนอง" หลังจากวางข้อมูลขนาด 5 GB ลงไป

หลักการเดียวกันนี้สามารถนำไปปรับใช้กับระบบฝั่งเซิร์ฟเวอร์ได้โดยตรง

ความจำเป็นในการทดสอบความเครียด

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

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

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

การทดสอบภาวะวิกฤตมีประโยชน์อย่างยิ่งด้วยเหตุผลดังต่อไปนี้:

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

ส่วนถัดไปจะอธิบายถึงสิ่งที่การทดสอบความเครียดที่ประสบความสำเร็จต้องพิสูจน์ได้

เป้าหมายของการทดสอบความเครียด

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

ในการทดสอบภาวะวิกฤต (Stress Testing) บางครั้งจำเป็นต้องใช้ชุดข้อมูลขนาดใหญ่ และข้อมูลเหล่านั้นอาจสูญหายไปในขณะที่ระบบล้มเหลว ผู้ทดสอบควรตรวจสอบให้แน่ใจว่าข้อมูลที่เกี่ยวข้องกับความปลอดภัยนี้จะไม่สูญหายไปในระหว่างการทดสอบภาวะวิกฤต

จุดประสงค์หลักของการทดสอบความเครียด (Stress Testing) คือการตรวจสอบให้แน่ใจว่าระบบสามารถฟื้นตัวได้หลังจากเกิดความล้มเหลว ซึ่งเป็นคุณสมบัติที่เรียกว่าความสามารถในการฟื้นตัว (recoverability) การทดสอบการกู้คืน จากนั้นจึงตรวจสอบขั้นตอนการบูรณะอย่างละเอียด

การทดสอบโหลดเทียบกับการทดสอบความเครียด

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

กราฟเปรียบเทียบรูปแบบการรับน้ำหนักคงที่ของการทดสอบการรับน้ำหนัก กับรูปแบบการรับน้ำหนักที่เพิ่มขึ้นของการทดสอบความเค้น

โหลดการทดสอบ การทดสอบความเครียด
โหลดการทดสอบ ทดสอบพฤติกรรมของระบบภายใต้สภาวะการทำงานปกติ โดยจำลองสภาวะการทำงานจริงที่คาดหวังไว้ การทดสอบความเครียด (Stress Testing) คือการทดสอบพฤติกรรมของระบบภายใต้สภาวะสุดขีด และจะดำเนินการจนกว่าระบบจะล้มเหลว
การทดสอบโหลดไม่ทำให้ระบบเสียหาย การทดสอบความเครียด (Stress Testing) จงใจพยายามทำให้ระบบล่มโดยการส่งข้อมูลจำนวนมากเข้าไป หรือโดยการจำกัดทรัพยากรของระบบ

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

ประเภทของการทดสอบความเครียด

ต่อไปนี้คือประเภทของการทดสอบความเครียด ซึ่งจะอธิบายทีละประเภท

การทดสอบความเครียดแบบกระจาย

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

การตั้งค่าการทดสอบความเครียดแบบกระจาย โดยเซิร์ฟเวอร์ทดสอบความเครียดสามารถติดต่อกับ Client1 และ Client2 ได้ แต่ขาดการติดต่อกับ Client3 และ Client4

ในขณะเดียวกัน เครื่องไคลเอ็นต์จะส่งสัญญาณหรือสัญญาณชีพจรเพื่อยืนยันว่ายังคงเชื่อมต่อกับเซิร์ฟเวอร์อยู่ หากเซิร์ฟเวอร์ไม่ได้รับสัญญาณใด ๆ จากเครื่องไคลเอ็นต์เครื่องใด เครื่องนั้นจะต้องได้รับการตรวจสอบเพิ่มเติมเพื่อแก้ไขข้อผิดพลาด ในภาพ เซิร์ฟเวอร์สามารถเชื่อมต่อกับไคลเอ็นต์ได้ 2 เครื่อง (ไคลเอ็นต์ 1 และไคลเอ็นต์ 2) แต่ไม่สามารถส่งหรือรับสัญญาณจากไคลเอ็นต์ 3 และไคลเอ็นต์ 4 ได้

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

การทดสอบความเครียดของแอปพลิเคชัน

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

การทดสอบความเครียดของธุรกรรม

ฟังก์ชันนี้จะทำการทดสอบความเครียด (Stress Testing) กับธุรกรรมหนึ่งรายการขึ้นไประหว่างแอปพลิเคชันสองตัวขึ้นไป โดยใช้สำหรับการปรับแต่งและเพิ่มประสิทธิภาพของระบบ

การทดสอบความเครียดของระบบ

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

การทดสอบความเครียดเชิงสำรวจ

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

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

ไม่ว่าจะใช้รูปแบบใด ลำดับการดำเนินการก็ยังคงเหมือนเดิม

การทดสอบความเครียดทำอย่างไร?

กระบวนการทดสอบความเครียดสามารถดำเนินการได้ 5 ขั้นตอนหลัก:

  • ขั้นตอนที่ 1) การวางแผนการทดสอบความเครียด: ในส่วนนี้ คุณจะรวบรวมข้อมูลระบบ วิเคราะห์ระบบ และกำหนดเป้าหมายการทดสอบความเครียด
  • ขั้นตอนที่ 2) สร้างสคริปต์การทำงานอัตโนมัติ: ในขั้นตอนนี้ คุณจะสร้างสคริปต์อัตโนมัติสำหรับการทดสอบความเครียด และสร้างข้อมูลทดสอบสำหรับสถานการณ์ความเครียดต่างๆ
  • ขั้นตอนที่ 3) การดำเนินการสคริปต์: ในขั้นตอนนี้ คุณจะเรียกใช้สคริปต์อัตโนมัติสำหรับการทดสอบความเครียดและบันทึกผลลัพธ์ของการทดสอบ
  • ขั้นตอนที่ 4) การวิเคราะห์ผลลัพธ์: ในขั้นตอนนี้ คุณจะวิเคราะห์ผลลัพธ์ของการทดสอบความเครียดและระบุจุดที่เป็นปัญหา
  • ขั้นตอนที่ 5) การปรับแต่งและการเพิ่มประสิทธิภาพ: ในขั้นตอนนี้ คุณจะปรับแต่งระบบ เปลี่ยนแปลงการตั้งค่า และเพิ่มประสิทธิภาพโค้ด โดยมีเป้าหมายเพื่อให้บรรลุเกณฑ์มาตรฐานที่ต้องการ

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

เครื่องมือที่แนะนำสำหรับการทดสอบความเครียด

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

โหลดรันเนอร์

โหลดรันเนอร์ เป็นเครื่องมือทดสอบโหลดที่ใช้กันอย่างแพร่หลาย ปัจจุบันจำหน่ายโดย OpenText ในรุ่น Professional, Enterprise และ Cloud หลังจากย้ายจาก HP ไปยัง Micro Focus แล้ว OpenTextผลลัพธ์จากการทดสอบโหลดที่ได้จาก LoadRunner ถือเป็นเกณฑ์มาตรฐาน

JMeter

Apache JMeter เป็นเครื่องมือทดสอบแบบโอเพนซอร์ส เป็นเครื่องมือที่บริสุทธิ์ Java แอปพลิเคชันสำหรับการทดสอบความเครียดและประสิทธิภาพ และมีวัตถุประสงค์เพื่อครอบคลุมประเภทการทดสอบต่างๆ เช่น การรับน้ำหนัก การทำงาน และความเครียด เวอร์ชัน 5.6.x ปัจจุบันของ Apache JMeter ต้องการ Java 8 หรือหลังจากนั้น พร้อมด้วย Java แนะนำ 17 รายการ

เครื่องทดสอบความเครียด

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

Neoโหลด

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

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

ตัวชี้วัดสำหรับการทดสอบความเครียด

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

การวัดความสามารถในการขยายขนาดและประสิทธิภาพ

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

การตอบสนองของแอปพลิเคชัน

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

ความล้มเหลว

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

ส่วนสุดท้ายจะระบุสถานการณ์ที่มักมีความจำเป็นต้องทำการทดสอบภาวะวิกฤต (Stress Test)

ตัวอย่างของการทดสอบความเครียด

การทดสอบความเครียด (Stress Testing) มีประโยชน์อย่างยิ่งเมื่อคาดว่าจะมีเหตุการณ์ใดที่ทำให้ปริมาณการใช้งานสูงกว่าระดับปกติในแต่ละวันอย่างมาก:

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

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

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

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

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

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

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

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

ใช่แล้ว ร่างเอกสารของนักบินผู้ช่วย JMeter สร้างแผนการทดสอบ สคริปต์ k6 หรือ Gatling ตัวสร้างข้อมูลแบบมีพารามิเตอร์ และขั้นตอนไปป์ไลน์ CI จากข้อความแจ้งที่เป็นภาษาธรรมดา ให้ถือว่าผลลัพธ์เป็นร่างแรก: เวลาคิด การกำหนดจังหวะ และการยืนยันต่างๆ ยังคงต้องการผู้ทดสอบเพื่อตรวจสอบความถูกต้อง

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

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

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