2012-09-24 11 views
7

मुझे स्पष्ट रूप से समझ में नहीं आता कि जेएमटर में "थ्रेड ग्रुप" का अर्थ क्या है। क्या इसका मतलब है कि सभी परीक्षण (जावा अनुरोध इत्यादि) एक थ्रेड में चलने वाले किसी निश्चित थ्रेड समूह से संबंधित हैं या उस थ्रेड समूह में प्रत्येक परीक्षण अलग थ्रेड में चलता है? मैं जेएमटर दस्तावेज या googling से इस बारे में स्पष्ट समझ नहीं मिल सका।जेएमटर में "थ्रेड ग्रुप" का अर्थ क्या है?

+0

http://docs.oracle.com/javase/7/docs/api/java/lang/ThreadGroup.html – SLaks

उत्तर

6

विवरण देखने के लिए:

एक thread group धागे एक ही परिदृश्य को क्रियान्वित करने का एक सेट है। कॉन्फ़िगरेशन में पुनरावृत्तियों की संख्या सेट करें। थ्रेड व्यवहार को रैंप के अनुसार परिभाषित किया जाता है और प्रति थ्रेड पुनरावृत्तियों की संख्या समाप्त होने के बाद नष्ट हो जाती है।

ध्यान दें कि संस्करण 2.8 से, आप थ्रेड निर्माण में देरी कर सकते हैं जब तक कि थ्रेड काम शुरू नहीं कर लेता है, यह उन परीक्षणों के लिए अनुकूलित किया जाएगा जो बहुत कम जीवित धागे और कई धागे का उपयोग करते हैं।

थ्रेड समूह वर्चुअल उपयोगकर्ताओं के सेट के रूप में देखा जा सकता है लेकिन जरूरी नहीं। यह आपके परीक्षण को कैसे विकसित करता है इस पर निर्भर करता है कि यह कुछ और हो सकता है।

+0

अच्छा लिंक। यह मेरे लिए इसे साफ़ कर दिया और यह बिल्कुल ठीक नहीं था कि मैंने सोचा था। – wmorrison365

1

थ्रेड = अनुरूपित उपयोगकर्ता।
तो थ्रेड समूह = उपयोगकर्ता।
डिफ़ॉल्ट थ्रेड समूह से कहीं अधिक नियंत्रण के साथ jMeter Plugins thread group controllers देखें।

4

जैसा कि मैंने समझा (जिसे मैं जानना चाहता था), जेएमटर थ्रेड समूह में सभी ऑपरेशन अनुक्रमिक रूप से प्रत्येक थ्रेड और पुनरावृत्ति के बाद एक बार चलते हैं। तो इसका मतलब है कि थ्रेड समूह में प्रत्येक ऑपरेशन थ्रेड के अपने अलग सेट में नहीं चलता है, लेकिन यह प्रत्येक धागे को अपने थ्रेड ग्रुप में अन्य परिचालनों के साथ साझा करता है।

उदाहरण के लिए,

  • थ्रेड समूह 1
    • ऑपरेशन 1
    • ऑपरेशन 2
    • ऑपरेशन 3

इस सूत्र समूह थ्रेड समूह हम निर्धारित किया है 3 धागे में चलाने के लिए, wha टी,

  • ऑपरेशन 1, ऑपरेशन 2 होता है, और ऑपरेशन 3 धागा 1.
  • ऑपरेशन 1, ऑपरेशन 2 में निष्पादित करेंगे, और ऑपरेशन 3 सूत्र में निष्पादित करेंगे 2.
  • ऑपरेशन 1, ऑपरेशन 2, और ऑपरेशन 3 थ्रेड 3 में निष्पादित होगा। आदि

पहले मुझे यकीन नहीं था कि इनमें से प्रत्येक ऑपरेशन अपने अलग थ्रेड पर चलता है या नहीं।

+0

आप अच्छी तरह से समझ गए। आपको इसे अपने प्रश्न में रखना चाहिए और उस उत्तर को स्वीकार करना चाहिए जो आपके लिए सबसे अच्छा है। –

0

बस आगे अपने ही जांच के बाद योगदान (स्पष्टता के लिए और पूर्णता मुझे आशा है कि) के लिए:

  1. एक ThreadGroup अनुरोध/"ऑपरेशन" है जैसा कि ऊपर वर्णित (मंजुला Weerasinge के सारांश में), लेकिन यह भी उपयोगकर्ताओं और छोरों है config।
  2. एक थ्रेड ग्रुप प्रति उपयोगकर्ता एक थ्रेड बनाता है। यह धागा (उपयोगकर्ता का प्रतिनिधित्व करता है) उस लूप में अनुक्रम में उस थ्रेड ग्रुप में सभी परिचालन चलाता है।
  3. ये धागे सभी छोरों भर में फिर से उपयोग किया जाता है - जो है: पाश 2 भी n विभिन्न उपयोगकर्ताओं के रूप में संचालन का एक ही सेट निष्पादित करेगा, लेकिन इस पाश के रूप में ही धागे का पुन: उपयोग होगा 1.

सारांश में, एक थ्रेड ग्रुप में प्रति उपयोगकर्ता एक थ्रेड होता है और इसका उपयोग सभी समूहों के लिए उस समूह में सभी परीक्षणों को चलाने के लिए किया जाता है।

यह 10 उपयोगकर्ताओं के साथ दो छोरों के लोग करते थे जहां अपने परीक्षण निहित निम्नलिखित:

System.out.println("MyTest#testSearchNodeByNodeNameExactMatch: MyTest=" 
     +this + "(" +System.identityHashCode(this) +")" 
     +", thread=" +System.identityHashCode(Thread.currentThread())); 

और लॉग का उपयोग संक्षेप किया जा सकता है (यह मानते हुए println उत्पादन थ्रेड-output.2.txt को पत्र लिखा):

grep MyTest#test thread-output.2.txt | awk -F ', ' '{print $2}' | sort | uniq 
संबंधित मुद्दे