2017-04-19 3 views
0

Ich habe einen JMeter-Testplan, der einmal eine einfache Aktion ausführt.Anzahl der Threads in einer Thread-Gruppe aus der Setup-Thread-Gruppe (Jmeter)

Das Problem, das ich habe, ist, dass mein Test-Setup wissen muss, wie viele Threads die Thread-Gruppe haben wird. Um die Dinge klarer, hier ist eine einfache Darstellung des Prüfplans:

setUp Thread Group 
    needs to know the number of threads in the below thread group 
Thread Group 
    The number of threads for this thread group is determined via the "Number of Threads (users)" Thread Property. 

Ich kann dynamisch die Anzahl der Threads aus der Thread-Gruppe, aber ich kann keinen Weg, um diese Zahl finden aus stattdessen die Setup-Thread-Gruppe.

Irgendwelche Ideen?

Idealerweise hatte ich gehofft, etwas wie ${__groovy(ctx.getTestPlan().getThreadGroupByIndex(1).getNumThreads())} zu finden, aber ich kann nichts dergleichen finden.

Um klar zu sein, ich suche nach der Anzahl der Threads wie direkt in JMeter in den Thread-Gruppe Eigenschaften zugewiesen. Diese Frage hat absolut nichts mit BlazeMeter zu tun und ist daher nicht ein Duplikat Get number of threads (defined via BlazeMeter) in a thread group from the setup thread group (jmeter)

+0

Possible Duplikat [Get Anzahl von Threads (via BlazeMeter definiert) in einer Fadengruppe aus der Setup-Fadengruppe (jmeter)] (http://stackoverflow.com/questions/43500371/get-Anzahl-von-Threads-definiert-via-Blazemeter-in-einem-Thread-Gruppe-from-the-Setup) –

+0

Es ist kein Duplikat, die andere Frage ist über die Anzahl der Threads zu finden zugewiesen von BlazeMeter, während dieser betrifft die Suche als direkt in JMeter zugewiesen – Shawn

+0

Wie führen Sie Ihren Test? Über die CMD-Eingabeaufforderung oder über die Benutzeroberfläche? –

Antwort

0

Die schnell, dass Sie nicht wissen, die Nummer von Threads zeigt an, dass Ihr Test schlecht konzipiert.

die Tatsache, dass Sie bereits gegeben worden gibt die Antwort auf die gleiche Frage 6 Stunden vor, dass Sie die Gemeinschaft zu lernen und es vorziehen, um Probleme zu lösen für Sie nicht bereit sind.

Nur für den Fall, dass ich einfachere Wörter wiederholen werde:

  • wenn Sie eine JMeter Einschränkung überwinden Sie Scripting gehen müssen
  • der empfohlene Ansatz JSR223 Test Elements und Groovy language
  • JMeter-API-Referenz Leben bei https://jmeter.apache.org/api/
  • Check out Groovy Is the New Black Artikel verwendet für Beispiele für die Verwendung Groovy mit JMeter API
  • Beispiel Code, der die Anzahl der Fäden für alle Fadengruppen zu erhalten:

    import org.apache.jmeter.engine.StandardJMeterEngine 
    import org.apache.jmeter.threads.ThreadGroup 
    import org.apache.jorphan.collections.HashTree 
    import org.apache.jorphan.collections.SearchByClass 
    import java.lang.reflect.Field 
    
    StandardJMeterEngine engine = ctx.getEngine() 
    Field test = engine.getClass().getDeclaredField("test") 
    test.setAccessible(true) 
    HashTree testPlanTree = (HashTree) test.get(engine) 
    
    SearchByClass<ThreadGroup> threadGroupSearch = new SearchByClass<>(ThreadGroup.class) 
    testPlanTree.traverse(threadGroupSearch) 
    Collection<ThreadGroup> threadGroups = threadGroupSearch.getSearchResults() 
    threadGroups.each { 
        log.info("Thread Group: " + it.getName() + "; Number of threads: " + it.getNumThreads()) 
    } 
    

    Demo:

    JMeter Groovy get thread groups number

+0

Ich habe deine Antwort akzeptiert, aber ich denke, es wäre viel besser ohne die Trash Talk. Deine Annahmen über mein Verhalten tragen nichts zur Gemeinschaft bei und sie sind falsch. Ich habe vor 6 Stunden keine Antwort auf die gleiche Frage erhalten, es ist tatsächlich nicht dieselbe Frage, wie ich in meinem Beitrag erklärt habe. Sie können sogar bemerken, dass die funktionierende Antwort auf die vorherige Frage in diesem Fall nicht funktioniert. In beiden Fällen habe ich mich selbst mit Scripting versucht und gescheitert. In der Tat, Ihr Code ist alles andere als trivial für jemanden, der groovy und die Jmeter Runtime neu ist. – Shawn

+0

Deshalb habe ich diese Frage als mögliche Duplikate markiert :) –

1

Sie können versuchen, eine benutzerdefinierte Variable im Testplan zu definieren, lassen Sie uns „Users_test“ sagen und es die Anzahl der virtuellen Benutzern zuweisen Sie möchte den Test durchführen.

Dann einfach diese Variable in der Thread-Gruppe „Anzahl der Threads (Benutzer) verwenden. $ {Users_test}, und Sie können in der setUp das gleiche tun

+0

+1 Ja, das ist Plan B. Ich hatte gehofft, Zugriff speziell auf den Wert von den Thread-Gruppe Eigenschaften erhalten. – Shawn

Verwandte Themen