给定我有这个JSON数组:
{
value: ["000", "111", "345", "987"]
}
我想使用Rest-assured使用它的给定/when/then结构来验证字段的格式。
given().
queryParam("myparam", myparamvalue).
when().
get(callRoot).
then().
body("value", matchesPattern("[0-9][0-9][0-9]");
我如何放心地循环并对JSON数组中的每个值应用测试?
我不知道JSON数组中会有多少个值。它可能只有1;它可能是100。
您可以使用 JsonPath
并执行以下操作:
given().
queryParam("myparam", myparamvalue).
when().
get(callRoot).
then().
body("value.*", matchesPattern("[0-9][0-9][0-9]");
详见https://github . com/rest-assured/rest-assured/wiki/usage # JSON-example。
或者,您可以将响应提取为字符串
,将其转换为 JSONObject
,在值
字段中提取 JSONArray
,然后将正则表达式应用于数组中的每个项目:
Response response = given().queryParam("myparam", myparamvalue).when().get(callRoot).
JSONObject responseJson = new JSONObject(response.getBody().asString());
JSONArray values = responseJson.getJSONArray("values");
for(int i = 0; i < values.length(); i++) {
String value = values.getString(i);
Assert.assertThat(values, matchesPattern("[0-9][0-9][0-9]"));
}
我是新手,尝试使用json模式验证器版本4.3.0进行一些验证。运行时会出错。在这方面需要帮助。 这是我的模式(sample.json): 我的json响应是这样的: 编写的测试用例是: 我/我得到的错误是: 此外,我想知道是否有可能验证不同的数据类型,如字符,日期,数字?如果是的话,那也帮我一下。 提前感谢...
我正在尝试使用模式验证响应JSON。即使尝试使用错误的模式验证响应,测试用例也会通过。 JSON响应: JSON模式: 我预计这里会出现错误,因为响应不包含所需的served_imsi值。但考验正在通过。
我正在尝试使用jsonPath从JSON数组中提取值。 JSON响应示例: 目前的测试如下: 然而,我一直在处理我的错误代码。我只想知道它的价值。
我有通过ajax调用存储数据的数组索引。我只想对数组中的一个索引进行验证。这是我的代码。 我只需要验证为 来自前端的数组如下所示
我有一个示例JSON响应 如何验证何时然后当然后 尝试过类似的东西,但它不起作用。 我错过了什么还是做错了什么?
我有一个带有GET方法的Rest API,其响应如下所示: [{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{,{,},{,{,},{,{,},{,{,},{,{,}这个响应的大小基于查询字符串是可变的,所以我不能用size方法验证它。 使用rest-assured,如何验证JSON响应有空对象,但JSON数组的大小不是零? 换句