硬盘自动化脚本测试兼容性用例失败

一、问题背景

新增硬盘适配,进行OA自动化脚本测试验证功能

二、环境

BMC版本25.13.93.03

三、操作步骤

1.安装相关依赖包

2.配置QA/Test_Code/component_score/component_score_config.yaml中BMC和OS信息

3.配置南北向配置用例信息

QA/Test_Code/component_drivers/test_lists/NVMe下新增MEMBLAZE P6530DT0768M00 南向用例

QA/Test_Code/integration_test/test_lists/Hard_Disk下新增MEMBLAZE P6530DT0768M00 北向用例
4.配置传感器信息
QA/Test_Code/integration_test/test_config/nvme_vaiables.csv 新增增MEMBLAZE P6530DT0768M00传感器信息

5.执行命令开始测试

python run_component_score.py run --mode “MEMBLAZE P6530DT0768M00” --base Base --test_cases Test_Code/component_drivers/test_cases/integration_test_cases/hardware/NVMe --direction south --base Base_NVME --test_cases Test_Code/integration_test/test_cases/Hard_Disk --drection north

四、问题现象

跑完之后显示北向用例100%通过,南向用例全失败,查询测试报告,南向是两条命令没有内容返回:

busctl --user tree bmc.kepler.devmon --no-paper | grep -i nvme

busctl --user --list --no-paper tree bmc.kepler.devmon | grep PCIeNVMe/
想确认下这个是什么问题,需要改测试用例还是什么配置需要配吗?

答案内容由AI生成,仅供参考:

结论与后续方向

  • 若手动命令无输出,则大概率不是测试用例本身的问题,而是BMC侧设备对象未生成或配置缺失,需检查:
    • 新增硬盘的适配代码是否已生效(例如设备树、驱动配置)。
    • 是否需要升级CPLD或更新固件(参考文档片段4中关于CPLD版本支持点灯功能的案例)。
  • 若手动命令有输出,则需要修改测试用例,调整执行的路径或等待时间,确保命令在设备稳定后执行。

由于上下文中未直接提供该问题的最终解决方案,建议先完成上述步骤,并根据实际输出结果进一步定位。若需要更详细的配置参考,可查阅 openUBMC QA仓库 中的测试脚本和用例模板(上下文提到QA仓库存储自动化脚本和测试策略)。

点击此处查看详细分析解答

根据提供的上下文信息,针对您描述的南向用例失败问题(两条 busctl 命令无内容返回),我为您梳理了可能的分析方向和解决建议。


问题现象总结

  • 执行硬盘自动化脚本测试时,北向用例100%通过,但南向用例全部失败。
  • 失败原因指向两条命令没有内容返回:
    • busctl --user tree bmc.kepler.devmon --no-paper | grep -i nvme
    • busctl --user --list --no-paper tree bmc.kepler.devmon | grep PCIeNVMe/

可能的原因分析

根据上下文中的技术信息,南向用例的失败通常与设备对象未注册或接口未正确暴露有关。知识库中的实体关系显示:

  • PCIeNVMe 对象通过 bmc.dev.NVMe 和 bmc.dev.NVMe.ProductInfo 接口提供NVMe设备数据。
  • 若BMC上实际未创建这些对象,则上述 busctl 命令不会返回任何匹配行,导致用例失败。

此外,上下文提到(文档片段5):

“错误信息都来自于测试用例脚本,看不出有效信息。可以把脚本中的命令在BMC环境上执行一下,再检查一下错误信息” —— yinjian

这提示我们,诊断的第一步是直接在BMC上手动执行上述两条命令,观察是否有输出,从而区分是环境问题还是脚本问题。


建议排查步骤

  1. 直接登录BMC,手动执行命令

    busctl --user tree bmc.kepler.devmon --no-paper | grep -i nvme
    busctl --user --list --no-paper tree bmc.kepler.devmon | grep PCIeNVMe/
    
    • 若手动执行 也无输出,则说明BMC上确实没有对应对象,问题可能在设备适配或驱动加载层面。
    • 若手动执行 有输出,则说明是测试脚本或执行环境(如权限、路径)的问题。
  2. 检查设备是否被正确识别

    • 新增硬盘适配后,需确认BMC是否正确识别该NVMe设备。知识库中提到 bmc.dev.NVMe 是NVMe设备管理的核心接口,需确保设备驱动已加载且对象已注册。
    • 可检查是否已配置正确的传感器信息(nvme_vaiables.csv中的MEMBLAZE P6530DT0768M00条目),以及南北向用例列表中的路径是否正确。
  3. 核对测试用例与配置

    • 南向用例所在的 component_drivers/test_cases/integration_test_cases/hardware/NVMe 下,是否针对新增型号添加了对应用例?知识库提到用例设计需原子化、可测试,且测试脚本应依赖正确的属性。
    • 检查 component_score_config.yaml 中BMC和OS信息是否正确匹配当前版本(BMC 25.13.93.03)。
  4. 参考脚本执行错误处理

    • 自动化脚本应同时分析命令输出和退出码($?),若命令报错但无输出,可能是调用方式或对象路径错误(知识图谱中“Automatic Script”与“Exit Code”的关系)。

结论与后续方向

  • 若手动命令无输出,则大概率不是测试用例本身的问题,而是BMC侧设备对象未生成或配置缺失,需检查:
    • 新增硬盘的适配代码是否已生效(例如设备树、驱动配置)。
    • 是否需要升级CPLD或更新固件(参考文档片段4中关于CPLD版本支持点灯功能的案例)。
  • 若手动命令有输出,则需要修改测试用例,调整执行的路径或等待时间,确保命令在设备稳定后执行。

由于上下文中未直接提供该问题的最终解决方案,建议先完成上述步骤,并根据实际输出结果进一步定位。若需要更详细的配置参考,可查阅 openUBMC QA仓库 中的测试脚本和用例模板(上下文提到QA仓库存储自动化脚本和测试策略)。