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

根据RESTAssured/Java中的JSON响应验证UI

雷锋
2023-03-14

我有一个测试场景,其中Web应用程序中的字段填充了来自json响应的数据。

例如-

 {
    "viewcode": 20,
    "actioncode": 40,
    "subcode": 0,
    "errorcode": 5,
    "username": "MANAGER",
    "database": "somedb",
    "data": {
        "personid": "070976",
        "hidden_first": "",
        "hidden_second": "",
        "hidden_third": ""
    }
}

为了实现这一点,我了解了RestAsure和HTTP客户端库,但我不确定如何发送请求部分或检索响应,因为在许多情况下响应非常大(超过150个名称值对)。

以下是我尝试过的:

RestAssured.baseuRL="someurl"

RequestSpecification httpRequest=RestAssured.given();

Response response=httpRequest.request(Method.POST,"{{"viewcode":20, "actioncode":40, "subcode":0, "errorcode":5, "username":"MANAGER",  "database":"somedb", "data":{ "personid":"070976", "hidden_first":"", "hidden_second":"", "hidden_third":"" }}");

String responseBody=response.getBody.asString();

现在,我在 Method.POST 行中遇到错误,它的显示语法错误也使我对是否有其他方法感到困惑。

共有1个答案

濮阳征
2023-03-14

您需要转义一些符号(特别是):

"{\"viewcode\":20, \"actioncode\":40, \"subcode\":0, \"errorcode\":5, \"username\":\"MANAGER\",  \"database\":\"somedb\", \"data\":{ \"personid\":\"070976\", \"hidden_first\":\"\", \"hidden_second\":\"\", \"hidden_third\":\"\" }}"

在您的代码中:

String json = "{\"viewcode\":20, \"actioncode\":40, \"subcode\":0, \"errorcode\":5, \"username\":\"MANAGER\",  \"database\":\"somedb\", \"data\":{ \"personid\":\"070976\", \"hidden_first\":\"\", \"hidden_second\":\"\", \"hidden_third\":\"\" }}";
httpRequest.body(json);
Response response = httpRequest.post("/replace_with_your_endpoint");

可以在此处找到要转义的字符的完整列表。

 类似资料:
  • 当我请求GET请求时,我得到了JSON响应,但这里我的要求是验证响应体的结构。 例如: 上面的响应有结构,所以我需要验证结构而不是键值对,我如何实现?

  • 我收到了针对我的API的错误请求的以下响应。我将RestAssured用于我的rest响应断言。 我需要验证响应的所有属性的值。我正在努力验证此路径:。我无法为它想出GPath。 以下是我所作的断言: 由于路径不正确,断言总是失败。

  • 这是要根据模式验证的JSON。 问题是,如果我们传递了错误的数据,它将正确地验证eid和ename的类型(即整数或字符串)。对于例如: 如果我们为限定传递了错误的类型,那么它将验证为true(即,它不验证限定的类型,可能是因为它是嵌套的)。

  • //Json响应 我想验证名称是否为REST,然后描述是否为表示状态传输,如果名称为SOAP,然后描述是否为简单对象访问协议。有超过20条类似的响应记录,我如何使用通用参数放心地完成它。

  • 问题: 有没有一种普通的或本机的javascript方法来根据JSON模式验证JSON脚本? 我在Github上找到了很多库,但没有原生/普通的解决方案。EcmaScript没有对此的规范吗?没有浏览器(或nodejs)有办法原生验证JSON吗? 问题的背景: 我有一个非常复杂的模式,我开发了一个。它应该与一个脚本一起工作,该脚本要求传入其中的 JSON 数据符合架构。

  • 问题内容: 我使用Swagger定义创建了REST API,现在我需要使用该Swagger模式验证传入消息。我发现了几种解决方案,但是它们都依赖于某些特定的用例。最接近我需要的是它,并且按照它的描述,它可以与提供的json模式一起很好地工作,但是当我提供更复杂的swagger定义时,它只是将所有内容标记为有效。我的问题是。是否有更好,更完整或胜任的解决方案库,可以根据Swagger定义本地验证给定