【问题标题】:Validating UI against JSON response in RESTAssured/Java在 RESTAssured/Java 中针对 JSON 响应验证 UI
【发布时间】:2018-05-16 06:33:21
【问题描述】:

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

e.g-> 有一个字段 person id 输入时会填充 UI 中的其他十几个字段,根据响应中的其他隐藏字段响应启用或禁用某些字段。 所以,我必须将 json 响应与 UI 中显示的值相匹配。 JSON 请求和响应的格式类似于名称值对,如下所示:

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

我了解了 RestAssured 和 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 行中遇到错误,它显示语法错误,我也对是否有其他方法感到困惑。

【问题讨论】:

  • 问题应该用rest-assuredapi-testing标记。它与seleniumuser-interface 标签无关。

标签: java json rest-assured web-api-testing


【解决方案1】:

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

"{\"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");

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

【讨论】:

  • 感谢@Peter,语法错误现在消失了,但是在执行代码时我得到了非法参数异常:无效的参数数量:除了 1 是 0。未定义的参数是“我传递的任何 json 请求”跨度>
  • @startedlate 你用什么库来发出请求?
  • 放心3.1.0
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-01-02
  • 1970-01-01
  • 1970-01-01
  • 2016-08-14
  • 2021-12-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多