ตัวจับเวลา Jmeter: ค่าคงที่, สุ่มแบบเกาส์เซียน, สม่ำเสมอ [ตัวอย่าง]
ตัวจับเวลาคืออะไร?
โดยค่าเริ่มต้น JMeter ส่งคำขอ โดยไม่หยุด ระหว่างแต่ละคำขอ ในกรณีนั้น, JMeter ได้ ครอบงำ เซิร์ฟเวอร์ทดสอบของคุณด้วยการร้องขอมากเกินไปในระยะเวลาอันสั้น
ลองจินตนาการว่าคุณส่ง พัน ร้องขอไปยังเว็บเซิร์ฟเวอร์ภายใต้การทดสอบภายในไม่กี่วินาที นี่คือสิ่งที่เกิดขึ้น!
ตัวจับเวลาอนุญาต JMeter ไปยัง ความล่าช้า ระหว่างแต่ละคำขอที่เธรดทำ ตัวจับเวลาสามารถแก้ปัญหาเซิร์ฟเวอร์ได้ เกินพิกัด ปัญหา
นอกจากนี้ ในชีวิตจริง ผู้เยี่ยมชมไม่ได้มาถึงเว็บไซต์พร้อมกัน แต่ในช่วงเวลาต่างกัน ดังนั้นตัวจับเวลาจะช่วยเลียนแบบพฤติกรรมแบบเรียลไทม์
ต่อไปนี้เป็นบางส่วน ร่วมกัน ประเภทของตัวจับเวลาใน JMeter
ตัวจับเวลาคงที่
ตัวจับเวลาคงที่ทำให้คำขอของผู้ใช้แต่ละรายล่าช้า เดียวกัน ระยะเวลา
ตัวจับเวลาสุ่มแบบเกาส์เซียน
เสียน ตัวจับเวลาแบบสุ่มทำให้คำขอของผู้ใช้แต่ละรายล่าช้า สุ่ม ระยะเวลา
พารามิเตอร์
คุณลักษณะ | Descriptไอออน |
---|---|
Name | Descriptฉันชื่อตัวจับเวลานี้ที่แสดงในแผนผัง |
การเบี่ยงเบน (มิลลิวินาที) | A พารามิเตอร์ ของฟังก์ชันการกระจายแบบเกาส์เซียน |
ค่าชดเชยการหน่วงเวลาคงที่ (มิลลิวินาที) | เพิ่มเติม ค่าเป็นมิลลิวินาที |
ดังนั้นความล่าช้าทั้งหมดจึงอธิบายได้ดังรูปด้านล่าง:
ตั้งเวลาสุ่มสม่ำเสมอ
ตัวจับเวลาสุ่มแบบสม่ำเสมอจะทำให้คำขอของผู้ใช้แต่ละรายล่าช้าเป็นระยะเวลาสุ่ม
พารามิเตอร์
คุณลักษณะ | Descriptไอออน |
---|---|
Name | Descriptฉันชื่อตัวจับเวลานี้ที่แสดงในแผนผัง |
ความล่าช้าแบบสุ่มสูงสุด | จำนวนมิลลิวินาทีสุ่มสูงสุดที่จะหน่วงเวลา |
ค่าชดเชยการหน่วงเวลาคงที่ (มิลลิวินาที) | เพิ่มเติม ค่าเป็นมิลลิวินาที |
ความล่าช้าทั้งหมดคือผลรวมของค่าสุ่มและค่าออฟเซ็ต
เครื่องจับเวลา BeanShell
เหตุการณ์ บีนเชลล์ สามารถใช้ตัวจับเวลาได้ สร้าง เวลาหน่วงระหว่างคำขอของผู้ใช้แต่ละคน
เครื่องจับเวลา BSF
BSF Timer สามารถใช้เพื่อสร้างความล่าช้าระหว่างคำขอของผู้ใช้แต่ละรายโดยใช้ BSF ภาษาสคริปต์
JSR223 เครื่องตั้งเวลา
JSR223 Timer สามารถใช้เพื่อสร้างความล่าช้าระหว่างคำขอของผู้ใช้แต่ละรายโดยใช้ เจเอสอาร์223 ภาษาสคริปต์
วิธีการใช้ตัวจับเวลาคงที่
ในตัวอย่างนี้ คุณจะใช้ ตัวจับเวลาคงที่ ในการตั้งค่า ความล่าช้าคงที่ ระหว่างคำขอของผู้ใช้ไปยัง google.com
เริ่มต้นด้วยสคริปต์ทดสอบง่ายๆ
- JMeter สร้าง หนึ่ง คำขอของผู้ใช้ไปที่ http://www.google.com 100 ครั้ง
- ความล่าช้า ระหว่างคำขอของผู้ใช้แต่ละคนคือ 5000 ms
ที่นี่คือ แผนงาน สำหรับตัวอย่างเชิงปฏิบัตินี้:
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 (แสดงในรูปด้านบน)
การแก้ไขปัญหา
หากคุณประสบปัญหาขณะดำเนินการตามสถานการณ์ข้างต้น … ให้ทำดังต่อไปนี้
- ตรวจสอบว่าคุณเชื่อมต่ออินเทอร์เน็ตผ่านพรอกซีหรือไม่ ถ้าใช่ ให้ลบพรอกซีออก
- เปิดตัวอย่างใหม่ของ JMeter
- เปิด ตัวจับเวลาTestPlan.jmx ใน Jmeter
- Double คลิกที่กลุ่มเธรด -> ดูผลลัพธ์ในตาราง
- เรียกใช้การทดสอบ