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

使用REST进行JSON验证

佘单鹗
2023-03-14

我正在尝试验证Json Objects。我使用https://code.google.com/p/rest-assured/wiki/Downloads?tm=2,

import static com.jayway.restassured.module.jsv.JsonSchemaValidator.matchesJsonSchemaInClasspath;
import static org.hamcrest.MatcherAssert.assertThat;

import org.junit.Test;

public class testClass {


    @Test public void
    validates_schema_in_classpath() {
        // Given
        String JsonString = "{\"isSuccess\":false}";// Greeting response

        // Then
        assertThat(JsonString, matchesJsonSchemaInClasspath("greeter-schema.json"));
    }
}

greeter-schema.json:http://cs606926.vk.me/v606926718/15603/0Kauo1bTDi8.jpg

即使JsonString不等于这个“{\”isSuccess\“:false}”,我每次都有OK结果。

例如,当JsonString=“{\”isSuccess\“:false}”、{\“isFalse\”:true}”或“{\

共有2个答案

常炯
2023-03-14

您的 JSON 架构仅检查属性“是成功”是否存在,而不是它必须为真或假。您也可以使用json架构执行此操作,但我并不了解它。你可以谷歌看看 http://json-schema.org。

端木鹏
2023-03-14

使用RestAssured的模式验证仅声明存在该值。要对某个值进行断言,您必须准确地表示要获取该值所需的名称(在本例中为Success)。然后根据此派生值进行验证:

断言那().正文(“是成功”,等于到(假));

这个功能实际上就是RestAssured要做的,这里有很多关于它的信息:https://github . com/jayway/rest-assured/wiki/Usage # JSON-using-JSON path

 类似资料:
  • 问题内容: 我需要接收仅包含2个参数的HTTP Post Multipart: JSON字符串 二进制文件 设置身体的正确方法是哪一种?我将使用Chrome REST控制台测试HTTP调用,因此我想知道是否正确的解决方案是为JSON参数和二进制文件设置“标签”键。 在服务器端,我正在使用Resteasy 2.x,我将像这样阅读Multipart主体: 这是要走的路吗?使用标识该特定内容处置的键“

  • 我们在应用程序中使用CAS(Central Authentication Service)进行身份验证。 我们有很多REST API,我们需要测试REST调用。我们正在计划建立一个测试套件来测试所有其余的API。所以,我们想到为您的套房使用“放心”。 问题是身份验证。由于我们已经有了CAS,对于每个调用,它会重定向到请求用户名和密码的登录页面。是否有一个直接通过用户名和密码在一个镜头,并得到身份验

  • 问题内容: 是否有任何PHP库可根据JSON模式验证JSON对象? 问题答案: 关于jsonschemaphpv,尽管它维护得不是很好,但是我们经常使用它并且可以正常工作。这是js验证程序的端口。它具有针对php和http://code.google.com/p/jsonschema/的完整测试套件。 猜猜是什么…它比js传递了更多的测试。至少在最后一次运行测试时。问题是该项目的结构不是很好,而且

  • 问题内容: 我正在为返回JSON对象的Java Web应用程序编写一些验收测试。我想验证返回的JSON是否针对架构进行了验证。有人可以为此建议任何工具吗? 问题答案: 该 JSON工具项目 (程序员指南)包括验证使用JSON模式的JSON文件的内容的工具。 另一种选择是使用Rhino验证运行(JavaScript) JSON Schema Validator 。

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

  • 我有一个API服务器(资源服务器)和多个应用程序、Web GUI(SPA)和一个桌面客户端,也许还会有更多。除了超文本传输协议之外,我还想为我的API服务器使用openid-connect基本身份验证。应该可以配置使用哪个openid提供商。我自己的,facebook,google...我只想做身份验证,我不需要他们的API。我只需要一些个人资料数据,如电子邮件或名字。 比方说,我已经将googl