一、测试环境
硬件:S920X20
BMC Version: 25.12
二、问题描述
“查询单个Schema文件对应资源信息测试”(Interface_Redfish_SchemaStore_006)测试用例,报错信息如下:
“期望的结果值”是从哪里获取的呢,疑似数据不全,请确认“实际的结果值”是否正确。
一、测试环境
硬件:S920X20
BMC Version: 25.12
二、问题描述
“查询单个Schema文件对应资源信息测试”(Interface_Redfish_SchemaStore_006)测试用例,报错信息如下:
答案内容由AI生成,仅供参考:
| 项目 | 状态 |
|---|---|
| 测试失败原因 | 实际结果比期望结果多了 LogService.v1_8.1.json 引用,导致列表长度不符 |
| 期望值合理性 | |
| 实际结果正确性 | |
| 推荐处理方式 | 更新测试用例期望值,或调整比较逻辑为“子集匹配”模式 |
最终建议:修正测试用例中的期望结果,纳入
LogService.v1_8.1.json引用,或优化比对逻辑以适应版本演进。
在测试环境 S920X20、BMC 版本为 25.12 的条件下,执行测试用例 Interface_Redfish_SchemaStore_006(查询单个Schema文件对应资源信息测试) 时出现失败。
主要报错信息显示:
LogService.v1_8.1.json 的 $ref 引用。LogService.v1_8.1.json 的引用。{
"anyOf": [
{"$ref": "http://redfish.dmtf.org/schemas/vl/odata.4.0.0.json#/definitions/idRef"},
{"$ref": "http://redfish.dmtf.org/schemas/vl/LogService.v1_0.0.json#/definitions/LogService"},
{"$ref": "http://redfish.dmtf.org/schemas/vl/LogService.v1_0.2.json#/definitions/LogService"},
{"$ref": "http://redfish.dmtf.org/schemas/vl/LogService.v1_0.3.json#/definitions/LogService"},
{"$ref": "http://redfish.dmtf.org/schemas/vl/LogService.v1_8.1.json#/definitions/LogService"}
],
"deletable": false,
"insertable": false,
"updatable": true,
"uris": [...]
}
{
"anyOf": [
{"$ref": "http://redfish.dmtf.org/schemas/vl/odata.4.0.0.json#/definitions/idRef"},
{"$ref": "http://redfish.dmtf.org/schemas/vl/LogService.v1_0.0.json#/definitions/LogService"},
{"$ref": "http://redfish.dmtf.org/schemas/vl/LogService.v1_0.2.json#/definitions/LogService"},
{"$ref": "http://redfish.dmtf.org/schemas/vl/LogService.v1_0.3.json#/definitions/LogService"}
]
}
差异点:实际结果中多出一个版本引用
LogService.v1_8.1.json。
根据现有信息分析:
Redfish 架构支持多版本兼容性
anyOf 字段实现版本兼容。anyOf 列表中包含多个版本的 $ref 是合法且常见的行为。SchemaStore 的作用验证
SchemaStore 是 Redfish 中用于集中管理标准和自定义 JSON Schema 的组件,支持存储多个版本的资源定义。LogService.v1_8.1.json 属于正常演进,无需移除旧版本以保持向后兼容。文档与社区实践佐证
BMC 版本 25.12 支持较新版本的可能性
LogService v1.8.1 是合理的。v1_8.1 的引用是符合系统实现预期的。LogService.v1_8.1.json 是合理的,体现了 Redfish 对资源多版本的支持。核实测试用例的“期望值”来源
Interface_Redfish_SchemaStore_006 测试脚本中的期望数据是否基于 旧版 BMC 或 Redfish 规范文档。确认 LogService.v1_8.1.json 是否合法存在
/static_resource/redfish/v1/schemastore/en/ 是否存在 LogService.v1_8.1.json 文件。审查 Schema 映射配置
mapping_config)是否将 /redfish/v1/Managers/(managerid)/LogServices/* 正确关联到 LogService.v1_8.1。更新测试基线或放宽匹配策略
运行 Schema 检查工具验证
执行以下命令进行门禁级检查:
python3 interface_config/redfish/schema_check/schema_checker.py
确保无语法错误或约束冲突。
| 项目 | 状态 |
|---|---|
| 测试失败原因 | 实际结果比期望结果多了 LogService.v1_8.1.json 引用,导致列表长度不符 |
| 期望值合理性 | |
| 实际结果正确性 | |
| 推荐处理方式 | 更新测试用例期望值,或调整比较逻辑为“子集匹配”模式 |
最终建议:修正测试用例中的期望结果,纳入
LogService.v1_8.1.json引用,或优化比对逻辑以适应版本演进。
脚本查询LogService的Schema路径,校验结果时LogService的Schema版本写死了,现在新增了Schema版本,导致预期和实际不一致,用例脚本已修改,待同步社区。