2017-03-07 3 views
2

Ich habe ein Array in Bean Shell Assertion in Jmeter wie unten gezeigt geschrieben.Zugriff auf Array in Jmeter von einem Controller zu einem anderen Controller

String[] myList = {"CM_Name","OwnerID"}; 
for (int i = 0; i < myList.length; i++) 
{    
vars.put("create_"+myList[i],ctx.getCurrentSampler().getArguments().argumentsAsMap.get(myList[i])); 
log.info("create_"+myList[i]); 
} 

Ich möchte myList [] zugänglich in einer anderen Behauptung Beanshell sein, die in einem anderen Controller befindet. Ich habe versucht, diese

vars.put("myArr",myList); 

Aber es hat nicht funktioniert. Was kann ich tun, um das obige String-Array in einer anderen Bean Shell-Assertion abzurufen?

Antwort

1

vars.put() Methode erwartet String nur als zweites Argument daher können Sie nicht, dass es eine Reihe stellen, sind die Lösungen in:

  1. Verwenden vars.putObject() Methode wie:

    vars.putObject("myArr", myList); 
    

    Später werden Sie kann darauf zugreifen wie:

    String [] myList = vars.getObject("myArr"); 
    
  2. Verwenden bsh.shared namespace mag:

    In erster Behauptung:

    bsh.shared.myArr = myList 
    

    In zweiter Behauptung:

    String [] myList = bsh.shared.myArr 
    

    diese Weise werden Sie auch in der Lage Objekte zwischen dem verschiedenen Themen-Gruppen zu teilen.

Siehe How to Use BeanShell: JMeter's Favorite Built-in Component Artikel für mehr Beanshell bezogene Tipps und Tricks

+0

Vielen Dank für Ihre Hilfe. – LPatil

0

Sie putObject() können einen Schlüsselpunkt zu einem Objekt jeder Art zu lassen.

Hinweis Sie werden habengetObject() verwenden, um es in der späteren Behauptung abrufen. Wenn Sie dies nicht tun, erhalten Sie eine ClassCastException von einer Art.

Es ist Ihre Aufgabe, Strings und Objects davon abzuhalten, durcheinander zu kommen.

Protip: nie Speichern Sie alternativ Strings und Objekte unter dem gleichen Variablennamen. Dies öffnet tatsächlich eine kleine Tür zur Hölle Schwachstelle, wo Ihr Skript wird sprießen Dämonen Ausnahmen von einem Ort, aber der Täter wird in einem ganz anderen Skript sein. Quelle: Ich habe von einem Skript geerbt, das das überall tut.

+0

Vielen Dank für Ihre Hilfe. – LPatil

Verwandte Themen