在rest-assured中将Json模式与从API获得的响应相匹配
我有一个post API,我希望使用JsonSchemaValidator的方法,因为我希望验证整个响应,而不是通过执行断言来选择响应 我试着用在rest-assured中将Json模式与从API获得的响应相匹配,json,rest,automation,rest-assured,rest-assured-jsonpath,Json,Rest,Automation,Rest Assured,Rest Assured Jsonpath,我有一个post API,我希望使用JsonSchemaValidator的方法,因为我希望验证整个响应,而不是通过执行断言来选择响应 我试着用 匹配JSONSCHEMAINCLASSPATH(“我的文件名”)和 matchesJsonSchema(我的文件对象) 我的reposne即将实现,方法正在通过,但没有检查或验证我的模式文件 public void directLoginWihSchemaValiadtor(){ File file = new File("C:/Users/a
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”)。使用(jsonSchemaFactory))
我尝试使用jsonSchemaFactory来实现这一点,但无论是设置为draftversion的内容,还是从何处获取,我都没有做到这一点
我是新手,如果您觉得这个问题太简单而无法提问,请耐心等待。对于这种情况,我通常会做以下几点:
您可以参考我的一些代码示例。尝试指定在创建
JsonSchemaFactory
时要使用的架构草稿DRAFTV4
是我使用的。我使用过它,但它不起作用,我认为它只用于检查json响应是否为DRAFTV4版本。是否可以发布正在验证的模式?这是我使用JsonSchemaFactory JsonSchemaFactory JsonSchemaFactory=JsonSchemaFactory.newBuilder()创建的代码。setValidationConfiguration(ValidationConfiguration.newBuilder().setDefaultVersion(SchemaVersion.DRAFTV4.freeze()).freeze();给定().contentType(contentType.JSON).body(jsonasmap).when().post(“https://***d.execute-api.us-***-.amazonaws.com/some-api”).then().assertThat().body(JsonSchemaValidator.matchesJsonSchema(file).using(jsonSchemaFactory)).log().all();如果你有任何改进的建议,这样结果就可以实现,请告诉我问题是,无论我在模式中输入的内容是正确的还是不正确的,这都无关紧要,它将显示通过。遗憾的是,过去几周我一直在手写。我没想过要检查工具来为你做一个模式。我发现了这一个:确实有很多工具,我叠加到了我提到的一个,因为它很容易安装,不需要配置,而且工作做得很好,在很多测试中已经使用了一年左右了谢谢你@BigGinDaHouse我自己在写模式它的顺序不正确所以这可能是我没有得到任何验证的原因谢谢