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

256 天前
 ctrlmymood

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

2176 次点击
所在节点    程序员
19 条回复
encro
256 天前
如果你要简单,就固定屏幕宽高,按键精灵方式实现?
encro
256 天前
PyAutoGUI?
linuxsir2020
255 天前
BMC ? 联想 XCC REST API 里有 BIOS 接口。。。
不清楚能满足需求否,没仔细研究过。
Morxi
255 天前
ctrlmymood
255 天前
@Morxi 由于 BIOS 界面通常不支持传统的 HTML/CSS 渲染,可能无法直接从浏览器中获取清晰的文本信息,我没有使用 playwright 尝试过,回头试下,如果可以那的确就容易了
ctrlmymood
255 天前
@encro #1 我感觉可行,以结果为目的,以过程简单为标准
kuanat
255 天前
我给两个思路,OP 的判断是没问题的,常规自动化处理不了这种视频流内的信息。

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

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

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

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

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

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

感觉楼主这个需求还是得折腾视频流。
yw9381
255 天前
我给个思路,但自己也没试过,BMC 本质可以看做直接在机器面前操作,现在新的基于 H5 的基本都是 websocket 的,是否可以逆出来具体的协议,实现按键,鼠标移动,点击这些基础功能,画面渲染也可以直接接过来 WS 数据绘图以后识别,比直接在浏览器里操作要方便得多
cctv180
255 天前
我发个小众的 aardio 的自动化示范代码里面有找图找字找色,我感觉改改就能用了.
lisxour
255 天前
有 bios 远控,前几天还在 b 站刷到过,向日葵 Q2Pro
KIMI360
255 天前
之前做 bios 测试,都是串口连接,然后有工具可以发送键盘指令,但也相当于盲操作。
aru
255 天前
@KIMI360
对。我以前有一批机器是无显卡的,需要改 bios 设置,就是记住了进入 bios 后的操作步骤。
开机按键盘盲操
lan894734188
254 天前
看需求 尽量走集成的 redfish api.
因为 kvm h5 其实并不稳定

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://ex.noerr.eu.org/t/1104942

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX