1

我是 SoapUI 的新手,我在其中运行了一个发布请求以创建用户。它返回了成功代码 201(与 Postman 相同),应该是,但它没有在响应窗口的 JSON 选项卡下显示任何数据。当请求在 Postman 中以 JSON 格式返回数据时,它应该在哪里显示一些数据。Postman 中返回的响应是:

{
"id": 107,
"creationTime": "2017-06-23T12:55:13.870+0000",
"lastUpdateTime": "2017-06-23T12:55:13.870+0000",
"username": "Testuserr",
"name": null,
"firstname": null,
"type": null,
"avatar": null,
"mobile": null,
"office": null,
"email": null,
"enabled": false,
"_links": {
    "self": {
        "href": "http://server/...../user/107"
    },
    "consultantUser": {
        "href": "http://server/...../user/107"
    },
    "roles": {
        "href": "http://server/...../user/107/roles"
    },
    "regularRole": {
        "href": "http://server/...../user/107/regularRole"
    },
    "userSkills": {
        "href": "http://server/...../user/107/userSkills"
    },
    "experiences": {
        "href": "http://server/...../user/107/experiences"
    },
    "educations": {
        "href": "http://server/...../user/107/educations"
    },
    "assignments": {
        "href": "http://server/...../user/107/assignments"
    },
    "certificats": {
        "href": "http://server/...../user/107/certificats"
    },
    "organisation": {
        "href": "http://server/...../user/107/organisation"
    },
    "sections": {
        "href": "http://server/...../user/107/sections"
    }
}
}

在 SoapUI 中它什么也不显示。

在此处输入图像描述

但是如果我第二次运行相同的请求,它会显示

{
   "cause":    {
      "cause":       {
         "cause": null,
         "message": "Duplicate entry 'TestName20181' for key UK_r43af9ap4edm43mmtq01oddj6'"
  },
  "message": "could not execute statement"
}

这与邮递员相同,应该是。那么第一次有什么问题呢?

如果有任何事情请帮助我,我在执行过程中失踪了......谢谢......

4

1 回答 1

1

我刚刚弄清楚了区别,201/200的内容类型/媒体类型为空白。邮递员智能地将内容类型检测为json并显示。

我刚刚走到开发人员办公桌前确认根本原因是否正确,是的,

对于 400(否定测试): 在异常处理程序类中,它们返回的媒体类型为

    HttpHeaders responseHeaders = new HttpHeaders();
    responseHeaders.setContentType(MediaType.APPLICATION_JSON);

    return new ResponseEntity(errors, responseHeaders, HttpStatus.BAD_REQUEST);

但是对于 201/200(正面测试): 他们没有根据 spring boot 框架设置 contentType,它的全局或默认设置。

解决方案#1:因此 DEV 必须为 SOAP UI 显式设置 contentType 为 JSON 以显示 json 主体,以便我们可以在其中编写测试脚本,否则您将只能在 SOAPUI 中看到空响应,尽管它是 200/201。

解决方案#2:在您的 SOAP UI 请求中,在“Header”中添加一个参数为 Accept = application/json. 这将在没有开发人员支持的情况下解决您的问题。

感谢https://community.smartbear.com/t5/SoapUI-Pro/Change-the-reponse-from-content-type-text-html-to-text-json/td-p/39628

截屏

于 2018-08-31T18:07:07.847 回答