การทดสอบโหลดคืออะไร? (ตัวอย่าง)
การทดสอบโหลดคืออะไร?
โหลดการทดสอบ เป็นกระบวนการทดสอบซอฟต์แวร์แบบไม่มีหน้าที่ซึ่งจะทำการทดสอบประสิทธิภาพของแอปพลิเคชันซอฟต์แวร์ภายใต้ภาระงานที่คาดหวังไว้ โดยจะกำหนดว่าแอปพลิเคชันซอฟต์แวร์จะทำงานอย่างไรในขณะที่ผู้ใช้หลายคนเข้าใช้งานพร้อมกัน เป้าหมายของการทดสอบภาระคือการปรับปรุงประสิทธิภาพการทำงานและเพื่อให้แน่ใจว่าแอปพลิเคชันซอฟต์แวร์มีเสถียรภาพและทำงานได้อย่างราบรื่นก่อนการปรับใช้
การทดสอบนี้มักจะระบุ –
- ความสามารถในการทำงานสูงสุดของแอปพลิเคชัน
- ตรวจสอบว่าโครงสร้างพื้นฐานปัจจุบันเพียงพอที่จะเรียกใช้แอปพลิเคชันหรือไม่
- ความยั่งยืนของแอปพลิเคชันโดยคำนึงถึงปริมาณการใช้งานสูงสุดของผู้ใช้
- จำนวนผู้ใช้พร้อมกันที่แอปพลิเคชันสามารถรองรับได้ และความสามารถในการปรับขนาดเพื่อให้ผู้ใช้เข้าถึงได้มากขึ้น
เป็นการทดสอบแบบไม่ใช้งานประเภทหนึ่ง ในสาขาวิศวกรรมซอฟต์แวร์ การทดสอบโหลดมักใช้กับไคลเอนต์/เซิร์ฟเวอร์ แอปพลิเคชันบนเว็บ ทั้งอินทราเน็ตและอินเทอร์เน็ต
ความจำเป็นในการทดสอบโหลด
เว็บไซต์ยอดนิยมบางแห่งประสบปัญหาการหยุดทำงานอย่างรุนแรงเมื่อมีปริมาณการเข้าชมจำนวนมาก เว็บไซต์อีคอมเมิร์ซลงทุนมหาศาลในแคมเปญโฆษณา แต่ไม่ใช่ในการทดสอบโหลดเพื่อให้แน่ใจว่าระบบมีประสิทธิภาพสูงสุด เมื่อการตลาดนั้นดึงดูดปริมาณการเข้าชม
พิจารณาตัวอย่างการทดสอบโหลดต่อไปนี้
- ร้านขายของเล่นชื่อดัง Toysrus.com ไม่สามารถรับมือกับปริมาณการเข้าชมที่เพิ่มขึ้นจากแคมเปญโฆษณาได้ ส่งผลให้สูญเสียทั้งเงินทางการตลาดและโอกาสในการขายของเล่น
- เว็บไซต์ของสายการบินไม่สามารถรองรับผู้ใช้มากกว่า 10000 รายในช่วงข้อเสนอเทศกาล
- สารานุกรมบริแทนนิกาประกาศให้เข้าถึงฐานข้อมูลออนไลน์ได้ฟรีเป็นข้อเสนอส่งเสริมการขาย แต่ไม่สามารถรับมือกับปริมาณข้อมูลมหาศาลที่หลั่งไหลเข้ามาได้เป็นเวลาหลายสัปดาห์
เว็บไซต์จำนวนมากประสบปัญหาเวลาโหลดล่าช้าเมื่อพบปริมาณการเข้าชมสูง ข้อเท็จจริงบางประการ –
- ผู้ใช้ส่วนใหญ่คลิกออกไปหลังจากโหลดหน้าเว็บล่าช้าไป 8 วินาที
- $ 4.4 Billไอออนหายไปทุกปีเนื่องจากประสิทธิภาพไม่ดี
ทำไมต้องโหลดการทดสอบ?
- การทดสอบโหลดช่วยให้มั่นใจในระบบ รวมถึงความน่าเชื่อถือและประสิทธิภาพของระบบ
- การทดสอบโหลดช่วยระบุปัญหาคอขวดในระบบภายใต้สถานการณ์ความเครียดของผู้ใช้จำนวนมากก่อนที่จะเกิดขึ้นในสภาพแวดล้อมการผลิต
- การทดสอบโหลดให้การป้องกันที่ดีเยี่ยมต่อประสิทธิภาพที่ไม่ดี และรองรับกลยุทธ์เสริมสำหรับการจัดการประสิทธิภาพและการตรวจสอบสภาพแวดล้อมการผลิต
เป้าหมายของการทดสอบโหลด
การทดสอบการโหลดจะระบุปัญหาต่อไปนี้ก่อนที่จะย้ายแอปพลิเคชันสู่ตลาดหรือการผลิต:
- เวลาตอบสนองสำหรับแต่ละธุรกรรม
- ประสิทธิภาพของส่วนประกอบของระบบภายใต้โหลดต่างๆ
- ประสิทธิภาพของส่วนประกอบฐานข้อมูลภายใต้โหลดที่แตกต่างกัน
- ความล่าช้าของเครือข่ายระหว่างไคลเอนต์และเซิร์ฟเวอร์
- ปัญหาการออกแบบซอฟต์แวร์
- ปัญหาการกำหนดค่าเซิร์ฟเวอร์ เช่น เว็บเซิร์ฟเวอร์ แอปพลิเคชันเซิร์ฟเวอร์ เซิร์ฟเวอร์ฐานข้อมูล ฯลฯ
- ปัญหาข้อจำกัดของฮาร์ดแวร์ เช่น การเพิ่ม CPU ให้สูงสุด ข้อจำกัดของหน่วยความจำ ปัญหาคอขวดของเครือข่าย ฯลฯ
การทดสอบโหลดจะกำหนดว่าระบบจำเป็นต้องได้รับการปรับแต่งอย่างละเอียดหรือต้องมีการดัดแปลงฮาร์ดแวร์และซอฟต์แวร์เพื่อปรับปรุงประสิทธิภาพหรือไม่ เพื่อดำเนินการทดสอบโหลดอย่างมีประสิทธิภาพ คุณสามารถใช้ประโยชน์ต่างๆ ได้ เครื่องมือทดสอบประสิทธิภาพ ที่พร้อมช่วยคุณระบุจุดที่ต้องปรับปรุง
ข้อกำหนดเบื้องต้นของการทดสอบโหลด
ตัวชี้วัดหลักสำหรับการทดสอบโหลดคือเวลาตอบสนอง ก่อนที่คุณจะเริ่มการทดสอบโหลด คุณต้องพิจารณา –
- มีการวัดและเปรียบเทียบเวลาตอบสนองแล้วหรือไม่ - เชิงปริมาณ
- ไม่ว่าเวลาตอบสนองจะนำไปใช้กับกระบวนการทางธุรกิจหรือไม่ – เกี่ยวข้อง
- เวลาตอบสนองสมเหตุสมผลหรือไม่ - สมจริง
- ไม่ว่าเวลาตอบสนองจะสามารถทำได้หรือไม่ก็ตาม
- ไม่ว่าเวลาตอบสนองจะวัดได้โดยใช้เครื่องมือหรือนาฬิกาจับเวลา – วัดได้
จำเป็นต้องตั้งค่าสภาพแวดล้อมก่อนเริ่มการทดสอบโหลด:
แพลตฟอร์มฮาร์ดแวร์ | การกำหนดค่าซอฟต์แวร์ |
---|---|
|
|
กลยุทธ์การทดสอบโหลด
มีวิธีการทดสอบโหลดอยู่หลายวิธี ต่อไปนี้คือกลยุทธ์การทดสอบโหลดบางประการ
- การทดสอบโหลดด้วยตนเอง: นี่เป็นหนึ่งในกลยุทธ์ในการดำเนินการทดสอบโหลด แต่ไม่ได้ผลลัพธ์ที่ทำซ้ำได้ ไม่สามารถให้ระดับความเครียดที่วัดได้บนแอปพลิเคชัน และเป็นกระบวนการที่เป็นไปไม่ได้ในการประสานงาน
- เครื่องมือทดสอบโหลดที่พัฒนาขึ้นภายในบริษัท: องค์กรที่ตระหนักถึงความสำคัญของการทดสอบโหลดอาจสร้างเครื่องมือของตนเองเพื่อดำเนินการทดสอบโหลด
- เครื่องมือทดสอบโหลดโอเพ่นซอร์ส: มีเครื่องมือทดสอบโหลดหลายอย่างในรูปแบบโอเพ่นซอร์สที่ไม่มีค่าใช้จ่าย พวกเขาอาจไม่ซับซ้อนเท่าคู่หูที่ชำระเงิน แต่ถ้าคุณมีงบจำกัด พวกเขาเป็นตัวเลือกที่ดีที่สุด
- เครื่องมือทดสอบโหลดระดับองค์กร: โดยปกติจะมาพร้อมกับระบบจับภาพ/เล่นภาพ รองรับโปรโตคอลจำนวนมาก พวกเขาสามารถจำลองผู้ใช้จำนวนมากเป็นพิเศษ
วิธีทำการทดสอบโหลด
กระบวนการทดสอบโหลดสามารถอธิบายสั้น ๆ ได้ดังนี้ -
- สร้างถวาย สภาพแวดล้อมการทดสอบ สำหรับการทดสอบโหลด
- กำหนดสิ่งต่อไปนี้
- โหลดสถานการณ์การทดสอบ
- กำหนดธุรกรรมการทดสอบโหลดสำหรับแอปพลิเคชัน
- เตรียมข้อมูลสำหรับแต่ละธุรกรรม
- จำเป็นต้องคาดการณ์จำนวนผู้ใช้ที่เข้าถึงระบบ
- กำหนดความเร็วการเชื่อมต่อ ผู้ใช้บางรายอาจเชื่อมต่อผ่านสายเช่าในขณะที่บางรายอาจใช้การเรียกผ่านสายโทรศัพท์
- กำหนดเบราว์เซอร์และระบบปฏิบัติการที่แตกต่างกันที่ผู้ใช้ใช้
- การกำหนดค่าเซิร์ฟเวอร์ทั้งหมด เช่น เว็บ แอปพลิเคชัน และเซิร์ฟเวอร์ DB
- ทดสอบการดำเนินการและการตรวจสอบสถานการณ์ รวบรวมตัวชี้วัดต่างๆ
- วิเคราะห์ผลลัพธ์ ให้คำแนะนำ
- ปรับแต่งระบบอย่างละเอียด
- ทดสอบอีกครั้ง
แนวทางการทดสอบโหลด
- ควรวางแผนการทดสอบโหลดเมื่อแอปพลิเคชันมีเสถียรภาพในการใช้งาน
- ข้อมูลที่ไม่ซ้ำกันจำนวนมากควรพร้อมอยู่ในกลุ่มข้อมูล
- ควรตัดสินใจจำนวนผู้ใช้สำหรับแต่ละสถานการณ์หรือสคริปต์
- หลีกเลี่ยงการสร้างบันทึกโดยละเอียดเพื่อประหยัดพื้นที่ดิสก์ IO
- พยายามหลีกเลี่ยงการดาวน์โหลดรูปภาพในเว็บไซต์
- ในกระบวนการดำเนินการกรณีทดสอบการทดสอบโหลด ควรบันทึกความสอดคล้องของเวลาตอบสนองตลอดช่วงเวลาที่ผ่านไป และควรเปรียบเทียบเวลาเดียวกันนี้กับการทดสอบการทำงานต่างๆ
ความแตกต่างระหว่างการทดสอบโหลดและความเครียด
โหลดการทดสอบ | การทดสอบความเครียด |
---|---|
การทดสอบโหลดจะระบุปัญหาคอขวดในระบบภายใต้ปริมาณงานต่างๆ และตรวจสอบว่าระบบตอบสนองอย่างไรเมื่อโหลดเพิ่มขึ้นทีละน้อย | การทดสอบความเครียด กำหนดจุดแตกหักของระบบเพื่อเปิดเผยจุดสูงสุดหลังจากที่เกิดการแตกหัก |
หากต้องการทราบขีดจำกัดบนของระบบ ให้ตั้งค่า SLA ของแอปและตรวจสอบว่าระบบสามารถรองรับภาระงานจำนวนมากได้อย่างไร | เพื่อตรวจสอบว่าระบบทำงานอย่างไรภายใต้โหลดที่รุนแรง และวิธีกู้คืนจากความล้มเหลว |
การสร้างโหลดที่เพิ่มขึ้นบนเว็บแอปพลิเคชันเป็นเป้าหมายหลักของการทดสอบโหลด | การทดสอบภาวะวิกฤตมีจุดมุ่งหมายเพื่อให้แน่ใจว่าเซิร์ฟเวอร์จะไม่ล่มภายใต้การโหลดที่สูงอย่างฉับพลันเป็นระยะเวลานาน |
คุณลักษณะที่ได้รับการตรวจสอบในการทดสอบโหลดคือประสิทธิภาพสูงสุด ปริมาณเซิร์ฟเวอร์ และเวลาตอบสนอง | การทดสอบประเภทนี้จะตรวจสอบเวลาตอบสนองความเสถียร ฯลฯ |
ในการทดสอบโหลด ขีดจำกัดโหลดคือเกณฑ์ของการหยุดพัก | ในการทดสอบภาวะวิกฤต ขีดจำกัดโหลดจะสูงกว่าเกณฑ์การแตกหัก |
ความแตกต่างระหว่างการทดสอบการทำงานและการทดสอบโหลด
การทดสอบสมรรถนะ | โหลดการทดสอบ |
---|---|
ผลลัพธ์ของการทดสอบการทำงานสามารถคาดเดาได้ง่ายเนื่องจากเรามีขั้นตอนและเงื่อนไขเบื้องต้นที่เหมาะสมที่กำหนดไว้ | ผลลัพธ์ของการทดสอบโหลดไม่สามารถคาดเดาได้ |
ผลลัพธ์ของการทดสอบการทำงานจะแตกต่างกันเล็กน้อย | ผลการทดสอบโหลดแตกต่างกันอย่างมาก |
ความถี่ในการดำเนินการ การทดสอบสมรรถนะ จะสูง | ความถี่ในการดำเนินการทดสอบโหลดจะต่ำ |
ผลลัพธ์ของการทดสอบการทำงานขึ้นอยู่กับข้อมูลการทดสอบ | การทดสอบโหลดขึ้นอยู่กับจำนวนผู้ใช้ |
โหลดเครื่องมือทดสอบ
โหลดนักวิ่ง:
Load runner คือเครื่องมือของ HP ที่ใช้ในการทดสอบการใช้งานภายใต้สภาวะโหลดปกติและโหลดสูงสุด Load runner สร้างโหลดโดยการสร้างผู้ใช้เสมือนที่จำลองการรับส่งข้อมูลเครือข่าย โดยจำลองการใช้งานแบบเรียลไทม์ เช่น สภาพแวดล้อมการผลิตและให้ผลลัพธ์แบบกราฟิก
อ่านเพิ่มเติมเกี่ยวกับ Loadrunner Good Farm Animal Welfare Awards.
ข้อดีและข้อเสียของการทดสอบโหลด
ต่อไปนี้เป็นข้อดีของการทดสอบโหลด:
- การระบุปัญหาคอขวดของประสิทธิภาพก่อนการผลิต
- ปรับปรุงความสามารถในการปรับขนาดของระบบ
- ลดความเสี่ยงที่เกี่ยวข้องกับการหยุดทำงานของระบบ
- ลดต้นทุนของความล้มเหลว
- เพิ่มความพึงพอใจของลูกค้า
ข้อเสียของการทดสอบโหลด:
- เราต้องการความรู้ด้านการเขียนโปรแกรมเพื่อใช้เครื่องมือสำหรับดำเนินการทดสอบโหลดในบริบทของการทดสอบซอฟต์แวร์
- เครื่องมืออาจมีราคาแพงเนื่องจากราคาขึ้นอยู่กับจำนวนผู้ใช้เสมือนที่รองรับ
สรุป
- การทดสอบโหลดหมายถึงการทดสอบซอฟต์แวร์ประเภทหนึ่งที่กำหนดประสิทธิภาพของระบบภายใต้สภาวะโหลดในชีวิตจริง
- โดยทั่วไปการทดสอบโหลดจะช่วยปรับปรุงปัญหาคอขวดของประสิทธิภาพ ความสามารถในการปรับขนาด และความเสถียรของแอปพลิเคชันก่อนที่จะพร้อมสำหรับการผลิต
- การทดสอบนี้ช่วยระบุความสามารถในการทำงานสูงสุดของแอปพลิเคชันตลอดจนปัญหาคอขวดของระบบ
- โหลดการทดสอบใน การทดสอบซอฟต์แวร์ เป็นสิ่งสำคัญเพราะหากละเลยอาจก่อให้เกิดความสูญเสียทางการเงินแก่องค์กรได้