2 つの異なるサーバーからの JSON 応答を比較しています。それらは基本的に一致するはずですが、キャッシングのために、温度、風速などのフィールドにいくつかの小さな違いがあります.
現在、次のように常に失敗する特定のフィールドを無視するためのカスタマイズを使用しています。
JSONAssert.assertEquals(response2.getResponseBodyContent(), response1.getResponseBodyContent(),
new CustomComparator(JSONCompareMode.LENIENT,
new Customization("**.TimeStamp", {a, b -> true}),
new Customization("**.EpochTime", {a, b -> true})
));
質問:
- 範囲を指定するにはどうすればよいですか (温度は 10 以内でかまいません)。
- 値が特定のタイプ (文字列、整数) にのみ一致するように指定する方法は?
JSON サンプル:
JSON1
"Temperature":{
"Metric":{
"Value":4.6,
"Unit":"C"
},
"Imperial":{
"Value":40.0,
"Unit":"F"
}
},
"Wind":{
"Direction":{
"Degrees":293,
"English":"WNW"
},
"Speed":{
"Metric":{
"Value":19.4,
"Unit":"km/h"
},
"Imperial":{
"Value":12.1,
"Unit":"mi/h"
}
}
JSON2
"Temperature":{
"Metric":{
"Value":5.1,
"Unit":"C"
},
"Imperial":{
"Value":43.0,
"Unit":"F"
}
},
"Wind":{
"Direction":{
"Degrees":271,
"English":"ENE"
},
"Speed":{
"Metric":{
"Value":19.9,
"Unit":"km/h"
},
"Imperial":{
"Value":12.4,
"Unit":"mi/h"
}
}
groovy/java をサポートする Katalon というテスト ツールを使用しています。どんな助けでも大歓迎です。ありがとう!