ผู้ควบคุมใน JMeter: ลูป, ตรรกะ, ธุรกรรม

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

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

  • 🎛️ ตัวควบคุมตรรกะ: ตัวควบคุมจะกำหนดลำดับการทำงานของคำขอในเธรด
  • 🔁 ตัวควบคุมลูป: เรียกใช้ตัวอย่างตามจำนวนครั้งที่กำหนดภายในลูปของเธรด
  • 🎲 ตัวควบคุมแบบสุ่ม: เรียกใช้คำขอของลูกในลำดับแบบสุ่มในแต่ละรอบ
  • 🧩 ตัวควบคุมโมดูล: เพิ่มความยืดหยุ่นด้วยการเลือกโมดูลที่จะเรียกใช้งาน
  • ⏺️ ตัวควบคุมการบันทึก: ร้านค้าบันทึกขั้นตอนการทดสอบไว้เป็นข้อมูลอ้างอิงชั่วคราว
  • 🤖 ความช่วยเหลือจาก AI: AI ช่วยในการออกแบบและวิเคราะห์ JMeter แผนการทดสอบประสิทธิภาพ

ผู้ควบคุมใน JMeter

ตัวควบคุมลอจิกคืออะไร?

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

ตัวควบคุมลอจิกเป็นผู้กำหนด การสั่งซื้อสินค้า ซึ่งคำขอของผู้ใช้ถูกดำเนินการ

คอนโทรลเลอร์ลอจิกที่ใช้กันทั่วไปบางตัวมีดังต่อไปนี้:

ตัวควบคุมลอจิก

ตัวควบคุมการบันทึก

JMeter สามารถ ระเบียน ธุรกิจ การทดสอบ ขั้นตอน; ตัวควบคุมการบันทึกคือ ตัวยึด เพื่อจัดเก็บขั้นตอนการบันทึกเหล่านี้

ตัวควบคุมการบันทึก

คอนโทรลเลอร์อย่างง่าย

Simple Controller เป็นเพียง ภาชนะ สำหรับคำขอของผู้ใช้

คอนโทรลเลอร์อย่างง่าย

ตัวควบคุมลูป

Loop Controller ทำให้คำขอของผู้ใช้ทำงาน ตามจำนวนครั้งที่กำหนด หรือวิ่ง ตลอดไป ดังแสดงในรูป:

ตัวควบคุมลูป

ตัวควบคุมแบบสุ่ม

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

ตัวอย่างเช่น คุณมีคำขอของผู้ใช้ 3 รายไปยังเว็บไซต์ http://www.google.com ตามลำดับดังนี้:

  1. คำขอ HTTP
  2. คำขอ FTP
  3. คำขอ JDBC

คำขอทั้ง 3 รายการนี้ควรทำงาน 5 ครั้ง รวมแล้วจะมีการส่งคำขอจากผู้ใช้ทั้งหมด 15 รายการ Google เซิร์ฟเวอร์โดย JMeter.

In ตามลำดับ สั่งซื้อคำขอจะถูกส่ง ตามลำดับ ตามลำดับดังนี้:

คำขอ HTTP -> คำขอ FTP -> คำขอ JDBC

สำหรับแต่ละวง

ตัวควบคุมแบบสุ่ม

In สุ่ม สั่งซื้อคำขอจะถูกส่งเป็น สุ่ม

คำขอ FTP -> คำขอ HTTP-> คำขอ JDBC

Or

คำขอ JDBC -> คำขอ FTP -> คำขอ HTTP

สำหรับแต่ละวง

โมดูลควบคุม

เป้าหมายของ Module Controller คือการเพิ่มโมดูลาร์เข้าไป JMeter.

โดยทั่วไปแล้ว แอปพลิเคชันเว็บประกอบด้วยหน่วยการทำงานขนาดเล็ก (เช่น การเข้าสู่ระบบ การสร้างบัญชี การออกจากระบบ…) ฟังก์ชันการทำงานเหล่านี้สามารถจัดเก็บไว้ใน Simple Controller ในรูปแบบ "โมดูล" โดย Module Controller จะเลือกโมดูลที่จำเป็นต้องทำงาน

โมดูลควบคุม

ลองพิจารณาสถานการณ์ต่อไปนี้ –

คุณต้องการจำลอง:

  • ผู้ใช้ 50 ออกจากระบบ,
  • ผู้ใช้ 100 เข้าสู่ระบบ
  • ผู้ใช้ 30 ค้นหา www.google.com

คุณสามารถใช้ได้ JMeter เพื่อสร้าง 3 โมดูล แต่ละโมดูลจำลองแต่ละกิจกรรมของผู้ใช้: การเข้าสู่ระบบ ออกจากระบบ และการค้นหา

โมดูลควบคุม

ตัวควบคุมโมดูลจะเลือกโมดูลที่ต้องการรัน

โมดูลควบคุม

ผู้ควบคุมที่สำคัญอื่น ๆ

  • สอดใบแทรก ผู้ควบคุม: หยิบขึ้นมาและทำ หนึ่ง ของคำขอของผู้ใช้ที่รันเข้ามา แต่ละ ห่วงของด้าย
  • Runtime ตัวควบคุม: การควบคุม นานแค่ไหน ลูกหลานของมันได้รับอนุญาตให้วิ่งได้

ตัวอย่างเช่น หากคุณระบุ Runtime Controller 10 วินาที JMeter จะทำการทดสอบของคุณเป็นเวลา 10 วินาที

ผู้ควบคุมที่สำคัญอื่น ๆ

  • รายการ ตัวควบคุม: วัด เวลาโดยรวม นำตัวไป เสร็จสิ้น การดำเนินการทดสอบ
  • เพิ่ม ตัวควบคุม: ได้รับการออกแบบมาเพื่อใช้แผนการทดสอบภายนอก คอนโทรลเลอร์นี้อนุญาตให้คุณใช้แผนการทดสอบได้หลายแผน JMeter- ดูรายละเอียดใน JMeter การทดสอบประสิทธิภาพ.

ตัวอย่างตัวควบคุมลูป

ส่วนนี้จะแสดงคำแนะนำทีละขั้นตอนในการเพิ่ม ตัวควบคุมลูป ตั้งค่าเป็นแผนการทดสอบประสิทธิภาพปัจจุบันของคุณ

ตัวควบคุมลูปทำให้เครื่องเก็บตัวอย่างทำงานตามจำนวนครั้งที่กำหนด นอกเหนือจากค่าลูปที่คุณระบุไว้สำหรับกลุ่มเธรด เช่น ถ้าคุณ

  • เพิ่มคำขอ HTTP หนึ่งคำขอไปยังตัวควบคุมลูปโดยมีจำนวนการวนซ้ำ 50
  • กำหนดค่าการวนรอบกลุ่มเธรดเป็น 2
  • จากนั้น JMeter จะส่งคำขอ HTTP ทั้งหมด 50 * 2 = 100 รายการ

นี่คือ แผนงาน ของตัวอย่างนี้:

ตัวอย่างตัวควบคุมลูป

ขั้นตอนที่ 1) การกำหนดค่ากลุ่มเธรด

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

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

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

แต่ในแผงควบคุมกลุ่มเธรด ให้ป้อนคุณสมบัติเธรดดังนี้:

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

มันจะทำให้ หนึ่ง คำขอของผู้ใช้ไปยังเว็บเซิร์ฟเวอร์ google.com และเรียกใช้ 2 ครั้ง

  1. เพิ่ม JMeter องค์ประกอบ

เพิ่มค่าเริ่มต้นคำขอ HTTP เป็น www.google.com

  1. การเพิ่มตัวควบคุมลูป

คลิกขวาที่กลุ่มเธรด -> ตัวควบคุมลอจิก -> ตัวควบคุมลูป

การเพิ่มตัวควบคุมลูป

ขั้นตอนที่ 2) การกำหนดค่าตัวควบคุมลูป

เพิ่มค่า 50 ลงในช่อง Loop Count ดังรูปด้านล่าง ก็จะทำให้ หนึ่ง คำขอของผู้ใช้ไปยังเว็บเซิร์ฟเวอร์ google.com เรียกใช้ 50 ครั้ง นอกเหนือจากค่าลูป =2 ที่คุณระบุสำหรับกลุ่มเธรดด้านบน ดังนั้น JMeter จะส่งยอดรวม. 2 * 50 = 100 คำขอ HTTP

การกำหนดค่าตัวควบคุมลูป

คลิกขวาที่ Loop Controller, เพิ่ม -> Sampler -> คำขอ HTTP

การกำหนดค่าตัวควบคุมลูป

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

เราใช้ขั้นตอนที่ 2 อีกครั้งใน เครื่องจับเวลา เพื่อเพิ่มดูผลลัพธ์ในตาราง

ดังนั้นแผนการทดสอบจะแสดงดังรูปด้านล่าง

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

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

ตอนนี้กลับมาดูผลลัพธ์ในตาราง คลิกปุ่มเริ่มบนแถบเมนู (Ctrl+R) เพื่อทำการทดสอบ

ดังแสดงในรูปด้านล่าง JMeter จำลอง คำขอของผู้ใช้หนึ่งคน ซึ่งถูกส่ง 100 ครั้งไปยังเว็บเซิร์ฟเวอร์ http://www.google.com/- การทดสอบจะหยุดลงหลังจากส่งคำขอของผู้ใช้ไปแล้ว 100 ครั้ง

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

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

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

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

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

ตัวควบคุมธุรกรรม (Transaction Controller) จะวัดเวลาทั้งหมดที่ใช้ในการดำเนินการกลุ่มตัวอย่าง (sampler) ให้เป็นธุรกรรมเดียว มีประโยชน์สำหรับการจับเวลาขั้นตอนทางธุรกิจหลายขั้นตอน เช่น การเข้าสู่ระบบแล้วค้นหา แทนที่จะจับเวลาแต่ละคำขอแยกกัน

พวกมันจะเพิ่มจำนวนขึ้น หากตั้งค่า Loop Controller เป็น 50 และจำนวนลูปของ Thread Group เป็น 2 ตัวสุ่มตัวอย่างแต่ละตัวภายในคอนโทรลเลอร์จะทำงาน 50 ครั้งต่อรอบการทำงาน รวมเป็น 50 คูณ 2 ซึ่งเท่ากับ 100 คำขอ

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

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

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