openBMC功耗封顶GUI测试

一 概述

test_resource_management_menu中当前仅有2个测试用例,一个导航测试,一个设置封顶数值测试。

变量分析

变量主要是 XPath 定位器:

变量 作用
${xpath_resource_management_menu} 左侧导航 Resource Management 菜单
${xpath_resource_management_power_menu} Power 子菜单
${xpath_resource_management_header} 页面标题,要求包含 "Power"
${xpath_power_tab_power_consumption} 当前功耗区域
${xpath_power_cap_setting} Power cap setting 区域
${xpath_power_cap_apply} Apply power cap 标签
${xpath_power_cap_checkbox} Power cap 开关复选框
${xpath_asset_tag_save_button} Save 按钮
${xpath_power_cap_value} Power cap 数值输入框

对应如下:

关键字

复制代码
Suite Setup Execution
    Launch Browser And Login GUI
    Navigate To Required Sub Menu  ${xpath_resource_management_menu}  ${xpath_resource_management_power_menu}  power

套件初始化流程:

  1. 调用 Launch Browser And Login GUI:启动浏览器并登录 GUI。

  2. 调用 Navigate To Required Sub Menu:进入 Resource Management → Power 页面。

  3. 最后一个参数 power 用于校验当前页面标题,具体实现依赖 gui_resource.robot。


二、测试用例讲解

复制代码
Verify Navigate To Resource Management Page
    [Documentation]  Login to GUI and perform page navigation to
    ...  Resource Management page and verify it loads successfully.
    [Tags]  Verify_Navigate_To_Resource_Management_Page

    Page Should Contain Element  ${xpath_resource_management_header}

测试目的:

验证能够导航到 Resource Management 页面,并且页面加载成功。

实际步骤:

由于 Suite Setup 已经完成登录并导航到 Resource Management → Power 页面,所以该用例只检查页面标题元素是否存在:

复制代码
${xpath_resource_management_header} = //h1[contains(normalize-space(.), "Power")]

也就是说,它验证的是页面 H1 标题中是否包含 Power。

验证点:

  • Power 页面标题存在。

  • 间接说明导航成功。


用例 2:Verify Able To Set Power Cap Value

复制代码
Verify Able To Set Power Cap Value
    [Documentation]  Verify that the power cap value can be set successfully.
    [Tags]  Verify_Able_To_Set_Power_Cap_Value

    Page Should Contain Element  ${xpath_power_tab_power_consumption}
    Page Should Contain Element  ${xpath_power_cap_setting}
    Page Should Contain Element  ${xpath_power_cap_apply}
    Page Should Contain Checkbox  ${xpath_power_cap_checkbox}
    Click Element  ${xpath_power_cap_checkbox}
    ${value}=  Evaluate  random.randint(1, 10000)  modules=random
    Input Text  ${xpath_power_cap_value}  ${value}
    Page Should Contain Element  ${xpath_asset_tag_save_button}
    Click Element  ${xpath_asset_tag_save_button}

测试目的:

验证 Power Cap 值是否可以设置成功。

执行步骤:

  1. 检查页面存在:

    • Current power consumption

    • Power cap setting

    • Apply power cap

  2. 检查 Power Cap 复选框存在。

  3. 点击复选框,启用 Power Cap 设置。

  4. 随机生成一个 1 到 10000 之间的整数:

    复制代码
    ${value}=  Evaluate  random.randint(1, 10000)  modules=random
  5. 将随机值输入到 Power Cap 输入框:

    复制代码
    Input Text  ${xpath_power_cap_value}  ${value}
  6. 检查 Save 按钮存在。

  7. 点击 Save 按钮保存。

验证点:

目前只验证了元素存在、输入框可输入、Save 按钮可点击。

关键问题:

代码中已经注明:

复制代码
# Need to add verification step to check if the power cap value is set successfully.
# once the open issue is resolved, add verification step here.

也就是说,该用例目前没有形成闭环验证。点击 Save 后,并没有验证:

  • 是否出现保存成功提示;

  • Power Cap 值是否回显正确;

  • 刷新页面后值是否仍然存在;

  • 后端 Redfish/API 是否真正生效。

因此,该用例目前只能算"操作执行型"测试,不能算完整的"功能验证型"测试。


三、执行流程总结

整个套件的执行顺序是:

  1. Suite Setup Execution

    • 启动浏览器并登录 GUI;

    • 导航到 Resource Management → Power 页面。

  2. 执行测试用例 1:

    • 验证 Power 页面标题存在。
  3. 执行测试用例 2:

    • 检查 Power Cap 相关元素;

    • 启用 Power Cap;

    • 输入随机值;

    • 点击 Save。

  4. Suite Teardown

    • 关闭浏览器。

四、主要问题与改进建议

  1. 保存后缺少验证

    • 应增加保存成功提示、值回读、刷新后校验或 API 校验。
  2. 随机值范围可能不符合实际规格

    1~10000 只是随机范围,不一定符合 BMC 的 Power Cap 允许范围。可以根据实际情况进行调整

  3. 变量命名不一致

    • ${xpath_asset_tag_save_button} 实际是 Power Cap 的 Save 按钮,建议改名为 ${xpath_power_cap_save_button}。不适用文本查找而是power-button-savePowerCapValue

总体来看,这个测试套件完成了 登录、导航、Power Cap 设置操作 的基础流程,但第二个核心用例还缺少保存结果验证,属于待完善的半闭环测试。

相关推荐
niuTaylor4 小时前
飞腾 FT-2000/4 Ubuntu 内存卡 / NVMe SSD 系统制作完整指南
linux·服务器·人工智能·驱动开发·单片机
Huangjin007_5 小时前
【Linux 系统篇(二十五)】文件(二) 系统文件I/O详解
linux·运维·服务器
云表无代码开发5 小时前
日本开发者彻底破防:中文太强了!换成英文直接裂开
大数据·服务器·人工智能·microsoft·信息可视化
LBL12206 小时前
内网容器部署FTP日志监控服务
运维·服务器·容器
筝筝ba9 小时前
openBMC自动化测试说明
服务器
进击的荆棘9 小时前
Linux系统——文件(上)
linux·运维·服务器·文件
檀越剑指大厂10 小时前
抽屉里的手机还能开博客?用 Typecho 和 cpolar 搭一台可远程访问的小服务器
运维·服务器·智能手机
牢姐与蒯10 小时前
Linux信号(一).信号产生
linux·运维·服务器·ubuntu
FfHUCisI10 小时前
sync.Once 与 sync.Cond 源码与并发控制陷阱
服务器·开发语言·后端·golang