2016-09-27 23 views
0

我已經從Json的路徑exression遍歷的JMeter的Json路徑數組值和斷言每個值

[40,40,40,40,40,40,40,40,40此過濾JSON響應, 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]

我需要寫一些斷言,基本上聲明這些值是在30至60之間的範圍內。 我沒有得到任何關於如何在jmete中斷言的指針河

回答

1

JMeter不提供適當的測試元素,因此您將不得不執行一些腳本。

以下代碼假定JMeter版本等於或高於3.0。對於早期JMeter的版本中,你將不得不把Json-smart庫某處JMeter Classpath

  1. 的JSON路徑PostProcessor中
  2. 將下面的代碼到BeanShell的斷言「腳本」區域後添加Beanshell Assertion

    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"; 
    
        } 
    
    } 
    

    如果超出給定範圍的值將被發現,Beanshell聲明將失敗父代採樣器

    Beanshell assertion in work

How to Use BeanShell: JMeter's Favorite Built-in Component文章與腳本提高你的JMeter測試的更多信息。

+0

像一個魅力工作。你的25k聲望本身就是有說服力的。 – vishal

+0

Bol'shoye spasibo – vishal