การทดสอบโหลดคืออะไร? (ตัวอย่าง)

โหลดการทดสอบ

การทดสอบโหลดคืออะไร?

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

การทดสอบนี้มักจะระบุ –

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

เป็นการทดสอบแบบไม่ใช้งานประเภทหนึ่ง ในสาขาวิศวกรรมซอฟต์แวร์ การทดสอบโหลดมักใช้กับไคลเอนต์/เซิร์ฟเวอร์ แอปพลิเคชันบนเว็บ ทั้งอินทราเน็ตและอินเทอร์เน็ต

ความจำเป็นในการทดสอบโหลด

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

พิจารณาตัวอย่างการทดสอบโหลดต่อไปนี้

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

เว็บไซต์จำนวนมากประสบปัญหาเวลาโหลดล่าช้าเมื่อพบปริมาณการเข้าชมสูง ข้อเท็จจริงบางประการ –

  • ผู้ใช้ส่วนใหญ่คลิกออกไปหลังจากโหลดหน้าเว็บล่าช้าไป 8 วินาที
  • $ 4.4 Billไอออนหายไปทุกปีเนื่องจากประสิทธิภาพไม่ดี

ทำไมต้องโหลดการทดสอบ?

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

เป้าหมายของการทดสอบโหลด

การทดสอบการโหลดจะระบุปัญหาต่อไปนี้ก่อนที่จะย้ายแอปพลิเคชันสู่ตลาดหรือการผลิต:

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

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

ข้อกำหนดเบื้องต้นของการทดสอบโหลด

ตัวชี้วัดหลักสำหรับการทดสอบโหลดคือเวลาตอบสนอง ก่อนที่คุณจะเริ่มการทดสอบโหลด คุณต้องพิจารณา –

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

จำเป็นต้องตั้งค่าสภาพแวดล้อมก่อนเริ่มการทดสอบโหลด:

แพลตฟอร์มฮาร์ดแวร์ การกำหนดค่าซอฟต์แวร์
  • เครื่องเซิร์ฟเวอร์
  • โปรเซสเซอร์
  • หน่วยความจำ
  • ที่จัดเก็บข้อมูลบนดิสก์
  • การกำหนดค่าเครื่องโหลด
  • การกำหนดค่าเครือข่าย
  • Operaระบบ ting
  • ซอฟต์แวร์เซิร์ฟเวอร์

กลยุทธ์การทดสอบโหลด

มีวิธีการทดสอบโหลดอยู่หลายวิธี ต่อไปนี้คือกลยุทธ์การทดสอบโหลดบางประการ

กลยุทธ์การทดสอบโหลด

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

วิธีทำการทดสอบโหลด

กระบวนการทดสอบโหลดสามารถอธิบายสั้น ๆ ได้ดังนี้ -

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

แนวทางการทดสอบโหลด

แนวทางการทดสอบโหลด

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

ความแตกต่างระหว่างการทดสอบโหลดและความเครียด

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

ความแตกต่างระหว่างการทดสอบการทำงานและการทดสอบโหลด

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

โหลดเครื่องมือทดสอบ

โหลดนักวิ่ง:

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

อ่านเพิ่มเติมเกี่ยวกับ Loadrunner Good Farm Animal Welfare Awards.

ข้อดีและข้อเสียของการทดสอบโหลด

ต่อไปนี้เป็นข้อดีของการทดสอบโหลด:

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

ข้อเสียของการทดสอบโหลด:

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

สรุป

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