我如何根据空手道中的预定义 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;
}
目前检查答案响应 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;
}