• 请不要在回答技术问题时复制粘贴 AI 生成的内容
ctrlmymood
V2EX  ›  程序员

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

  •  
  •   ctrlmymood · Jan 14, 2025 · 3573 views
    This topic created in 669 days ago, the information mentioned may be changed or developed.

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

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

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

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

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

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

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

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

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

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