将 Json 模式与来自 API 的响应相匹配,放心
Matching the Json schema with the response getting from the API in rest-assured
我有一个 post API ,我希望使用 JsonSchemaValidator 的方法,因为我希望验证整个响应而不是通过执行断言选择响应
我试过
- 匹配 JsonSchemaInClasspath("my file name") 和
- matchesJsonSchema(我的文件对象)
我的回复即将成真,方法正在通过,但没有对我的架构文件进行检查或验证
public void directLoginWihSchemaValiadtor(){
File file = new File("C:/Users/abeey/git/SlingAppWebService/Configurations/JsonSchemaValidator_DirectLogin_AWS.json");
jsonasmap.put("contactNo", "some number");
jsonasmap.put("loginType","0");
jsonasmap.put("appid","2");
jsonasmap.put("co*****ode","IN");
JsonSchemaFactory jsonSchemaFactory = JsonSchemaFactory.newBuilder().
setValidationConfiguration(ValidationConfiguration.newBuilder().freeze()).freeze();
given().contentType(ContentType.JSON).body(jsonasmap).when().
post("https://60i*****.execute-api.us-west-2.amazonaws.com/some-api").
then().assertThat().
body(JsonSchemaValidator.matchesJsonSchema(file))).
log().all();
jsonasmap.clear();
}
//正文(JsonSchemaValidator.matchesJsonSchemaInClasspath("JsonSchemaValidator_DirectLogin_AWS.json").using(jsonSchemaFactory))
我尝试使用 jsonSchemaFactory 来执行此操作,但我没有了解将什么设置为草稿版本或从何处获取它
我是新手,如果您觉得这个问题太简单而无法提出,请多多包涵
对于这种情况,我通常会这样做:
使用架构生成器并为 json 正文创建架构(我使用此工具 json-schema-generator)
将生成的 json 模式放入类路径中(例如 test/resources)
使用此代码作为 REST Assured 测试的一部分:
.body(matchesJsonSchemaInClasspath("your_schema_name.json"))
如果您想确保架构验证正常工作,您可以编辑架构文件并将任何必填字段的类型更改为其他内容,然后看看您的测试是否会失败。
你可以参考我的this post看一些代码示例。
我有一个 post API ,我希望使用 JsonSchemaValidator 的方法,因为我希望验证整个响应而不是通过执行断言选择响应
我试过
- 匹配 JsonSchemaInClasspath("my file name") 和
- matchesJsonSchema(我的文件对象)
我的回复即将成真,方法正在通过,但没有对我的架构文件进行检查或验证
public void directLoginWihSchemaValiadtor(){
File file = new File("C:/Users/abeey/git/SlingAppWebService/Configurations/JsonSchemaValidator_DirectLogin_AWS.json");
jsonasmap.put("contactNo", "some number");
jsonasmap.put("loginType","0");
jsonasmap.put("appid","2");
jsonasmap.put("co*****ode","IN");
JsonSchemaFactory jsonSchemaFactory = JsonSchemaFactory.newBuilder().
setValidationConfiguration(ValidationConfiguration.newBuilder().freeze()).freeze();
given().contentType(ContentType.JSON).body(jsonasmap).when().
post("https://60i*****.execute-api.us-west-2.amazonaws.com/some-api").
then().assertThat().
body(JsonSchemaValidator.matchesJsonSchema(file))).
log().all();
jsonasmap.clear();
}
//正文(JsonSchemaValidator.matchesJsonSchemaInClasspath("JsonSchemaValidator_DirectLogin_AWS.json").using(jsonSchemaFactory))
我尝试使用 jsonSchemaFactory 来执行此操作,但我没有了解将什么设置为草稿版本或从何处获取它
我是新手,如果您觉得这个问题太简单而无法提出,请多多包涵
对于这种情况,我通常会这样做:
使用架构生成器并为 json 正文创建架构(我使用此工具 json-schema-generator)
将生成的 json 模式放入类路径中(例如 test/resources)
使用此代码作为 REST Assured 测试的一部分:
.body(matchesJsonSchemaInClasspath("your_schema_name.json"))
如果您想确保架构验证正常工作,您可以编辑架构文件并将任何必填字段的类型更改为其他内容,然后看看您的测试是否会失败。
你可以参考我的this post看一些代码示例。