2017-01-13 4 views
0

Ich habe einen BeanShell PostProcessor unter der SetUp Thread Group.
Es generiert eine ArrayList, die ich als eine Systemeigenschaft an die Test-Thread-Gruppen im Testplan übergeben möchte.
Dieses Array enthält die Anzahl der Threads in den Testgruppen.
Was ist die Syntax? Wie sollte ich ein Element dieses Arrays in der Tread Group "Anzahl der Threads (Benutzer)" verweisen?JMeter - Wie ein Array in eine Eigenschaftsvariable übergeben?

Dies ist, was ich in der setUp Thread-Gruppe

ArrayList users = new ArrayList(); 
${__setProperty(users, ${users})}; 

Dies ist, was ich in der Anzahl der Threads setzen

${__P(users).get(0)} 

Es funktioniert nicht haben.
Dank enter image description here enter image description here

Antwort

1

Wenn Sie wirklich die "Arraylist" benötigen, können Sie sie gehen bsh.shared namespace

  1. In setUp Thread-Gruppe mit setzten die Arraylist in den "bsh.shared" Namespace wie:

    ArrayList users = new ArrayList(); 
    users.add(5); 
    bsh.shared.users=users; 
    
  2. Im normalen Thread-Gruppe können Sie den Wert über __BeanShell function lesen als:

    ${__BeanShell(bsh.shared.users.get(0),)} 
    

Allerdings glaube ich, dass Ihr Test schlecht konzipiert ist und Sie loswerden Scripting oder zumindest die Verwendung von Arrays werden könnten.

+0

Dmitri, Ihr Vorschlag funktioniert nicht. Ich habe die Screenshots angehängt. Warum denkst du, dass es ein schlechtes Design ist? Ich lese eine JSON-Datei einmal in der setup-Thread-Gruppe und übergebe alle Arrays von Variablen an die anderen Thread-Gruppen im Testplan. – Vladimir

+0

Mein Vorschlag funktioniert, Ihr Beanshell PreProcessor in der SetUp-Thread-Gruppe funktioniert nicht, da [PostProcessors] (http://jmeter.apache.org/usermanual/component_reference.html#postprocessors) für die Verwendung in Verbindung mit Samplern entwickelt wurde, wenn Es gibt keinen Sampler - der Postprozessor wird ignoriert. Ändern Sie es in Sampler und alles wird wie erwartet funktionieren. Weitere Informationen zur Verwendung von Beanshell-Skripts in JMeter-Tests finden Sie unter [So verwenden Sie BeanShell: JMeters bevorzugte integrierte Komponente] (https://www.blazemeter.com/blog/queen-jmeters-built-componentshow-use-beanshell) . –

+0

Danke, Dmitri. Es funktioniert jetzt wirklich! In meinem Beispiel habe ich einen HTTP-Sampler und einen BeanShell PostProcessor angeschlossen. Ihre Lösung wird auch in diesem Fall funktionieren. – Vladimir

Verwandte Themen