2017-10-18 2 views
1

Ich habe diese einfache Aufgabe:Set Jmeter globales JavaScript-Objekt

var apple = { 
    type: "macintosh", 
    color: "red", 
    getInfo: function(int){ 
     return "test" + int; 
    } 
} 

In Jmeter ich dieses Objekt in eine globale Variable setzen will, das mir dieses Objekt zugreifen kann.

Ich habe versucht:

vars.putObject("test",apple); (In einem Pre-Prozessor, so vor allem die Aussagen)

var test = vars.getObject("test"); (In allen Behauptungen)

Aber es scheint, dass die Funktion als String gegossen wird und deshalb kann ich es nicht in meinen Behauptungen verwenden.

Wie funktioniert das?

Antwort

1

Wenn Sie Wenn Sie nach einer "globalen" Lösung suchen, müssen Sie JMeter Properties anstelle von JMeter-Variablen berücksichtigen, statt stattdessen props Kurzschreibweise zu verwenden von vars. Wie pro Sharing Variables Bedienungsanleitung Kapitel:

Die get() und put() Methoden nur Variablen mit String-Werte unterstützen, aber es gibt auch getObject() und putObject() Methoden, die für beliebige Objekte verwendet werden können. JMeter-Variablen sind lokal für einen Thread, können aber von allen Testelementen (nicht nur von Beanshell) verwendet werden. Wenn Sie Variablen zwischen Threads teilen, dann können JMeter Eigenschaften

Zum Beispiel in einem Testelement verwendet werden:

props.put('test', apple) 

In einem anderen (kann auch in einer anderen Thread-Gruppe sein

)
var apple = props.get('test') 
log.info(apple.getInfo(1)) 

JMeter Properties across thread groups.

Beachten Sie auch, dass starting from JMeter 3.1 it is recommended to use Groovy language for any form of scripting als Groovy-Leistung ist viel besser als andere Skriptoptionen, überprüfen Sie Apache Groovy - Why and How You Should Use It Leitfaden für weitere Details.

0

In JMeter Sie Java-Sprache verwenden können, die Sie Object Apfel

public class apple { 
    String type = "macintosh"; 
    String color = "red"; 
    public String getInfo(){ 
     return "test"; 
    } 
}; 
var a = new apple(); 

vars.putObject("a",a); 

Und es seine Methoden später bekommen und verwenden hinzufügen:

var a = vars.getObject("a"); 
log.info(a.getInfo()); 

Sie können auch create Java classes with groovy