r4 - 28 Apr 2008 - 05:48:39 - TaweesupApiwattanapongYou are here: SETEC Wiki >  Knowledge Web  > SoftwareEngineeringCategory > LoadTesting > WebLoad

Performance, Load, and Stress Testing

Scott Barber จาก searchsoftwarequality.techtarget.com ให้ความหมายของ performance, load, และ stress testing ไว้ดังนี้
  • performance testing เป็นการค้นคว้าเชิงเทคนืคจากการทดลองเพื่อหาข้อมูลเกี่ยวกับคุณภาพของผลิตภัณฑ์หรือบริการที่เกี่ยวเนื่องกับความเร็ว ความสามารถในการรองรับการขยายตัว (scalability) และความเสถียร (stability) โดย performance testing เป็นคำที่มีความหมายรวมถึงคำอื่น ๆ ที่เกี่ยวข้องเช่น load และ stress testing
  • load testing คือการทดสอบสมรรถนะที่เน้นการหาหรือตรวจสอบ (validate) คุณลักษณะด้านสมรรถนะของผลิตภัณฑ์ภายใต้สภาวะจำลองและขนาดของภาระที่*คาดว่า*จะเกิดขึ้นเมื่อนำไปใช้จริง
  • stress testing คือการทดสอบสมรรถนะที่เน้นการหาหรือตรวจสอบ (validate) คุณลักษณะด้านสมรรถนะของผลิตภัณฑ์ภายใต้สภาวะจำลองและขนาดของภาระที่*เกินกว่าที่คาดว่า*จะเกิดขึ้นเมื่อนำไปใช้จริง รวมถึงในกรณีที่ตึงเครียด เช่น หน่วยความจำมีจำกัด เนื่อที่ไม่เพียงพอ หรือ ระบบล้มเหลว

Overview

เนื่องจาก load testing เน้นการทดสอบว่าระบบจะมีความเร็วมากน้อยแค่ไหน ภายใต้สภาวะและขนาดของภาระที่คาดว่าจะเกิดขึ้นจริง ดังนั้นผลลัพธ์หนึ่งที่ควรจะได้คือ ระยะเวลาการตอบสนองคำขอ (response time) โดยผู้ทดสอบต้องสามารถระบุสภาวะและขนาดของภาระให้ใกล้เคียงมากที่สุดกับสิ่งที่จะเกิดขึ้นจริง รวมทั้งผู้ทดสอบจำเป็นต้องติดตั้งระบบให้ใกล้เคียงกับการใช้งานจริง เช่น ทำการตั้ง proxy server หากมี proxy ในการใช้งานจริงเป็นต้น ขั้นตอนคร่าว ๆ ของการทำ load testing ก็คือ การหาสภาวะและขนาดของภาระที่จะเกิดขึ้นจริง พัฒนาแบบจำลองของสภาวะนั้น ๆ จากนั้นจึงนำสภาวะดังกล่าวไปทดสอบ โดยกำหนดภาระตามที่คาดว่าจะเกิดขึ้นจริง และวัดค่าต่าง ๆ ที่เกี่ยวข้องกับความเร็วของระบบ
  • agenda รูปแบบการใช้งาน คือ ลักษณะที่ผู้ใช้ใช้งานระบบ เช่น ผู้ใช้อาจเข้าใช้ระบบเพื่อดูเว๊บเพจอย่างเดียว หรือ เพื่อเข้าไปศึกษาบทเรียนใดบทเรียนหนึ่งโดยเฉพาะ เป็นต้น
  • mix ในความเป็นจริงนั้น ในช่วงเวลาหนึ่งอาจมีผู้ใช้งานระบบหลายคน และแต่ละคนอาจมีรูปแบบการใช้งานที่แตกต่างกันไป ผู้ทดสอบจึงต้องทำการกำหนดสถานการณ์ขึ้น เพื่อระบุว่าในการทดสอบจะมีผู้ใช้ในแต่ละรูปแบบการใช้งานเป็นสัดส่วนเท่าไร

WebLoad

เป็นเครื่องมือที่ใช้สำหรับทำ load testing ระบบที่ให้บริการผ่านเว๊บโดยมีตัวสร้างภาระ (load generator) ซึ่งจำลองเครื่องผู้ใช้ 1 เครื่อง ให้เป็นเครื่องผู้ใช้เสมือน (virtual client) หลาย ๆ เครื่องเพื่อสร้างคำขอและส่งไปยังระบบที่จะทดสอบ เครื่องมือนี้มี 2 รุ่นคือ รุ่น open source และรุ่น professional ซึ่งมี features มากกว่ารุ่น open source เครื่องมือนี้แบ่งเป็น 2 ส่วนคือ ส่วนพัฒนา (IDE) และส่วนควบคุม (console)

WebLoad Glossary

  • agenda (console) or project (IDE): agenda ที่จะนำไปใช้ในการทดสอบนั้น จะถูกสร้างเป็น project ในส่วนพัฒนา
  • template (console): template กำหนดสถานการณ์ที่จะเกิดระหว่างการทดสอบ ซึ่งจะรวม 2 ส่วนไว้ด้วยกัน คือ mix ซึ่งระบุสัดส่วนของผู้ใช้แต่ละรูปแบบ และ schedule ซึ่งระบุจำนวนภาระที่จะสร้างในแต่ละช่วงเวลาระหว่างการทดสอบ เช่นผู้ทดสอบอาจกำหนด template ในการทดสอบระบบว่า จะมีผู้ใช้เข้ามาเรียกดูเว็บเพจอย่างเดียวครึ่งหนึ่ง ส่วนอีกครึ่งหนึ่งใช้เพื่อศึกษาบทเรียน (ส่วนของ mix) โดยชั่วโมงแรกมีผู้ใช้ทั้งหมด 100 คนและเพิ่มเป็น 200 คนในชั่วโมงที่สอง (ส่วนของ schedule) เป็นต้น

Demo

  • Creating an agenda (pattern)
    • Recording usage
    • Setting configurations
    • Introducing variables
    • Introducing random-line reads
  • Creating a template
    • Creating a mix
    • Setting a schedule
  • WebLoad Glossary2 (measures)
    • round time ระยะเวลาในการปฏิบัติตาม agenda 1 รอบ
    • hits per second จำนวนคำขอที่ส่งไปยังเครื่องเซิฟเวอร์ต่อวินาที
    • response time ระยะเวลาในการตอบสนองคำขอ เช่นหากขอหน้าเว๊บเพจ ก็จะเป็นระยะเวลาตั้งแต่ส่งคำขอไปจนกระทั่งไดัรับข้อมูลของเว๊บเพจทั้งหมด
Edit | Attach | Printable | Raw View | Backlinks: Web, All Webs | History: r4 < r3 < r2 < r1 | More topic actions
 
Powered by SETEC Wiki
Copyright ©2012 by National Electronics and Computer Technology Center, NECTEC.
Ideas, requests, problems regarding SETEC Wiki? Send feedback