test_ldap_configuration openBmc中的LDAP配置测试失败用例分析(2)

发布时间:2026/10/11 2:02:56

test_ldap_configuration openBmc中的LDAP配置测试失败用例分析(2) LDAP用户执行服务器的上下电操作34Update LDAP User Roles And Verify Host Poweroff Operation❌失败35Update LDAP User Roles And Verify Host Poweron Operation❌失败问题一BMC没更新服务器的last state一直获取到None之类的导致redfish power on 关键字执行失败这个属于测试环境问题。通常服务器的UEFI和OS会通过带内ipmi 发送postcode或ipmi心跳包给BMC以更新last state字段问题二执行的输入期望参数列表给错了少一个]Update LDAP User Role And Host Poweroff和Update LDAP User Role And Host Poweron中valid_status_code的默认值缺少结束括号}。当前代码[Arguments] ${ldap_type} ${group_privilege} ${group_name} ${valid_status_code}[${HTTP_OK,${HTTP_NO_CONTENT}]修改为[Arguments] ${ldap_type} ${group_privilege} ${group_name} ${valid_status_code}[${HTTP_OK}, ${HTTP_NO_CONTENT}]问题三类型不匹配。readonly和Operator在LDAP post关机阶段执行失败而admin执行成功。Redfish.Post要求valid_status_codes为列表。目前ReadOnly 和 Operator 传入的是单个整数而 Administrator 传入的是列表。传入整数会导致TypeError。Redfish.Post的错误日志KEYWORD Redfish . Post ${REDFISH_POWER_URI} body{ResetType: ForceOff} valid_status_codes${valid_status_code}17:24:46.696 INFO Attempt 1 of /redfish/v1/Systems/system/Actions/ComputerSystem.Reset17:24:46.739 INFO Response Time for POST ...: 0.042 seconds.17:24:46.740 FAIL TypeError: eval() arg 1 must be a string, bytes or code object当前代码${LDAP_TYPE} ReadOnly ${GROUP_NAME} ${HTTP_FORBIDDEN}${LDAP_TYPE} Operator ${GROUP_NAME} ${HTTP_OK}${LDAP_TYPE} Administrator ${GROUP_NAME} [${HTTP_OK}, ${HTTP_NO_CONTENT}]统一修改为使用列表${LDAP_TYPE} ReadOnly ${GROUP_NAME} [${HTTP_FORBIDDEN}]${LDAP_TYPE} Operator ${GROUP_NAME} [${HTTP_OK}, ${HTTP_NO_CONTENT}]${LDAP_TYPE} Administrator ${GROUP_NAME} [${HTTP_OK}, ${HTTP_NO_CONTENT}]注意Operator 增加HTTP_NO_CONTENT是因为实际测试中 BMC 返回204 No Content与 Administrator 的实际返回结果一致。IF条件无法正确处理列表类型当valid_status_code为列表例如[403]时${valid_status_code} ${HTTP_FORBIDDEN}实际上是在比较一个列表和一个整数因此始终为 False。因此当 ReadOnly 用户执行关机操作并收到403时测试无法提前返回而是继续等待主机关机最终导致超时。当前代码IF ${valid_status_code} ${HTTP_FORBIDDEN} RETURN修改为${is_forbidden} Evaluate ${HTTP_FORBIDDEN} in ${valid_status_code}IF ${is_forbidden} RETURN修复总结在默认参数值中补充缺失的结束括号}。将模板中的所有valid_status_codes统一使用列表。Operator 同时接受200和204以匹配实际 BMC 返回结果204 No Content。使用Evaluate检查列表中是否包含403确保 ReadOnly 用户能够正确提前返回。应用以上修复后三个角色的测试迭代均可通过。
延伸阅读

更多相关文章

2026/10/10 1:19:15

【00014】

四、Linux软件编程1. 操作系统一款软件,为了屏蔽底层不同的硬件平台,为上层提供统一的接口,实现通用的软件代码 PC三大操作系统Unix 世界上第一款操作系统Linux GNU GNUs Not Unix C语言编写服务器嵌入式Windows C/C2. Linux操作系统&#xf…

2026/10/11 2:02:29

WAND/WOR/WXOR本质是掩码驱动的位级写入指令

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 2:02:29

MFC全局钩子实战:键盘鼠标输入捕获与DLL注入避坑指南

简介:本资源面向具备一定 C 与 Windows 开发基础的 MFC 学习者,聚焦全局钩子这一系统级事件监控技术,帮助解决键盘输入与鼠标行为实时捕获、记录的问题。项目通过 HOOK.DLL 动态库配合 SetWindowsHookEx 设置 WH_KEYBOARD_LL 与 WH_MOUSE_LL …

2026/10/11 1:57:29

医疗健康EMBA:投入成本、服务边界与长期合作价值

医疗健康EMBA的价值判断与选择维度 医疗健康领域的管理者在进修选择上,往往面临投入成本、服务边界与长期合作价值之间的权衡。判断是否适合某一项目,不能仅看品牌知名度,而应聚焦于课程设计是否匹配当前的职业阶段与组织需求。本文将从成本、…

2026/10/11 0:02:13

Python调用Gemini Structured Outputs实现工单路由门禁

客服工单最怕的不是模型“答错一句话”,而是它给出一段看起来合理的说明,程序却从中猜错优先级。通俗做法是:要求模型只交 JSON(JavaScript Object Notation,轻量数据格式),再让代码验证它。Gem…

2026/10/11 0:02:13

Spring Boot超市进销存系统毕设实战:从需求拆解到答辩通关

最近带的一个学生项目组里,有A同学跑来问我:选什么毕设题目最稳妥,既能让评审老师觉得工作量够,又不会在答辩时被问到语无伦次。我第一反应就是推荐基于Spring Boot的超市仓库管理系统——也就是超市进销存系统。这个题目乍一看平…

2026/10/11 0:02:13

Flutter StatefulWidget 生命周期核心解析

很多刚开始接触 Flutter 的朋友,在看完一堆“Hello World”和基础组件之后,大概率都会撞上同一堵墙:StatefulWidget 里那堆 initState、build、dispose 方法,到底什么时候被调用?为什么顺序是那样?在里面到…

2026/10/11 0:02:13

Python调用Gemini Structured Outputs实现工单路由门禁

客服工单最怕的不是模型“答错一句话”,而是它给出一段看起来合理的说明,程序却从中猜错优先级。通俗做法是:要求模型只交 JSON(JavaScript Object Notation,轻量数据格式),再让代码验证它。Gem…

2026/10/11 0:02:13

Spring Boot超市进销存系统毕设实战:从需求拆解到答辩通关

最近带的一个学生项目组里,有A同学跑来问我:选什么毕设题目最稳妥,既能让评审老师觉得工作量够,又不会在答辩时被问到语无伦次。我第一反应就是推荐基于Spring Boot的超市仓库管理系统——也就是超市进销存系统。这个题目乍一看平…

2026/10/11 0:02:13

Flutter StatefulWidget 生命周期核心解析

很多刚开始接触 Flutter 的朋友,在看完一堆“Hello World”和基础组件之后,大概率都会撞上同一堵墙:StatefulWidget 里那堆 initState、build、dispose 方法,到底什么时候被调用?为什么顺序是那样?在里面到…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑