我是gatling和scala的新手。
如果JSON响应与JSON模式不匹配,我希望请求失败。 这是我的架构验证器功能。
def validateJsonAgainstSchema(jsonResponseExpr:Expression[String], schemaFile:String)(session: Session): Validation[Session] = {
val jsonResponse=jsonResponseExpr(session)
val jsonSchema = testUtilsObj.readFile(schemaFile)
val schema: JsonNode = asJsonNode(parse(jsonSchema))
val instance: JsonNode = asJsonNode(parse(jsonResponse.get))
val validator = JsonSchemaFactory.byDefault().getValidator
val processingReport = validator.validate(schema, instance)
if (processingReport.isSuccess) {
Success(session)
} else {
println("****validation Failed*******")
println(processingReport.map(_.asJson()).mkString("\n"))
Failure(processingReport.map(_.asJson()).mkString("\n"))
}
}
我在exec块中调用此函数如下所示,即使函数返回失败,gatling测试也会通过。
.exec(
valObj.validateJsonAgainstSchema("${jsonResponse}","Schemas/searchQueryResponse.json") _
)
如何在请求检查块中调用validateJsonAgainstSchema
?有人能举例说明实现自定义验证吗?