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

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

  •  
  •   ctrlmymood · 11 天前 · 1406 次点击

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

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

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

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

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

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

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

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

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

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