JMeter ตัวจับเวลา: ค่าคงที่, เกาส์เซียน, สุ่มแบบสม่ำเสมอ

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

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

  • ⏸️ ตัวจับเวลาคงที่: เพิ่มการหน่วงเวลาคงที่เท่ากันในทุกคำขอ
  • 🔔 ตัวจับเวลาสุ่มแบบเกาส์เซียน: ความล่าช้าตามเส้นโค้งการกระจายแบบปกติ
  • 📏 ตัวจับเวลาแบบสุ่มสม่ำเสมอ: ความล่าช้าเกิดขึ้นแบบสุ่มภายในช่วงที่กำหนด
  • 📝 การเขียนสคริปต์สำหรับจับเวลา: BeanShell, BSF และ JSR223 เพิ่มการหน่วงเวลาแบบกำหนดเอง
  • 🤖 ความช่วยเหลือจาก AI: โมเดล AI คิดเวลาจากสภาพการจราจรจริง

JMeter ตัวจับเวลา

ตัวจับเวลาคืออะไร?

โดยค่าเริ่มต้น JMeter ส่งคำขอ โดยไม่หยุด ระหว่างแต่ละคำขอ ในกรณีนั้น, JMeter ได้ ครอบงำ เซิร์ฟเวอร์ทดสอบของคุณด้วยการร้องขอมากเกินไปในระยะเวลาอันสั้น

ลองนึกภาพว่าคุณส่ง... พัน มีการส่งคำขอไปยังเว็บเซิร์ฟเวอร์ที่กำลังทดสอบจำนวนมากในเวลาเพียงไม่กี่วินาที นี่คือสิ่งที่เกิดขึ้น!

ตัวจับเวลาใน JMeter

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

นอกจากนี้ ในชีวิตจริง ผู้เยี่ยมชมไม่ได้มาถึงเว็บไซต์พร้อมกัน แต่ในช่วงเวลาต่างกัน ดังนั้นตัวจับเวลาจะช่วยเลียนแบบพฤติกรรมแบบเรียลไทม์

ต่อไปนี้เป็นบางส่วน ร่วมกัน ประเภทของตัวจับเวลาใน JMeter

ตัวจับเวลาคงที่

ตัวจับเวลาคงที่ทำให้คำขอของผู้ใช้แต่ละรายล่าช้า เดียวกัน ระยะเวลา

ตัวจับเวลาคงที่ใน JMeter

ตัวจับเวลาสุ่มแบบเกาส์เซียน

เสียน ตัวจับเวลาแบบสุ่มทำให้คำขอของผู้ใช้แต่ละรายล่าช้า สุ่ม ระยะเวลา

ตัวจับเวลาสุ่มแบบเกาส์เซียนใน JMeter

พารามิเตอร์

คุณลักษณะ Descriptไอออน
ชื่อ Descriptฉันชื่อตัวจับเวลานี้ที่แสดงในแผนผัง
การเบี่ยงเบน (มิลลิวินาที) A พารามิเตอร์ ของฟังก์ชันการกระจายแบบเกาส์เซียน
ค่าชดเชยการหน่วงเวลาคงที่ (มิลลิวินาที) เพิ่มเติม ค่าเป็นมิลลิวินาที

ดังนั้นความล่าช้าทั้งหมดจึงอธิบายได้ดังรูปด้านล่าง:

ตัวจับเวลาสุ่มแบบเกาส์เซียนใน JMeter

ตั้งเวลาสุ่มสม่ำเสมอ

ตัวจับเวลาสุ่มแบบสม่ำเสมอจะทำให้คำขอของผู้ใช้แต่ละรายล่าช้าเป็นระยะเวลาสุ่ม

ตัวจับเวลาสุ่มแบบสม่ำเสมอใน JMeter

พารามิเตอร์

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

ความล่าช้าทั้งหมดคือผลรวมของค่าสุ่มและค่าออฟเซ็ต

เครื่องจับเวลา BeanShell

การขอ บีนเชลล์ สามารถใช้ตัวจับเวลาได้ สร้าง เวลาหน่วงระหว่างคำขอของผู้ใช้แต่ละคน

เครื่องจับเวลา BSF

BSF Timer สามารถใช้เพื่อสร้างความล่าช้าระหว่างคำขอของผู้ใช้แต่ละรายโดยใช้ BSF ภาษาสคริปต์

JSR223 เครื่องตั้งเวลา

JSR223 Timer สามารถใช้เพื่อสร้างความล่าช้าระหว่างคำขอของผู้ใช้แต่ละรายโดยใช้ เจเอสอาร์223 ภาษาสคริปต์

วิธีการใช้ตัวจับเวลาคงที่

ในตัวอย่างนี้ คุณจะใช้ ตัวจับเวลาคงที่ ในการตั้งค่า ความล่าช้าคงที่ ระหว่างคำขอของผู้ใช้ไปยัง google.com

เริ่มต้นด้วยสคริปต์ทดสอบง่ายๆ

  1. JMeter สร้าง หนึ่ง คำขอของผู้ใช้ไปที่ http://www.google.com 100 ครั้ง
  2. ความล่าช้า ระหว่างคำขอของผู้ใช้แต่ละคนคือ 5000 ms

ที่นี่คือ แผนงาน สำหรับตัวอย่างเชิงปฏิบัตินี้:

ใช้ตัวจับเวลาคงที่ใน JMeter

Pre-เครื่อง

We กลับมาใช้ ขั้นตอนที่ 1 และขั้นตอนที่ 2 ในบทช่วยสอน JMeter การทดสอบประสิทธิภาพ.

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

คลิกขวาที่ แผนการทดสอบ และเพิ่มกลุ่มเธรดใหม่: เพิ่ม-> กระทู้ (ผู้ใช้) ->กลุ่มกระทู้

ในแผงควบคุม Thread Group ให้ป้อน Thread Properties ดังต่อไปนี้

เพิ่มกลุ่มเธรด

การตั้งค่านี้ช่วยให้ JMeter สร้าง หนึ่ง คำขอของผู้ใช้ไปที่ http://www.google.com in 100 ครั้ง

ขั้นตอนที่ 2) เพิ่ม JMeter องค์ประกอบ

  • เพิ่มค่าเริ่มต้นคำขอ HTTP
  • เพิ่มคำขอ HTTP

ขั้นตอนที่ 3) เพิ่มตัวจับเวลาคงที่

คลิกขวาที่ กลุ่มกระทู้ -> เครื่องจับเวลา -> ตัวจับเวลาคงที่

เพิ่มตัวจับเวลาคงที่

การกำหนดค่าความล่าช้าของเธรด 5000 มิลลิวินาที

เพิ่มตัวจับเวลาคงที่

ขั้นตอนที่ 4) เพิ่มดูผลลัพธ์ในตาราง

ดูผลลัพธ์ในตาราง แสดงผลการทดสอบในรูปแบบตาราง

คลิกขวา เพิ่ม -> ผู้ฟัง ->ดูผลลัพธ์ในตาราง

เพิ่มดูผลลัพธ์ในตาราง

ดูผลลัพธ์ในตารางจะแสดงดังภาพด้านล่าง

เพิ่มดูผลลัพธ์ในตาราง

ขั้นตอนที่ 5) ดำเนินการทดสอบของคุณ

เมื่อคุณพร้อมที่จะทำการทดสอบ ให้คลิก วิ่ง ปุ่มบนแถบเมนู หรือกด Ctrl + R

นี่คือผลลัพธ์ของการทดสอบนี้

เรียกใช้การทดสอบ

ดังตัวอย่างในรูปด้านบนนี้ เรามาวิเคราะห์กัน ตัวอย่าง 2

  • เวลาเริ่มต้น คือ 22:05:01.866
  • เวลาตัวอย่าง ของตัวอย่างที่ 2 คือ 172 ms
  • ตัวจับเวลาคงที่: 5000 ms (ตามที่กำหนดค่าไว้)
  • เวลาสิ้นสุด ของตัวอย่างนี้คือ = 22:05:01.866 + 172 + 5000 = 22:05:07.038

ดังนั้นตัวอย่างที่ 3 ควรเริ่มในเวลาคือ 22:05:07.039 (ดังแสดงในรูปด้านบน)

การขอ ความล่าช้า ของแต่ละตัวอย่างคือ 5000 ms

หากเปลี่ยนค่า Constant Timer คือ เป็นศูนย์คุณจะเห็นผลลัพธ์ที่เปลี่ยนไป

เรียกใช้การทดสอบ

มาวิเคราะห์กัน ตัวอย่าง 1

  • เวลาเริ่มต้น คือ 22:17:39.141
  • เวลาตัวอย่าง ของตัวอย่างที่ 2 คือ 370 ms
  • ตัวจับเวลาคงที่ : 0 ms (ตามที่กำหนดค่าไว้)
  • เวลาสิ้นสุด ของตัวอย่างนี้คือ = 22:17:39.141+ 370 + 0 = 22:17:39.511

ดังนั้น ตัวอย่าง 2 ควรเริ่มในเวลาที่เป็น 22:17:39.512 (แสดงในรูปด้านบน)

การแก้ไขปัญหา

หากคุณประสบปัญหาขณะดำเนินการตามสถานการณ์ข้างต้น … ให้ทำดังต่อไปนี้

  1. ตรวจสอบว่าคุณเชื่อมต่ออินเทอร์เน็ตผ่านพรอกซีหรือไม่ ถ้าใช่ ให้ลบพรอกซีออก
  2. เปิดตัวอย่างใหม่ของ JMeter
  3. เปิด ตัวจับเวลาTestPlan.jmx in JMeter
  4. Double คลิกที่กลุ่มเธรด -> ดูผลลัพธ์ในตาราง
  5. เรียกใช้การทดสอบ

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

เวลาคิด คือช่วงเวลาที่ผู้ใช้หยุดชั่วคราวระหว่างการกระทำต่างๆ ซึ่งแสดงออกมาโดย JMeter ตัวจับเวลา

ตัวจับเวลาจะใช้กับตัวอย่างข้อมูลทุกตัวที่อยู่ในขอบเขตการทำงาน และในระดับกลุ่มเธรด จะหน่วงเวลาคำขอทั้งหมดในกลุ่มนั้น

Constant Timer จะเพิ่มการหน่วงเวลาคงที่; Uniform Random Timer จะเพิ่มการหน่วงเวลาแบบสุ่มภายในช่วงที่กำหนด

ใช่แล้ว AI วิเคราะห์บันทึกการจราจรและแนะนำการกระจายเวลาคิดที่ตรงกับจังหวะการใช้งานจริงของผู้ใช้ JMeter.

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

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