2016-09-27 7 views
0

Ich habe diese gefilterten JSON Antwort von Json Pfad exressionSchleife durch Array-Werte in jmeter Json Pfad und behauptet jeden Wert

[40,40,40,40,40,40,40,40,40, 40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40, 40,40,40,40,40,40,40,40,40,40,40,40,40,40,45,45,45,45,45,42,45,42,45,42,41,40, 35,37,35,45,42,41,40,35,37,35,45,42,41,40,35,37,35,45]

Ich muss eine Behauptung schreiben, die wird grundsätzlich behaupten diese Werte liegen in einem Bereich ex: zwischen 30 und 60. Ich bekomme keine Hinweise darauf, wie dies in jmete zu behaupten r.

Antwort

1

JMeter bietet keine geeigneten Testelemente, daher müssen Sie einige Skripte erstellen.

Der folgende Code geht davon aus, dass die Version von JMeter gleich oder höher als 3,0 ist. Für frühere JMeter Versionen finden Sie Json-smart Bibliotheken irgendwo in JMeter Classpath

  1. hinzufügen Beanshell Assertion nach dem JSON-Pfad Postprocessor
  2. Setzen Sie den folgenden Code in das Beanshell Assertion "Script" Bereich

    import net.minidev.json.JSONArray; 
    import net.minidev.json.parser.JSONParser; 
    import org.apache.commons.lang.math.IntRange; 
    
    
    String source = vars.get("yourVar"); 
    
    IntRange range = new IntRange(30, 60); 
    
    JSONParser parser = new JSONParser(JSONParser.MODE_JSON_SIMPLE); 
    JSONArray array = (JSONArray) parser.parse(source); 
    for (int i = 0; i < array.size(); i++) { 
        int value = (int) array.get(i); 
        if (!range.containsInteger(value)) { 
         Failure = true; 
         FailureMessage = "Detected value: " + value + " is not in the expected range"; 
    
        } 
    
    } 
    

    setzen haben Wenn der Wert außerhalb des angegebenen Bereichs gefunden wird, schlägt die Beanshell-Assertion beim übergeordneten Sampler fehl.

Siehe How to Use BeanShell: JMeter's Favorite Built-in Component Artikel für weitere Informationen über Ihre JMeter Tests mit Scripting zu verbessern.

+0

arbeitete wie ein Charme. Ihr 25k-Ruf spricht für sich. – vishal

+0

Bol'shoye Spasibo – vishal