2017-09-29 11 views
2

私は、単純なJSONを持っていると私は2つのプロパティを取得したいと思います:jsonpathを使用してjsonから複数の要素を取得するにはどうすればよいですか?

corematchingをしてcore : truematching : trueかどうかを確認します。

{ 

    "lockVersion" 
    : 1, 

    "updatedBy" : "jan", 

    "updatedOn" : "2016-09-25T11:21:45Z", 

    "id" : 964, 

    "title" : "Corporate Numeric", 

    "description" : null, 

    "descType" : 31084140, 

    "descValueType" : 31084136, 

    "defaultSourceOfVerification" : "Source", 

    "core" : true, 

    "matching" : true, 

    "anything" : 
    [ 

    ], 

    "authorized" 
    : 
    [ 
     1 
    ] 


} 

が使用してこれを実行することが可能であり、オペレータまたは私は私の最終的な結果を得るために再びフィルタリングし、その後1セットを抽出するために、2段階のアクションを実行する必要がありますか? jp @ gc - JSONパスアサーションを使用します。

答えて

2

次のようにあなたのJSONパスのアサーションを設定します。

  • JSONパス:[?($.core == true && $.matching == true)]
  • ティックValidate against expected valueボックス
  • 期待値:[]
  • ティックInvert Assertionボックス

JMeter JSON Path Assertion

参考文献:

+0

私はあなたの答えをupvoted、ありがとう –

+0

このソリューションは、私のために働く、ありがとう;-) – Kac

1

JSONパスアサーションプラグインの場合はDmitri T answerを参照してください。

だから、 "のJMeter変数" コアのJMeterを使用して、あなたがスコープを持つJSON ExtractorResponse Assertionを使用して、このようにそれを行うことができます。

enter image description here

enter image description here

enter image description here

enter image description here

+0

@The素敵downvotersは、あなたがdownvoted理由にコメントを置くことができますか?私はまだあなたを愛しています:-) –

-1

これを実現するには、BeanShellアサーションと組み込みJSONパーサを使用できるはずです。

import net.minidev.json.parser.JSONParser; 
import net.minidev.json.JSONObject; 
import net.minidev.json.JSONArray; 


try { 

    // Use JSONParser to parse the JSON 
    JSONParser parser = new JSONParser(JSONParser.ACCEPT_NON_QUOTE|JSONParser.ACCEPT_SIMPLE_QUOTE); 
    JSONObject rootObject = (JSONObject) parser.parse(prev.getResponseDataAsString()); 

    if (rootObject.get("matching") && rootObject.get("core")) { 
     Failure=false; 
    } 
    else { 
     Failure=true; 
    } 


} 
catch (Exception ex) { 
    log.info("Exception.." + ex); 
    Failure=true; 
} 
関連する問題