CN115080135A - 一种基于gui实现bios远程自动化控制的系统 - Google Patents

一种基于gui实现bios远程自动化控制的系统 Download PDF

Info

Publication number
CN115080135A
CN115080135A CN202210887357.0A CN202210887357A CN115080135A CN 115080135 A CN115080135 A CN 115080135A CN 202210887357 A CN202210887357 A CN 202210887357A CN 115080135 A CN115080135 A CN 115080135A
Authority
CN
China
Prior art keywords
bios
terminal
gui
data
layer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202210887357.0A
Other languages
English (en)
Inventor
赵铭
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Suzhou Inspur Intelligent Technology Co Ltd
Original Assignee
Suzhou Inspur Intelligent Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Suzhou Inspur Intelligent Technology Co Ltd filed Critical Suzhou Inspur Intelligent Technology Co Ltd
Priority to CN202210887357.0A priority Critical patent/CN115080135A/zh
Publication of CN115080135A publication Critical patent/CN115080135A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4416Network booting; Remote initial program loading [RIPL]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2284Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing by power-on test, e.g. power-on self test [POST]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2294Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing by remote test

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

本发明涉及服务器技术领域,具体涉及一种基于GUI实现BIOS远程自动化控制的系统,包括目标机器、应用程序层、GUI操作层和Xserver层,通过模拟C/S架构的GUI处理过程,实现了在linux字符界面无图形化操作GUI。通过同时启动多个terminal终端,同时在多个终端模拟按键操作,具备了并行测试多台服务器的能力。基本涵盖了当前全部测试场景:POST界面信息获取和按键操作、单按键和组合键操作、BIOS页面切换、BIOS条目查找及定位、进入和退出BIOS条目、修改和保存选项值等等,提升了测试执行效率,程序化运行保证了测试准确度,进而提升服务器产品质量。

Description

一种基于GUI实现BIOS远程自动化控制的系统
技术领域
本发明涉及服务器技术领域,尤其涉及一种Linux字符界面下基于GUI实现BIOS远程自动化控制的系统。
背景技术
BIOS(Basic Input Output System,基本输入输出系统)通常是指BIOS芯片中固化的程序,为计算机提供最底层、最直接的硬件控制。BIOS启动是在OS启动之前,无网络连接的状态。在传统的服务器测试过程中,是通过人工查看BIOS界面并手动操作按键来控制BIOS程序的,从而完成与BIOS相关的各类场景的测试。
为了提升测试效率,实现BIOS相关场景的自动化测试。需要实现远程自动查看BIOS信息,并用按键控制BIOS程序完成各种操作。而传统手工测试BIOS,重复操作步骤多,在进行界面信息检查类型的测试时,需要来回切换界面并人工记录和比对大量数据,效率低、易出错,存在手动重复操作、效率低,人力投入较大,测试成本高,数据处理量多时容易出错,以及无法并发测试多个服务器的缺点。
发明内容
为解决BIOS无法自动化测试的技术问题,并避免手工测试的各种缺点,本发明提供了一种基于GUI(Graphical User Interface,图形用户界面)实现BIOS远程自动化控制的系统,将手动测试过程转化为自动化测试,提升测试效率,节约人力成本;通过IPMIV2.0、Xvfb、xdotool等多种技术的相互协同配合,再结合python、shell等语言的特点和优势,实现在linux字符界面实现并行自动化测试多台服务器的目标。
为实现上述目的,本发明实施例提供了如下的技术方案:
第一方面,在本发明提供的一个实施例中,提供了一种基于GUI实现BIOS远程自动化控制的系统,包括目标机器、应用程序层、GUI操作层和Xserver层;
所述目标机器为待测机器BIOS,目标是用于全方位操作POST和BIOS界面,并获取待测机器各项信息,满足当前BIOS测试的各类场景;
所述应用程序层用于基于IPMI V2.0规范实现串口通信功能ipmitool sol,通过串口与远程服务器进行通信;
所述GUI操作层包括gnome-terminal启动terminal终端,多个终端启动后,则要适时聚焦终端、模拟按键操作,来控制终端中的远程串口通讯进程;所述GUI操作层还包含一个数据解析模块,用于将用户的请求转换为数据处理、按键操作以及数据返回部分;
所述Xserver层在Linux图形界面操作是C/S架构,静默启动Xserver。
作为本发明的进一步方案,所述应用程序层用还用于设置ipmitool,将通讯信息输出到bios_info.txt文件,配置远程与本地通讯的串口和波特率等参数,将BIOS语言设置为英文。
作为本发明的进一步方案,所述应用程序层用还用于实时获取当前待测机运行的数据,以用于数据解析模块解析处理。
作为本发明的进一步方案,所述GUI操作层通过gnome-terminal启动terminal终端时,静默方式启动终端,用以承载串口通讯进程的运行,通过为终端命名,可以同时启动多个终端,相互隔离互不干扰。
作为本发明的进一步方案,所述GUI操作层用于控制终端中的远程串口通讯进程时,包括:
查找全量terminal终端;
通过终端ID获取终端名称,判断是否为指定要操作的终端;
通过终端ID,聚焦到指定终端;
操作按键设有上下左右箭头,输入信息。
作为本发明的进一步方案,所述数据解析模块用于页面及条目定位并获取信息,处理按键请求以及输入信息功能。
作为本发明的进一步方案,所述页面及条目定位并获取信息,包括:
当用户调用基于GUI实现BIOS远程自动化控制的系统的工具时,传入待获取的页面及条目,数据解析模块通过实时解析bios_info.txt,自动进行页面的切换、条目的上下查找,将处理结果连同BIOS界面信息返回给用户。
作为本发明的进一步方案,所述数据解析模块对于数据的处理时,清洗掉数据中的颜色、格式的控制转义序列,得到单纯的数据。
作为本发明的进一步方案,所述数据解析模块进行页面和条目的定位时,根据BIOS界面的格式特征,选中条目时,获取到对应的格式特征。
作为本发明的进一步方案,简单处理按键请求时,用户只传入按键列表,模块将接收到的按键逐个按下;输入信息功能时,用户传入待输入的字符串,数据解析模块接收到输入的字符串后,清空当前信息,将用户输入的字符串通过xdotool type“字符串”指令进行输入。
作为本发明的进一步方案,所述数据解析模块在进行数据解析时,实时解析bios_info.txt,自动进行页面的切换、条目的上下查找;将处理结果连同BIOS界面信息返回给用户;其中,进行数据处理时,根据不同版本BIOS界面显示的颜色、样式不同分别进行处理。
第二方面,在本发明提供的又一个实施例中,提供了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器加载并执行所述计算机程序时实现基于GUI实现BIOS远程自动化控制的步骤。
第三方面,在本发明提供的再一个实施例中,提供了一种存储介质,存储有计算机程序,所述计算机程序被处理器加载并执行时实现所述基于GUI实现BIOS远程自动化控制的步骤。
本发明提供的技术方案,具有如下有益效果:
本发明提供的基于GUI实现BIOS远程自动化控制的系统,通过模拟C/S架构的GUI处理过程,实现了在linux字符界面无图形化操作GUI。通过同时启动多个terminal终端,同时在多个终端模拟按键操作,具备了并行测试多台服务器的能力。基本涵盖了当前全部测试场景:POST界面信息获取和按键操作、单按键和组合键操作、BIOS页面切换、BIOS条目查找及定位、进入和退出BIOS条目、修改和保存选项值等等。
基于本发明实现的工具可分为部署和调用两部分,在执行机器部署一次环境,测试时根据需要调用工具,传入相应的参数,即可完成自动化测试待测机器BIOS的目标。工具支持复制和并发调用,可同时测试多台服务器。
本发明实现了自动化测试BIOS的工具基础,通过灵活操作工具、自由组合按键来实时操作BIOS,满足各类场景的测试需要。自动化操作减少了人力投入,提升了测试执行效率,程序化运行保证了测试准确度,进而提升服务器产品质量。
本发明的这些方面或其他方面在以下实施例的描述中会更加简明易懂。应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。
本发明的这些方面或其他方面在以下实施例的描述中会更加简明易懂。应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例。在附图中:
图1为本发明一个实施例的一种基于GUI实现BIOS远程自动化控制的系统逻辑处理的示意图。
图2为本发明一个实施例的一种基于GUI实现BIOS远程自动化控制的系统的计算机设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
附图中所示的流程图仅是示例说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解、组合或部分合并,因此实际执行的顺序有可能根据实际情况改变。
应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
由于提升测试效率,实现BIOS相关场景的自动化测试。需要实现远程自动查看BIOS信息,并用按键控制BIOS程序完成各种操作。而传统手工测试BIOS,重复操作步骤多,在进行界面信息检查类型的测试时,需要来回切换界面并人工记录和比对大量数据,效率低、易出错,存在手动重复操作、效率低,人力投入较大,测试成本高,数据处理量多时容易出错,以及无法并发测试多个服务器的缺点。
为解决BIOS无法自动化测试的技术问题,并避免手工测试的各种缺点,本发明提供了一种基于GUI实现BIOS远程自动化控制的系统,将手动测试过程转化为自动化测试,提升测试效率,节约人力成本;通过IPMI V2.0、Xvfb、xdotool等多种技术的相互协同配合,再结合python、shell等语言的特点和优势,实现在linux字符界面实现并行自动化测试多台服务器的目标。
具体地,下面结合附图,对本发明实施例作进一步阐述。
请参阅图1,图1是本发明实施例提供的一种基于GUI实现BIOS远程自动化控制的系统逻辑处理的示意图,如图1所示,在本发明提供的一个实施例中,提供了一种基于GUI实现BIOS远程自动化控制的系统,包括目标机器、应用程序层、GUI操作层和Xserver层。
所述目标机器为待测机器BIOS,目标是用于全方位操作POST和BIOS界面,并获取待测机器各项信息,满足当前BIOS测试的各类场景;
所述应用程序层用于基于IPMI V2.0规范实现串口通信功能ipmitool sol,通过串口与远程服务器进行通信;
所述GUI操作层包括gnome-terminal启动terminal终端,多个终端启动后,则要适时聚焦终端、模拟按键操作,来控制终端中的远程串口通讯进程;所述GUI操作层还包含一个数据解析模块,用于将用户的请求转换为数据处理、按键操作以及数据返回部分;
所述Xserver层在Linux图形界面操作是C/S架构,静默启动Xserver。
参见图1所示,本发明实施例提供的Linux字符界面下基于GUI实现BIOS远程自动化控制的系统,通过模拟C/S架构的GUI处理过程,实现了在linux字符界面无图形化操作GUI。通过同时启动多个terminal终端,同时在多个终端模拟按键操作,具备了并行测试多台服务器的能力。基本涵盖了当前全部测试场景:POST界面信息获取和按键操作、单按键和组合键操作、BIOS页面切换、BIOS条目查找及定位、进入和退出BIOS条目、修改和保存选项值等等。
在本申请的实施例中,本发明实施例提供的Linux字符界面下基于GUI实现BIOS远程自动化控制的系统按照启动的顺序及交互关系分为目标机器、应用程序层、GUI操作层和Xserver层。
在本发明的实施例中,所述目标机器对应待测机器BIOS,即:要测试的对象,目标是可以全方位操作POST和BIOS界面,并获取待测机器各项信息,满足当前BIOS测试的各类场景。
在本发明的实施例中,所述应用程序层用还用于设置ipmitool,将通讯信息输出到bios_info.txt文件,配置远程与本地通讯的串口和波特率等参数,将BIOS语言设置为英文。
在本发明的实施例中,所述应用程序层基于IPMI V2.0规范实现的串口通信功能ipmitool sol可以通过串口与远程服务器进行通信。而且,设置ipmitool将通讯信息输出到bios_info.txt文件,配置远程与本地通讯的串口和波特率等参数,将BIOS语言设置为英文,实时获取当前待测机运行的数据,便于数据解析模块解析处理。
因此,所述应用程序层用还用于实时获取当前待测机运行的数据,以用于数据解析模块解析处理。
其中,执行方式为:ipmitool-I lanplus-H“bmc_ip”-U“bmc_user”-P“bmc_pwd”sol activate>bios_info.txt。
将这条命令写在bios_sol_control.sh中,随着gnome-terminal终端一起启动,并将远程待测机器回传的信息实时打印到bios_info.txt中。
在本发明的实施例中,所述GUI操作层通过gnome-terminal启动terminal终端时,静默方式启动终端,用以承载串口通讯进程的运行,通过为终端命名,可以同时启动多个终端,相互隔离互不干扰。
其中,os.system(“gnome-terminal--tab-t终端名称--bash-c‘chmod 777*;./bios_sol_control.sh日志路径bmc_ip bmc_user bmc_pwd’”)这一指令完成了将bios_sol_control.sh这个shell脚本启动在以“终端名称”命名的终端terminal中,并给bios_sol_control.sh传入“日志路径”、“bmc_ip”、“bmc_user”、“bmc_pwd”这四个参数。
在本发明的实施例中,所述GUI操作层中,多个终端启动后,则要适时聚焦终端、模拟按键操作,来控制终端中的远程串口通讯进程。
所述GUI操作层控制终端中的远程串口通讯进程时,包括:
1)查找全量terminal终端;
xdotool search-class“gnome-terminal”返回一连串终端的ID。
2)通过终端ID获取终端名称,判断是否为指定要操作的终端;
xdotool getwindowname$ID。
3)通过终端ID,聚焦到指定终端;
xdotool windowsfocus$ID
4)操作按键设有上下左右箭头,输入信息。
其中,本申请的实施例中涉及到的操作按键有上下左右箭头(Up Down LeftRight)、Enter(KP_Enter)、Esc(Escape)、F1(F1)、F9(F9)等等,括号中为每个按键的名称,也可操作组合键,只需要将两个按键名称用“+”连接即可,例如xdotool key Down。
输入信息为:xdotool key“abcd”。
在本发明的实施例中,所述数据解析模块用于页面及条目定位并获取信息,处理按键请求以及输入信息功能。
其中,所述数据解析模块为本发明的基于GUI实现BIOS远程自动化控制的系统的cpu,用于将用户的请求转换为数据处理、按键操作、数据返回等部分。
所述数据解析模块具有以下功能:
功能一:页面及条目定位并获取信息。当用户调用基于GUI实现BIOS远程自动化控制的系统的工具时,传入待获取的页面及条目,数据解析模块通过实时解析bios_info.txt,自动进行页面的切换、条目的上下查找,将处理结果连同BIOS界面信息返回给用户。
其中,所述数据解析模块对于数据的处理时,清洗掉数据中的颜色、格式的控制转义序列,得到单纯的数据。
对于数据的处理,要结合数据特点,清洗掉其中的颜色、格式等控制转义序列,得到单纯的数据。
对于页面和条目的定位,则需要根据BIOS界面的格式特征,选中条目时,获取到对应的格式特征,例如普通信息为灰底黑字,可点击进入的条目则为灰底蓝字,当条目被选中时变为灰底白字,因此我们获取到灰底白字序列。
“[1;37;47m”渲染的条目时,则可得知当前BIOS停留的条目是哪一个。不同版本BIOS界面显示的颜色、样式不同,要视具体情况进行数据处理。
功能二:简单处理按键请求,即用户只传入按键列表,模块将接收到的按键逐个按下。
功能三:输入信息功能时,用户传入待输入的字符串,数据解析模块接收到输入的字符串后,先清空当前信息即连续按backsapce键,然后将用户输入的字符串通过xdotooltype“字符串”指令进行输入。
在本发明的实施例中,所述数据解析模块在进行数据解析时,实时解析bios_info.txt,自动进行页面的切换、条目的上下查找;将处理结果连同BIOS界面信息返回给用户;其中,进行数据处理时,根据不同版本BIOS界面显示的颜色、样式不同分别进行处理。
在本发明的实施例中,所述Xserver层中,Linux图形界面操作是C/S架构,其中S即为Xserver,作用是将鼠标、键盘操作传递给应用程序,来完成相应GUI操作。本案例为满足本地调试、开发环境、生产环境调用等各场景的处理需求,需要静默启动Xserver,即不需要展示GUI界面和处理过程,因此选择Xvfb:
1)os.system(“Xvfb:7–ac&”)
:7显示设备
-ac参数是取消访问限制,
&为后台启动。
2)os.environ[“DISPLAY”]=“:7”
将DISPLAY环境变量设置到与Xvfb显示设备一致,这里均为“:7”。
本发明的基于GUI实现BIOS远程自动化控制的系统,基于本发明实现的工具可分为部署和调用两部分,在执行机器部署一次环境,测试时根据需要调用工具,传入相应的参数,即可完成自动化测试待测机器BIOS的目标。工具支持复制和并发调用,可同时测试多台服务器。
本发明实现了自动化测试BIOS的工具基础,通过灵活操作工具、自由组合按键来实时操作BIOS,满足各类场景的测试需要。自动化操作减少了人力投入,提升了测试执行效率,程序化运行保证了测试准确度,进而提升服务器产品质量。
需要说明的是,本发明中Xvfb与xdotool、gnome-terminal及ipmitool sol的调用顺序、交互与协同配合方式是:
首先,因为一台机器只能启动一个Xserver,所以工具每次调用要先检查Xvfb是否启动并设置好与Xvfb一致的DISPLAY环境变量,这样才能保证并发启动的多个terminal都交给同一个Xvfb实例管理。
其次,ipmitool sol连接待测机指令写在shell文件中随terminal创建指令同时运行,并实时输出信息到bios_info.txt中,便于数据解析。
然后,xdotool是独立于terminal的工具,只在操作按键或输入信息时,再聚焦指定terminal(xdotool windowsfocus$PID)执行xdotool key或xdotool type指令。
需要说明的是,数据解析时:实时解析bios_info.txt,自动进行页面的切换、条目的上下查找,最终将处理结果连同BIOS界面信息返回给用户。对于数据的处理,要结合数据特点,清洗掉其中的颜色、格式等控制转义序列,得到单纯的数据。不同版本BIOS界面显示的颜色、样式不同,要视具体情况进行数据处理。
本发明还可以将部署过程编程实现,合并到工具中,通过检测环境中是否已部署过环境,若没有则部署一次。
在一个实施例中,参见图2所示,在本发明的实施例中还提供了一种计算机设备1000,包括至少一个处理器1001,以及与所述至少一个处理器1001通信连接的存储器1002,所述存储器1002存储有可被所述至少一个处理器1001执行的指令,所述指令被所述至少一个处理器1001执行,以使所述至少一个处理器1001执行所述的基于GUI实现BIOS远程自动化控制方法,该处理器1001执行指令时实现上述基于GUI实现BIOS远程自动化控制的系统中按照启动的顺序及交互关系的步骤:
所述目标机器为待测机器BIOS,目标是用于全方位操作POST和BIOS界面,并获取待测机器各项信息,满足当前BIOS测试的各类场景;
所述应用程序层用于基于IPMI V2.0规范实现串口通信功能ipmitool sol,通过串口与远程服务器进行通信;
所述GUI操作层包括gnome-terminal启动terminal终端,多个终端启动后,则要适时聚焦终端、模拟按键操作,来控制终端中的远程串口通讯进程;所述GUI操作层还包含一个数据解析模块,用于将用户的请求转换为数据处理、按键操作以及数据返回部分;
所述Xserver层在Linux图形界面操作是C/S架构,静默启动Xserver。
参见图1所示,本发明实施例提供的Linux字符界面下基于GUI实现BIOS远程自动化控制的系统,通过模拟C/S架构的GUI处理过程,实现了在linux字符界面无图形化操作GUI。通过同时启动多个terminal终端,同时在多个终端模拟按键操作,具备了并行测试多台服务器的能力。基本涵盖了当前全部测试场景:POST界面信息获取和按键操作、单按键和组合键操作、BIOS页面切换、BIOS条目查找及定位、进入和退出BIOS条目、修改和保存选项值等等。
在本申请的实施例中,本发明实施例提供的Linux字符界面下基于GUI实现BIOS远程自动化控制的系统按照启动的顺序及交互关系分为目标机器、应用程序层、GUI操作层和Xserver层。
在本发明的实施例中,所述目标机器对应待测机器BIOS,即:要测试的对象,目标是可以全方位操作POST和BIOS界面,并获取待测机器各项信息,满足当前BIOS测试的各类场景。
在本发明的实施例中,所述应用程序层用还用于设置ipmitool,将通讯信息输出到bios_info.txt文件,配置远程与本地通讯的串口和波特率等参数,将BIOS语言设置为英文。
在本发明的实施例中,所述应用程序层基于IPMI V2.0规范实现的串口通信功能ipmitool sol可以通过串口与远程服务器进行通信。而且,设置ipmitool将通讯信息输出到bios_info.txt文件,配置远程与本地通讯的串口和波特率等参数,将BIOS语言设置为英文,实时获取当前待测机运行的数据,便于数据解析模块解析处理。
因此,所述应用程序层用还用于实时获取当前待测机运行的数据,以用于数据解析模块解析处理。
其中,执行方式为:ipmitool-I lanplus-H“bmc_ip”-U“bmc_user”-P“bmc_pwd”sol activate>bios_info.txt。
将这条命令写在bios_sol_control.sh中,随着gnome-terminal终端一起启动,并将远程待测机器回传的信息实时打印到bios_info.txt中。
在本发明的实施例中,所述GUI操作层通过gnome-terminal启动terminal终端时,静默方式启动终端,用以承载串口通讯进程的运行,通过为终端命名,可以同时启动多个终端,相互隔离互不干扰。
其中,os.system(“gnome-terminal--tab-t终端名称--bash-c‘chmod 777*;./bios_sol_control.sh日志路径bmc_ip bmc_user bmc_pwd’”)这一指令完成了将bios_sol_control.sh这个shell脚本启动在以“终端名称”命名的终端terminal中,并给bios_sol_control.sh传入“日志路径”、“bmc_ip”、“bmc_user”、“bmc_pwd”这四个参数。
在本发明的实施例中,所述GUI操作层中,多个终端启动后,则要适时聚焦终端、模拟按键操作,来控制终端中的远程串口通讯进程。
所述GUI操作层控制终端中的远程串口通讯进程时,包括:
1)查找全量terminal终端;
xdotool search-class“gnome-terminal”返回一连串终端的ID。
2)通过终端ID获取终端名称,判断是否为指定要操作的终端;
xdotool getwindowname$ID。
3)通过终端ID,聚焦到指定终端;
xdotool windowsfocus$ID
4)操作按键设有上下左右箭头,输入信息。
其中,本申请的实施例中涉及到的操作按键有上下左右箭头(Up Down LeftRight)、Enter(KP_Enter)、Esc(Escape)、F1(F1)、F9(F9)等等,括号中为每个按键的名称,也可操作组合键,只需要将两个按键名称用“+”连接即可,例如xdotool key Down。
输入信息为:xdotool key“abcd”。
在本发明的实施例中,所述数据解析模块用于页面及条目定位并获取信息,处理按键请求以及输入信息功能。
其中,所述数据解析模块为本发明的基于GUI实现BIOS远程自动化控制的系统的cpu,用于将用户的请求转换为数据处理、按键操作、数据返回等部分。
所述数据解析模块具有以下功能:
功能一:页面及条目定位并获取信息。当用户调用基于GUI实现BIOS远程自动化控制的系统的工具时,传入待获取的页面及条目,数据解析模块通过实时解析bios_info.txt,自动进行页面的切换、条目的上下查找,将处理结果连同BIOS界面信息返回给用户。
其中,所述数据解析模块对于数据的处理时,清洗掉数据中的颜色、格式的控制转义序列,得到单纯的数据。
对于数据的处理,要结合数据特点,清洗掉其中的颜色、格式等控制转义序列,得到单纯的数据。
对于页面和条目的定位,则需要根据BIOS界面的格式特征,选中条目时,获取到对应的格式特征,例如普通信息为灰底黑字,可点击进入的条目则为灰底蓝字,当条目被选中时变为灰底白字,因此我们获取到灰底白字序列。
“[1;37;47m”渲染的条目时,则可得知当前BIOS停留的条目是哪一个。不同版本BIOS界面显示的颜色、样式不同,要视具体情况进行数据处理。
功能二:简单处理按键请求,即用户只传入按键列表,模块将接收到的按键逐个按下。
功能三:输入信息功能时,用户传入待输入的字符串,数据解析模块接收到输入的字符串后,先清空当前信息即连续按backsapce键,然后将用户输入的字符串通过xdotooltype“字符串”指令进行输入。
在上下文中所称“计算机设备”,也称为“电脑”,是指可以通过运行预定程序或指令来执行数值计算和/或逻辑计算等预定处理过程的智能电子设备,其可以包括处理器1001与存储器1002,由处理器1001执行在存储器1002中预存的存续指令来执行预定处理过程,或是由ASIC、FPGA、DSP等硬件执行预定处理过程,或是由上述二者组合来实现。计算机设备1000包括但不限于服务器、个人电脑、笔记本电脑、平板电脑、智能手机等。
所述计算机设备1000包括用户设备与网络设备。其中,所述用户设备包括但不限于电脑、智能手机、PDA等;所述网络设备包括但不限于单个网络服务器、多个网络服务器组成的服务器组或基于云计算(Cloud Computing)的由大量计算机或网络服务器构成的云,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个超级虚拟计算机。其中,所述计算机设备1000可单独运行来实现本发明,也可接入网络并通过与网络中的其他计算机设备1000的交互操作来实现本发明。其中,所述计算机设备1000所处的网络包括但不限于互联网、广域网、城域网、局域网、VPN网络等。
还应当进理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
在本发明的一个实施例中还提供了一种存储介质,其上存储有计算机程序,该计算机程序被处理器1001执行时实现上述基于GUI实现BIOS远程自动化控制的系统中按照启动的顺序及交互关系的步骤:
目标机器为待测机器BIOS,目标是用于全方位操作POST和BIOS界面,并获取待测机器各项信息,满足当前BIOS测试的各类场景;
所述应用程序层用于基于IPMI V2.0规范实现串口通信功能ipmitool sol,通过串口与远程服务器进行通信;
所述GUI操作层包括gnome-terminal启动terminal终端,多个终端启动后,则要适时聚焦终端、模拟按键操作,来控制终端中的远程串口通讯进程;所述GUI操作层还包含一个数据解析模块,用于将用户的请求转换为数据处理、按键操作以及数据返回部分;
所述Xserver层在Linux图形界面操作是C/S架构,静默启动Xserver。
参见图1所示,本发明实施例提供的Linux字符界面下基于GUI实现BIOS远程自动化控制的系统,通过模拟C/S架构的GUI处理过程,实现了在linux字符界面无图形化操作GUI。通过同时启动多个terminal终端,同时在多个终端模拟按键操作,具备了并行测试多台服务器的能力。基本涵盖了当前全部测试场景:POST界面信息获取和按键操作、单按键和组合键操作、BIOS页面切换、BIOS条目查找及定位、进入和退出BIOS条目、修改和保存选项值等等。
在本申请的实施例中,本发明实施例提供的Linux字符界面下基于GUI实现BIOS远程自动化控制的系统按照启动的顺序及交互关系分为目标机器、应用程序层、GUI操作层和Xserver层。
在本发明的实施例中,所述目标机器对应待测机器BIOS,即:要测试的对象,目标是可以全方位操作POST和BIOS界面,并获取待测机器各项信息,满足当前BIOS测试的各类场景。
在本发明的实施例中,所述应用程序层用还用于设置ipmitool,将通讯信息输出到bios_info.txt文件,配置远程与本地通讯的串口和波特率等参数,将BIOS语言设置为英文。
在本发明的实施例中,所述应用程序层基于IPMI V2.0规范实现的串口通信功能ipmitool sol可以通过串口与远程服务器进行通信。而且,设置ipmitool将通讯信息输出到bios_info.txt文件,配置远程与本地通讯的串口和波特率等参数,将BIOS语言设置为英文,实时获取当前待测机运行的数据,便于数据解析模块解析处理。
因此,所述应用程序层用还用于实时获取当前待测机运行的数据,以用于数据解析模块解析处理。
其中,执行方式为:ipmitool-I lanplus-H“bmc_ip”-U“bmc_user”-P“bmc_pwd”sol activate>bios_info.txt。
将这条命令写在bios_sol_control.sh中,随着gnome-terminal终端一起启动,并将远程待测机器回传的信息实时打印到bios_info.txt中。
在本发明的实施例中,所述GUI操作层通过gnome-terminal启动terminal终端时,静默方式启动终端,用以承载串口通讯进程的运行,通过为终端命名,可以同时启动多个终端,相互隔离互不干扰。
其中,os.system(“gnome-terminal--tab-t终端名称--bash-c‘chmod 777*;./bios_sol_control.sh日志路径bmc_ip bmc_user bmc_pwd’”)这一指令完成了将bios_sol_control.sh这个shell脚本启动在以“终端名称”命名的终端terminal中,并给bios_sol_control.sh传入“日志路径”、“bmc_ip”、“bmc_user”、“bmc_pwd”这四个参数。
在本发明的实施例中,所述GUI操作层中,多个终端启动后,则要适时聚焦终端、模拟按键操作,来控制终端中的远程串口通讯进程。
所述GUI操作层控制终端中的远程串口通讯进程时,包括:
1)查找全量terminal终端;
xdotool search-class“gnome-terminal”返回一连串终端的ID。
2)通过终端ID获取终端名称,判断是否为指定要操作的终端;
xdotool getwindowname$ID。
3)通过终端ID,聚焦到指定终端;
xdotool windowsfocus$ID
4)操作按键设有上下左右箭头,输入信息。
其中,本申请的实施例中涉及到的操作按键有上下左右箭头(Up Down LeftRight)、Enter(KP_Enter)、Esc(Escape)、F1(F1)、F9(F9)等等,括号中为每个按键的名称,也可操作组合键,只需要将两个按键名称用“+”连接即可,例如xdotool key Down。
输入信息为:xdotool key“abcd”。
在本发明的实施例中,所述数据解析模块用于页面及条目定位并获取信息,处理按键请求以及输入信息功能。
其中,所述数据解析模块为本发明的基于GUI实现BIOS远程自动化控制的系统的cpu,用于将用户的请求转换为数据处理、按键操作、数据返回等部分。
所述数据解析模块具有以下功能:
功能一:页面及条目定位并获取信息。当用户调用基于GUI实现BIOS远程自动化控制的系统的工具时,传入待获取的页面及条目,数据解析模块通过实时解析bios_info.txt,自动进行页面的切换、条目的上下查找,将处理结果连同BIOS界面信息返回给用户。
其中,所述数据解析模块对于数据的处理时,清洗掉数据中的颜色、格式的控制转义序列,得到单纯的数据。
对于数据的处理,要结合数据特点,清洗掉其中的颜色、格式等控制转义序列,得到单纯的数据。
对于页面和条目的定位,则需要根据BIOS界面的格式特征,选中条目时,获取到对应的格式特征,例如普通信息为灰底黑字,可点击进入的条目则为灰底蓝字,当条目被选中时变为灰底白字,因此我们获取到灰底白字序列。
“[1;37;47m”渲染的条目时,则可得知当前BIOS停留的条目是哪一个。不同版本BIOS界面显示的颜色、样式不同,要视具体情况进行数据处理。
功能二:简单处理按键请求,即用户只传入按键列表,模块将接收到的按键逐个按下。
功能三:输入信息功能时,用户传入待输入的字符串,数据解析模块接收到输入的字符串后,先清空当前信息即连续按backsapce键,然后将用户输入的字符串通过xdotooltype“字符串”指令进行输入。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述方法的实施例的流程。其中,本发明所提供的各实施例中所使用的对存储器1002、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
综上所述,本发明提供的基于GUI实现BIOS远程自动化控制的系统,通过模拟C/S架构的GUI处理过程,实现了在linux字符界面无图形化操作GUI。通过同时启动多个terminal终端,同时在多个终端模拟按键操作,具备了并行测试多台服务器的能力。基本涵盖了当前全部测试场景:POST界面信息获取和按键操作、单按键和组合键操作、BIOS页面切换、BIOS条目查找及定位、进入和退出BIOS条目、修改和保存选项值等等。
基于本发明实现的工具可分为部署和调用两部分,在执行机器部署一次环境,测试时根据需要调用工具,传入相应的参数,即可完成自动化测试待测机器BIOS的目标。工具支持复制和并发调用,可同时测试多台服务器。
本发明实现了自动化测试BIOS的工具基础,通过灵活操作工具、自由组合按键来实时操作BIOS,满足各类场景的测试需要。自动化操作减少了人力投入,提升了测试执行效率,程序化运行保证了测试准确度,进而提升服务器产品质量。
以上是本发明公开的示例性实施例,但是应当注意,在不背离权利要求限定的本发明实施例公开的范围的前提下,可以进行多种改变和修改。根据这里描述的公开实施例的方法权利要求的功能、步骤和/或动作不需以任何特定顺序执行。此外,尽管本发明实施例公开的元素可以以个体形式描述或要求,但除非明确限制为单数,也可以理解为多个。
应当理解的是,在本文中使用的,除非上下文清楚地支持例外情况,单数形式“一个”旨在也包括复数形式。还应当理解的是,在本文中使用的“和/或”是指包括一个或者一个以上相关联地列出的项目的任意和所有可能组合。上述本发明实施例公开实施例序号仅仅为了描述,不代表实施例的优劣。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本发明实施例公开的范围(包括权利要求)被限于这些例子;在本发明实施例的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,并存在如上的本发明实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。因此,凡在本发明实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明实施例的保护范围之内。

Claims (10)

1.一种基于GUI实现BIOS远程自动化控制的系统,其特征在于,包括:目标机器、应用程序层、GUI操作层和Xserver层;
所述目标机器为待测机器BIOS,目标是用于全方位操作POST和BIOS界面,并获取待测机器各项信息,满足当前BIOS测试的各类场景;
所述应用程序层用于基于IPMIV2.0规范实现串口通信功能ipmitool sol,通过串口与远程服务器进行通信;
所述GUI操作层包括gnome-terminal启动terminal终端,多个终端启动后,则要适时聚焦终端、模拟按键操作,来控制终端中的远程串口通讯进程;所述GUI操作层还包含一个数据解析模块,用于将用户的请求转换为数据处理、按键操作以及数据返回部分;
所述Xserver层在Linux图形界面操作是C/S架构。
2.如权利要求1所述的基于GUI实现BIOS远程自动化控制的系统,其特征在于,所述应用程序层用还用于设置ipmitool,将通讯信息输出到bios_info.txt文件,配置远程与本地通讯的串口和波特率等参数,将BIOS语言设置为英文。
3.如权利要求2所述的基于GUI实现BIOS远程自动化控制的系统,其特征在于,所述应用程序层用还用于实时获取当前待测机运行的数据,以用于数据解析模块解析处理。
4.如权利要求3所述的基于GUI实现BIOS远程自动化控制的系统,其特征在于,所述GUI操作层通过gnome-terminal启动terminal终端时,静默方式启动终端,用以承载串口通讯进程的运行,通过为终端命名,可以同时启动多个终端,相互隔离互不干扰。
5.如权利要求4所述的基于GUI实现BIOS远程自动化控制的系统,其特征在于,所述GUI操作层用于控制终端中的远程串口通讯进程时,包括:
查找全量terminal终端;
通过终端ID获取终端名称,判断是否为指定要操作的终端;
通过终端ID,聚焦到指定终端;
操作按键设有上下左右箭头,输入信息。
6.如权利要求5所述的基于GUI实现BIOS远程自动化控制的系统,其特征在于,所述数据解析模块用于页面及条目定位并获取信息,处理按键请求以及输入信息功能。
7.如权利要求6所述的基于GUI实现BIOS远程自动化控制的系统,其特征在于,所述页面及条目定位并获取信息,包括:
当用户调用基于GUI实现BIOS远程自动化控制的系统的工具时,传入待获取的页面及条目,数据解析模块通过实时解析bios_info.txt,自动进行页面的切换、条目的上下查找,将处理结果连同BIOS界面信息返回给用户。
8.如权利要求7所述的基于GUI实现BIOS远程自动化控制的系统,其特征在于,所述数据解析模块对于数据的处理时,清洗掉数据中的颜色、格式的控制转义序列,得到单纯的数据。
9.如权利要求8所述的基于GUI实现BIOS远程自动化控制的系统,其特征在于,所述数据解析模块进行页面和条目的定位时,根据BIOS界面的格式特征,选中条目时,获取到对应的格式特征。
10.如权利要求9所述的基于GUI实现BIOS远程自动化控制的系统,其特征在于,简单处理按键请求时,用户只传入按键列表,模块将接收到的按键逐个按下;输入信息功能时,用户传入待输入的字符串,数据解析模块接收到输入的字符串后,清空当前信息,将用户输入的字符串通过xdotool type“字符串”指令进行输入。
CN202210887357.0A 2022-07-26 2022-07-26 一种基于gui实现bios远程自动化控制的系统 Pending CN115080135A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210887357.0A CN115080135A (zh) 2022-07-26 2022-07-26 一种基于gui实现bios远程自动化控制的系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210887357.0A CN115080135A (zh) 2022-07-26 2022-07-26 一种基于gui实现bios远程自动化控制的系统

Publications (1)

Publication Number Publication Date
CN115080135A true CN115080135A (zh) 2022-09-20

Family

ID=83242248

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210887357.0A Pending CN115080135A (zh) 2022-07-26 2022-07-26 一种基于gui实现bios远程自动化控制的系统

Country Status (1)

Country Link
CN (1) CN115080135A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115529216A (zh) * 2022-10-10 2022-12-27 苏州浪潮智能科技有限公司 自动化配置智能网卡ip的方法、系统、设备及存储介质
WO2024108999A1 (zh) * 2022-11-25 2024-05-30 苏州元脑智能科技有限公司 一种基本输入输出系统设置方法、系统、存储介质及设备

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115529216A (zh) * 2022-10-10 2022-12-27 苏州浪潮智能科技有限公司 自动化配置智能网卡ip的方法、系统、设备及存储介质
WO2024108999A1 (zh) * 2022-11-25 2024-05-30 苏州元脑智能科技有限公司 一种基本输入输出系统设置方法、系统、存储介质及设备

Similar Documents

Publication Publication Date Title
CN115080135A (zh) 一种基于gui实现bios远程自动化控制的系统
CN110457218A (zh) 游戏引擎测试方法、装置、存储介质及电子设备
CN109508298B (zh) 图形化的脚本测试方法及系统
US20190020540A1 (en) Mechanism for hardware configuration and software deployment
CN113722020B (zh) 接口调用方法、装置和计算机可读存储介质
CN110377881B (zh) 文本处理服务的集成方法、装置以及系统
CN107911251A (zh) 一种网络设备配置方法、装置和介质
CN115357515B (zh) 一种多核系统的调试方法、装置、计算机设备及存储介质
WO2018036529A1 (zh) 一种可视化测试报告生成方法
CN112115055A (zh) 一种多机自动化测试方法、装置及计算机设备
CN111475412B (zh) 软件测试方法、装置、电子设备和计算机可读存储介质
CN109471776A (zh) 一种基于以太网的VxWorks操作系统日志收集方法
CN115455329A (zh) 一种b/s架构跨平台跨多端rpa设计器系统及实现方法
CN111262753B (zh) 一种numa节点个数自动配置方法方法、系统、终端及存储介质
Yang et al. Kernelgpt: Enhanced kernel fuzzing via large language models
CN113190279A (zh) 一种预启动功能控制方法、系统及介质
CN112464596B (zh) 回归测试方法、系统、设备及可读存储介质
CN108132799B (zh) 过程间静态程序分析信息提取方法、装置及设备
KR100930962B1 (ko) 알피씨 기반 소프트웨어의 원격지 보안 테스팅 장치 및방법
WO2018036528A1 (zh) 一种自动测试方法
CN114978360A (zh) 通信设备的自动化测试方法和装置、电子设备和存储介质
Liu et al. Design of vmware vsphere automatic operation and maintenance system based on python
CN113656291A (zh) 软件脚本引擎动态调用方法
CN109688025B (zh) 一种基于数字kvm的测试监控方法、装置、终端及存储介质
CN112328498A (zh) 业务的测试方法和装置、存储介质、电子装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination