我是JBehave Rest自动化脚本的新手。下面我写了几行代码,我的要求是将每个实际的JSON字段数据与预期的数据进行比较。这里JSON中的字段数量巨大,我如何以最佳方式编写脚本来处理这种情况。
JSONObject actualjson = new JSONObject(actualJsonresponse);
JSONArray actualjsonData = actualjson.getJSONArray("outputDtlList");
JSONObject expectedjson = new JSONObject(RTRestServicesBean.getConfigurationJsonConfigValue());
JSONArray expectedjsonData = expectedjson.getJSONArray("outputDtlList");
String actual_storagetype = actualjsonData.getJSONObject(0).getString("storageType");
String expected_storagetype = expectedjsonData.getJSONObject(0).getString("storageType");
Assert.assertEquals(actual_storagetype, expected_storagetype);
String actual_locnNbr = actualjsonData.getJSONObject(0).getString("locnNbr");
String expected_locnNbr = expectedjsonData.getJSONObject(0).getString("locnNbr");
Assert.assertEquals(actual_locnNbr, expected_locnNbr);
答案 0 :(得分:1)
考虑使用net.javacrumbs.json-unit:json-unit。
import static net.javacrumbs.jsonunit.JsonAssert.*;
...
assertJsonEquals(expectedjson, actualjsonData);
答案 1 :(得分:0)
考虑切换到Karate,它会更好地处理完整的JSON有效负载比较 :
* def json = { foo: 'world', hey: 'ho', zee: [1, 2, 3] }
* remove json.hey
* match json == { foo: 'world', zee: [1, 2, 3] }