V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
ctrlmymood
V2EX  ›  程序员

请教站内搞服务器的大佬,关于 bios(通过 bmc web 进入 kvm web bios 页面)如何做自动化测试

  •  
  •   ctrlmymood · 4 天前 · 1277 次点击

    当前尝试过截图,识别图像内容后判断,然后再操作键盘鼠标,太太麻烦复杂了,语言 python

    第 1 条附言  ·  3 天前
    首先非常感谢各位的答复!根据各位 v2exer 的回复,我大致明确了一个方向(优先录制+截图+ocr 部分内容校验)
    背景:bios 自动化测试这里只考虑 java kvm 场景
    1. 按键精灵,看看是否可以录制
    2.pyatuogui 是我最开始的想法,截图+ocr ,有内容判断的测试项目

    后期时间宽松我会尝试:
    3.视频流我不是很了解这块逻辑,但是我学习的一个方向
    4.其它新的思路我后期可以借鉴下,当下主要是迫于效率出结果
    19 条回复    2025-01-16 09:24:11 +08:00
    encro
        1
    encro  
       4 天前
    如果你要简单,就固定屏幕宽高,按键精灵方式实现?
    encro
        2
    encro  
       4 天前
    PyAutoGUI?
    linuxsir2020
        3
    linuxsir2020  
       4 天前
    BMC ? 联想 XCC REST API 里有 BIOS 接口。。。
    不清楚能满足需求否,没仔细研究过。
    Morxi
        4
    Morxi  
       4 天前
    ctrlmymood
        5
    ctrlmymood  
    OP
       4 天前
    @Morxi 由于 BIOS 界面通常不支持传统的 HTML/CSS 渲染,可能无法直接从浏览器中获取清晰的文本信息,我没有使用 playwright 尝试过,回头试下,如果可以那的确就容易了
    ctrlmymood
        6
    ctrlmymood  
    OP
       4 天前
    @encro #1 我感觉可行,以结果为目的,以过程简单为标准
    kuanat
        7
    kuanat  
       4 天前
    我给两个思路,OP 的判断是没问题的,常规自动化处理不了这种视频流内的信息。

    1.
    如果设备 bmc 比较新,我记得好几年前多数 bmc 都支持 redfish 协议了,那么你在 bios 里面要测试的项目可能多数可以直接走 bmc 的 redfish api 接口来实现。

    2.
    如果设备 bmc 比较老,那就通过 web 页面先抓一下输出的视频流,这个大概率是类似固定摄像机那种 mjpeg 流,本质上就是固定间隔的截图。这样可以省去在 web 界面上截图的逻辑。
    然后就是逆向一下 web 界面发送按键序列的接口,用来做控制。这里需要注意的是,大概率还是要通过截图来判断状态,因为 bmc 那边接收到按键请求,但 bmc 把按键请求传递给主机这个环节不一定能 100% 正确响应。
    再之后就是自动化的事情了。
    kuanat
        8
    kuanat  
       4 天前
    再补充一点,bios 里的选项位置是固定的,所以并不需要 OCR 之类的手段。多数时间只需要判断对应位置的选项是不是有高亮或者反色即可,即只需要判断当前光标是否选中了目标。
    aru
        9
    aru  
       4 天前
    @ctrlmymood
    bmc 一般支持 sol (网络串口通信)
    这个应该比较简单
    guanzhangzhang
        10
    guanzhangzhang  
       4 天前
    如果你想自动做 raid 和装机设置 ip ,可以看我之前搞过的,带资料文档
    https://github.com/zhangguanzhang/Installer
    julyclyde
        11
    julyclyde  
       4 天前
    识别图像自动化测试?

    感觉好像是 totally 外行的思路啊,就是对什么不懂的就搞个外挂
    flyqie
        12
    flyqie  
       3 天前 via Android
    没办法,只能这么干。

    新的可以用 h5 ,老的只能 java ikvm ,协议一般是拿 rfb 改的,而且各个厂商之间区别蛮大。

    这个东西不好做,别的方法更难搞。
    flyqie
        13
    flyqie  
       3 天前 via Android
    @kuanat #7

    redfish 跟楼主这个需求貌似没有什么特别大的关系吧?

    感觉楼主这个需求还是得折腾视频流。
    yw9381
        14
    yw9381  
       3 天前
    我给个思路,但自己也没试过,BMC 本质可以看做直接在机器面前操作,现在新的基于 H5 的基本都是 websocket 的,是否可以逆出来具体的协议,实现按键,鼠标移动,点击这些基础功能,画面渲染也可以直接接过来 WS 数据绘图以后识别,比直接在浏览器里操作要方便得多
    cctv180
        15
    cctv180  
       3 天前
    我发个小众的 aardio 的自动化示范代码里面有找图找字找色,我感觉改改就能用了.
    lisxour
        16
    lisxour  
       3 天前
    有 bios 远控,前几天还在 b 站刷到过,向日葵 Q2Pro
    KIMI360
        17
    KIMI360  
       3 天前
    之前做 bios 测试,都是串口连接,然后有工具可以发送键盘指令,但也相当于盲操作。
    aru
        18
    aru  
       3 天前
    @KIMI360
    对。我以前有一批机器是无显卡的,需要改 bios 设置,就是记住了进入 bios 后的操作步骤。
    开机按键盘盲操
    lan894734188
        19
    lan894734188  
       2 天前
    看需求 尽量走集成的 redfish api.
    因为 kvm h5 其实并不稳定
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1594 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 19ms · UTC 16:58 · PVG 00:58 · LAX 08:58 · JFK 11:58
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.