2017-09-21 5 views
1

から要素を検索するunabel ...私は..サービスの自動化のための空手の自動化ツールを使用していますが、私は変数に格納されているJSONレスポンスから部門IDを抽出しようとしていますJSONファイル

DEF DepartmentIdの= getstorewalk .departments [*] ID

getstorewalkはJSON応答は以下

に格納されている私の変数は、JSONレスポンス

{ "walkzz" である: "001"、 "ZZ" ZZ」 「dz」「zz」「zz」「zz」「who」「zz」「11」「zz」「zz」「} 「名前」:「zz」、「someorder」:1、「zzs」:「{」「zz」:zz、「名前」:「zz(zz、 "zz":51、 "name": "zz Spread"、 "someorder":16、 "zz": "Available"、 "zz"、 "zz" 「zz」:「zz」:「zz」:「zz」「zz」:3「zz」:0「zz」:「古い」「zz」: "zz": "zz":["zz":2、 "zz": "zz"、 "zz":6、 "zzName": "Core zz(zz)"、 "zzz": "zz": "zzz": "zzz":100、 "somezz": "zzz & zz"、 "zz":{}、 "zz" ":" 100 "、" zz ":{" zz ":" 2017-09-21T11:09:15.524Z "、" who ":{" zz ":" 11 "、" zz ":" zz "}} "アクション":{"zz": "インクルード"}、 "zz":[{"キャプチャ":375716、 "zz": "ギャップ"、 "qty":15、 "zz": "zz"、 "zz" "zz": "zz": "N"、 "名前": "zz"、 "シーケンス":1}、 "zz":{"zz": "211"、 "who" :{"zz": "11"、 "zz": "zz"}}}]}

私はバックグラウンドで以下を使用しました:

  • DEF getstorewalk = callonce読み取る( 'クラスパス:ZZ/ZZ/zz.feature')
  • DEF DepartmentIdの= getstorewalk.departments [*] ID

とエラーを以下に示す:。 COM .jayway.jsonpath.PathNotFoundException:パス$ ['departments']のプロパティがありません com.jayway.jsonpath.internal.path.PathToken.handleObjectProperty(PathToken.java:72) at com.jayway.jsonpath.internal.path .PropertyPathToken.evaluate(PropertyPathToken.java:77) at com.jayway.jsonpath.internal.path.RootPathToken.evaluate(RootPathToken.java:62)01 com.jayway.jsonpath.internal.path.CompiledPath.evaluateでcom.jayway.jsonpath.internal.path.CompiledPath.evaluate(CompiledPath.java:53) (CompiledPath.java:61)com.jaywayで で。 jsonpath.jsonpath.read(JsonPath.java:187) at com.jayway.jsonpath.internal.JsonContext.read(JsonContext.java:164) at com.jayway.jsonpath.internal.JsonContext.read(JsonContext.java: 151) at com.intuit.karate.Script.evalJsonPathOnVarByName(Script.java:339) at com.intuit.karate.Script.eval(Script.java:262) at com.intuit.karate.Script.eval( Script.java:182) at com.intuit.karate.Script.assign(Script.java:606) at com.intuit.karate.Script.assign(Script.java:537) at com .intuit.karate.StepDefs.def(StepDefs.java:268) ??* def departmentId = getstorewalk.departments [*]。id(C:/ Karate/zz/zz/src/test/java/zz/zz) /zz.feature:11)

答えて

0

これは私のために働いています、空手のファイルの下に3行を貼り付けることができます。これはトラブルシューティングのヒントですが、HTTP呼び出しを行うことなくスニペットをテストすることができます。ログインする

* def getstorewalk = {"walkzz":"001","zz":zz,"ddd":"zz","zz":{"zz":"zz","who":{"zz":"11","zz":"zz"}},"departments":[{"id":need to extract this id,"name":"zz","someorder":1,"zzs":[{"zz":zz,"name":"zz (zz, zz, zz, zz & zz)","someorder":zz,"zz":[{"zz":51,"name":"zz Spread","someorder":16,"zz":"Available","zz":[{"zz":"1223","zz":"zz 30g","zz":3,"zz":0,"zz":"stale","zz":false,"zz":true,"zz":[],"zz":{"zz":2,"zz":"zz","zz":6,"zzName":"Core zz (zz)","department":56,"zz":"015 zz Spreads","zz":"zz Spread","subzz":100,"somezz":"zz & zz","zz":{},"zz_":100},"zz":{"zz":"2017-09-21T11:09:15.524Z","who":{"zz":"11","zz":"zz"}},"action":{"zz":"Include"},"zz":[{"capturezz":375716,"zz":"Gap","qty":15,"zz":"zz","zz":{"zz":"zz","type":"N","name":"zz","sequence":1},"zz":{"zz":"211","who":{"zz":"11","zz":"zz"}}}]}]}]}]}]} 
* def departmentId = getstorewalk.departments[*].id 
* print departmentId 

19:40:55.135 [main] INFO com.intuit.karate - [print] ["need to extract this id"] 

をだから、はっきりとあなたはgetstorewalkへの応答を割り当てるミスを犯してきました。

私の推測では、あなたがこれを行うためのものである:

def result = callonce read('classpath:zz/zz/zz.feature') 
def departmentId = result.response.departments[*].id 

慎重に他の機能ファイルを呼び出すにドキュメントを読んで、あなたはおそらく、あなたは間違ってやっていることを実感しますしてください。

+0

ピーター..私は別のリクエストから応答を受け取り、次のリクエストに部門IDを渡す必要があるため、応答のための最初の機能ファイルを呼び出す必要があります(部門ID )...あなたは変数にjsonファイルを直接格納しているので、動作しています。 ..私は応答を呼び出して、それを変数に格納する間違いをしていると思います。あなたが直接getstorewalkにレスポンスを格納している場合のためにソリューションが動作しています...どうすれば機能ファイルを呼び出し、ゲットストアウォーク? –

+0

@TanajiPadwalあなたは私の答えの最後の6行を読みましたか?再試行する。 –

関連する問題