当前位置: 首页 > 知识库问答 >
问题:

使用GPath进行RestAssured Json响应验证

仲浩旷
2023-03-14

我收到了针对我的API的错误请求的以下响应。我将RestAssured用于我的rest响应断言。

{
    "message": "An entity of type topic was passed in an invalid format",
    "meta": {
        "display": {
            "topic": [
                {
                    "name": [
                        "must not be blank"
                    ]
                },
                {
                    "contentType": [
                        "must not be blank"
                    ]
                },
                {
                    "content": [
                        "must not be blank"
                    ]
                },
                {
                    "version": [
                        "must not be blank"
                    ]
                }
            ]
        }
    }
}

我需要验证响应的所有属性的值。我正在努力验证此路径:元显示主题类型。我无法为它想出GPath。

以下是我所作的断言:

given().body("{}").when()
            .post(BASE_URL)
            .prettyPeek()
            .then()
            .statusCode(400)
            .contentType(ContentType.JSON)
            .body("message", is("An entity of type topic was passed in an invalid format"),
                    "meta.display.topic.contentType", is("must not be blank"));

由于路径不正确,断言总是失败。

共有1个答案

韩琛
2023-03-14

为了避免主题对象的硬编码数组位置,可以使用以下方法:

meta.display.topic.find { it.contentType != null }.contentType[0]
 类似资料:
  • 问题内容: 我是Go的新手,我正在尝试构建一个简单的HTTP服务器。但是我在JSON响应中遇到了一些问题。我编写了以下代码,然后尝试邮递员发送一些JSON数据。但是,我的邮递员总是得到空响应,而is 。然后,我在http://www.alexedwards.net/blog/golang-response- snippets#json中 检查了一个示例。我复制并粘贴了示例,并且效果很好。但是我看不

  • 现在,根据响应,我希望在JSR223断言中验证响应是否基于chgId字段是正确的。这意味着在两个“data”数组“chgid”中都应该出现405文本。 有人能建议吗?

  • 我正在尝试上传一个xml文件。当使用MultipartEntityBuilder将二进制格式的文件添加到HttpEntity时,我收到以下错误 我已经通过了链接 https://www.baeldung.com/httpclient-multipart-upload 我的理解是,该文件不被接受,因为http实体无法发送MultipartEntityBuilder,但我可能错了。

  • 问题内容: 我有一个简单的代码,可为特定路由提供JSON响应。这是我当前的代码: 如何使XML响应等效于上述JSON? 问题答案: 您可以使用npm上可用的任何数量的XML库。这是使用简单命名的“ xml ”库的示例: 有关如何将JavaScript对象转换为XML的描述,请参见模块的文档。当然,如果您需要以特定的XML格式返回的内容,则还有更多工作要做。

  • 我想知道如何在ReactJS上使用setTimeout(),因为我正在这样做: 它调用两次函数this.reqMaq()。 如何防止第一次通话?在时间结束后继续打电话? 这是组件: 谢谢你。

  • 我试图断言Json响应在我的jmetm使用Beanshell断言。下面是我的代码。 下面是我必须验证的Json路径 运行脚本后,我得到以下脚本。 断言失败消息:org。阿帕奇。乔芬。util。JMeterException:调用bsh方法时出错:评估源文件:内联评估:``导入组织。json。JSONObject;导入组织。json。杰索纳雷;导入java。lang.String;…'':类型化变量