เริ่มต้นกับ JMeter เพื่อทดสอบประสิทธิภาพเว็บไซต์ของคุณ

เผยแพร่แล้ว: 2022-05-10

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

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

การทดสอบประสิทธิภาพของ JMeter

ทำไมต้องทดสอบประสิทธิภาพ

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

คุณรู้หรือไม่ว่าประมาณ 59% ของโชคลาภ 500 บริษัท ประสบปัญหาการหยุดทำงานประมาณ 1.6 ชั่วโมงทุกสัปดาห์? การหยุดทำงาน 5 นาทีในปี 2013 ทำให้ Google.com เสียหายถึง 545,000 ดอลลาร์! บริการเว็บหยุดทำงานโดยไม่คาดคิดทำให้ Amazon ขาดทุนถึง $1,100 ต่อวินาที แหล่งที่มา.

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

การทดสอบประสิทธิภาพโดยใช้ JMeter

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

JMeter ทำการทดสอบอย่างไร

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

ทำไมต้อง JMeter

  • โอเพ่นซอร์ส - JMeter เป็นซอฟต์แวร์โอเพ่นซอร์สและสามารถดาวน์โหลดได้ฟรี
  • แพลตฟอร์มอิสระ - JMeter ได้รับการพัฒนาใน Java ซึ่งเป็นภาษาโปรแกรมที่ได้รับความนิยมมากที่สุดในโลก ดังนั้นจึงสามารถทำงานบนระบบปฏิบัติการใดก็ได้
  • รองรับหลายโปรโตคอล - JMeter ไม่เพียงรองรับการทดสอบเว็บแอปพลิเคชัน แต่ยังประเมินประสิทธิภาพของเซิร์ฟเวอร์ฐานข้อมูลด้วย JMeter รองรับโปรโตคอลพื้นฐานทั้งหมด เช่น HTTP, JDBC, LDAP, SOAP, JMS และ FTP
  • ใช้งานง่าย - JMeter มี GUI ที่ครอบคลุม ซึ่งช่วยในการสร้างแผนการทดสอบและกำหนดค่าองค์ประกอบ การเพิ่มองค์ประกอบก็ง่ายเช่นกัน คุณเพียงแค่ต้องคลิกขวาที่แผนการทดสอบและเพิ่มสิ่งที่คุณต้องทำ

องค์ประกอบของ JMeter

  • กลุ่มเธรด - กลุ่มเธรดคือชุดของเธรด แต่ละเธรดแสดงถึงผู้ใช้หนึ่งรายโดยใช้ AUT แต่ละเธรดเลียนแบบคำขอของผู้ใช้จริงหนึ่งรายไปยังเซิร์ฟเวอร์
  • Samplers - JMeter รองรับการทดสอบ HTTP, FTP, JDBC และโปรโตคอลอื่น ๆ อีกมากมาย กลุ่มเธรดจำลองคำขอของผู้ใช้ไปยังเซิร์ฟเวอร์ ช่วยให้ Thread Group รู้ว่าต้องส่งคำขอประเภทใด (HTTP, FTP เป็นต้น)
  • ผู้ฟัง - ผู้ฟังอำนวยความสะดวกให้ผู้ดูดูผลการสุ่มตัวอย่างในรูปแบบของตาราง กราฟ ต้นไม้ หรือข้อความธรรมดาในไฟล์บันทึกบางไฟล์
  • การ กำหนดค่า - องค์ประกอบการกำหนดค่าใน JMeter ใช้เพื่อกำหนดค่าหรือแก้ไขคำขอตัวอย่างที่ทำกับเซิร์ฟเวอร์

วิธีการติดตั้ง jmeter

มีข้อกำหนดเบื้องต้นเพียงข้อเดียวสำหรับการดาวน์โหลดและติดตั้ง JMeter: เพื่อให้มี Java ติดตั้งอยู่ในระบบของคุณ

  • ดาวน์โหลด JMeter และติดตั้งจากที่นี่ - https://jmeter.apache.org/download_jmeter.cgi
  • ในการเปิด JMeter: โฟลเดอร์ Apache jmeter > โฟลเดอร์ bin > คลิก jmeter.bat

สร้างแผนการทดสอบ

ขั้นตอนที่ 1: เพิ่มกลุ่มเธรด

ไปที่เพิ่ม แล้วเลือก Threads(Users) แล้วเลือก Thread users

การทดสอบประสิทธิภาพ

กลุ่มกระทู้

ตัวเลือก

ก. การดำเนินการหลังจากเกิดข้อผิดพลาด
B. จำนวนเธรด - จำนวนผู้ใช้
C. ระยะเวลาการเพิ่มขึ้นเป็นวินาที - ช่องว่างระหว่างเวลาระหว่างการโจมตีของผู้ใช้
D. การนับวน - การทดสอบจะทำงานกี่ครั้งสำหรับจำนวนผู้ใช้

ขั้นตอนที่ 2: เพิ่มคำขอ HTTP

คลิกขวาที่กลุ่มเธรด เพิ่มตัวอย่างแล้วคลิกคำขอ Http

ตัวเลือก

A. เพิ่ม “ชื่อเซิร์ฟเวอร์”
B. อย่าให้ http หรือ HTTPS เนื่องจากเป็นโปรโตคอลที่จะมาในอีกช่องหนึ่ง และจะถูกนำไปใช้โดยอัตโนมัติในกรณีคำขอ http
C. กล่องโต้ตอบเส้นทาง → เพิ่มเครื่องหมายทับ

คำขอ HTTP

ขั้นตอนที่ 3: เพิ่ม Listener

คลิกขวาที่กลุ่มเธรด เพิ่ม Listener แล้วคลิก ดูผลลัพธ์ในตาราง

ดูผลลัพธ์

ขั้นตอนที่ 4: เรียกใช้การทดสอบ

บันทึกการทดสอบและคลิกที่ปุ่มลูกศรสีเขียว

ผลลัพธ์ในตารางดูผลลัพธ์ในตาราง

ถึงเวลาวิเคราะห์ผลลัพธ์

  • หมายเลขตัวอย่าง - หมายเลข ของเธรดหรือผู้ใช้ ในรายงานจะระบุว่า "นี่คือตัวอย่างหมายเลข 1" ซึ่งหมายความว่าเป็นเธรดที่ 1 ตามด้วยเธรดที่ 2 เป็นต้น
  • เวลาเริ่มต้น - เวลาเริ่มต้นสำหรับแต่ละเธรดหรือผู้ใช้
  • ชื่อเธรด - ชื่อเธรดนั้นเป็นชื่อกลุ่มเธรดที่นี่ ในชื่อกลุ่มเธรด เรามีหมายเลขนี้ 1-1 , 1-2… ดังนั้นอันแรกนี้หมายถึงการวนซ้ำครั้งแรกกับผู้ใช้คนแรก การวนซ้ำครั้งแรกกับผู้ใช้คนที่สอง เป็นต้น
  • ป้ายกำกับ - ป้ายกำกับคือตัวอย่างหรือชื่อคำขอของคุณ
  • เวลาตัวอย่าง - ตัวอย่างนี้ (ฉลาก) ใช้เวลาเท่าใดในแง่ของ am/s
  • สถานะ - สถานะของคำขอ
  • ไบต์ - ไบต์ที่ได้รับ
  • ไบต์ที่ ส่ง - ไบต์ที่ส่งแล้ว
  • เวลาแฝง - คำขอเวลาจากผู้ใช้/เบราว์เซอร์และเวลาตอบสนอง การตอบสนองในแง่ของการร้องขอที่เดินทางจากเซิร์ฟเวอร์ไปยังไคลเอนต์ / เบราว์เซอร์ซึ่งไม่รวมเวลาในการประมวลผลของเซิร์ฟเวอร์ (ขอและตอบกลับเท่านั้น)
  • เวลาเชื่อมต่อ - เวลาเชื่อมต่อคือระยะเวลาที่แอปพลิเคชันของคุณใช้ในการเชื่อมต่อกับเซิร์ฟเวอร์ในหน่วยมิลลิวินาที

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