2016-09-27 8 views
0

をアサートIは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,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]

私は意志、いくつかのアサーションを記述する必要があります基本的にこれらの値が範囲内にあることを主張するex:30と60の間。 jmeteでこれをどのようにアサートするかについての指針は得られていないr。

答えて

1

JMeterは適切なテストエレメントを提供していないため、スクリプトを実行する必要があります。

以下のコードは、JMeterのバージョンが3.0以上であることを前提としています。以前のJMeterバージョンでは、あなたはBeanShellのアサーション「スクリプト」領域に

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

    } 

} 

を次のコードを入れてJSONパスポストプロセッサ

  • Beanshell Assertionを追加JMeter Classpath

    1. のどこかにJson-smartライブラリを配置する必要があります指定された範囲外の値が見つかると、Beanshellアサーションは親サンプラーに失敗します

      Beanshell assertion in work

    は、スクリプトを使用してJMeterのテストを強化するの詳細についてはHow to Use BeanShell: JMeter's Favorite Built-in Componentの記事を参照してください。

  • +0

    は魅力的に働いた。あなたの25kの評判はそれ自体のために語ります。 – vishal

    +0

    Bol'shoye spasibo – vishal

    関連する問題