แก้ไขกลุ่มเธรดของแผนการทดสอบ JMeter ภายนอก (ไฟล์ JMX)

Aug 18 2020

แอปพลิเคชันของฉันจะใช้ไฟล์ jmx เป็นแผนการทดสอบจากผู้ใช้และดำเนินการ ฉันได้แจกจ่ายการตั้งค่า JMeter ที่แบ็กเอนด์ของแอปพลิเคชันของฉัน (ไคลเอนต์ JMeter 1 เครื่องและเซิร์ฟเวอร์ JMeter หลายเครื่อง)

ความท้าทายที่ฉันเผชิญคือ #threads ที่จำเป็นในการดำเนินการตามแผนการทดสอบ

  1. ถ้าฉันรับ #instances (เซิร์ฟเวอร์ JMeter ที่ดำเนินการทดสอบ) และ #threads อย่างชัดเจนจากผู้ใช้ฉันจะกำหนดค่าแผนการทดสอบที่ผู้ใช้ให้มากับกลุ่มเธรดนี้ก่อนดำเนินการได้อย่างไร ซึ่งจะช่วยให้ฉันสามารถตรวจสอบค่าเหล่านี้กับคลัสเตอร์และความจุของเครื่องได้ล่วงหน้า

ฉันได้อ่านเกี่ยวกับ Include Controller แต่จำเป็นต้องมีแผนการทดสอบของผู้ใช้เพื่อให้มี Test Fragment

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

คำตอบ

1 DmitriT Aug 18 2020 at 15:47
  1. ไม่มีสิ่งที่เรียกว่า "#threads_per_instance" ในโลกของ JMeter หากคุณเรียกใช้ JMeter ในโหมดกระจายแต่ละเซิร์ฟเวอร์ (หรือทาสหรือตัวสร้างโหลด) จะเรียกใช้แผนการทดสอบ. jmx ที่ไคลเอ็นต์จัดเตรียมไว้เช่นนั้นหากผู้ใช้อัปโหลดไฟล์ด้วย 100 เธรดในกลุ่มเธรดและคุณมี 1 ทาส - คุณจะมีผู้ใช้ 100 คน หากคุณมีทาส 2 คน - คุณจะมีผู้ใช้ 200 คนเป็นต้น

    อีกประการหนึ่งคือคุณไม่สามารถบอกได้ว่าคุณจะสามารถจำลองเธรดจำนวนเท่าใดจาก JMeter slave ตัวเดียวได้ล่วงหน้าเนื่องจากส่วนใหญ่ขึ้นอยู่กับลักษณะของการทดสอบ: ขนาดคำขอ / การตอบกลับ, จำนวนตัวประมวลผลก่อน / หลัง, การยืนยัน, ผู้ฟัง ฯลฯ ฉันขอแนะนำให้ใช้การตรวจสอบสุขภาพ JMeter slaves บางรูปแบบและเตือนผู้ใช้หากการใช้งาน CPU หรือ RAM หรือเครือข่ายเริ่มเกิน 80% สามารถทำได้อย่างง่ายดายโดยใช้JMeter PerfMon Plugin

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