我如何根据空手道中的预定义 json 模式验证响应?

how can I verify response against a predefined json schema in karate?

目前检查答案响应 IO 使用以下方法:

And match response ==
"""
  {
    "status":#number,
    "message":#string
  }
"""

有没有办法像下面那样做?

And match response == someJsonSchemaDefinedInKarateConfigFile

是的,请参阅 reading files 上的文档。

And match response == read('my-schema.json')

(编辑):在 karate-config.js

中有一条评论要求如何初始化这些

karate-config.js 用于 'global' 配置,我真的不建议在这里转储模式,除非你确定它会被几乎所有的测试使用。但是如果你正在从一个文件中读取,它可能没问题,因为它不会是一个耗时的操作,记住 karate-config.js 被重新加载 every Scenario.

karate-config.js 中,您可以使用 karate.read() 轻松加载 JSON 或 JS 文件。这应该可以回答您的问题:

function() {
  var config = {

  };
  config.mySchema = karate.read('classpath:my-schema.json');
  return config;
}