服务器BMC自动化测试系统、方法、存储介质、电子设备
技术领域
本发明涉及一种BMC测试技术领域,是一种服务器BMC自动化测试系统、方法、存储介质、电子设备。
背景技术
是部署于服务器的具有独立供电、独立I/O接口的控制单元,能够对服务器的传感器、硬盘、网络、显卡等外设进行控制。
日常对于BMC的测试十分重要,通过对BMC的测试及时发现BMC的异常,及时对异常进行修复,若不及时发现及修复BMC的异常,则无法对服务器进行监控管理,影响服务器性能。BMC测试需要基于不同平台来验证,服务器厂商一般有多个平台产品,每个平台的BMC都需要验证。现有BMC测试只能通过专业技术人员手动编写对应的自动化测试用例脚本进行测试,自动化测试用例脚本不能重复使用,需不断的根据实际测试的对象不断修改,故工作量大,测试效率低。
发明内容
本发明提供了一种服务器BMC自动化测试系统、方法、存储介质、电子设备,克服了上述现有技术之不足,其能有效解决现有BMC测试方法存在的工作量大,测试效率低的问题。
本发明的技术方案之一是通过以下措施来实现的:一种服务器BMC自动化测试系统,包括:
组件单元,用于存储及管理BMC测试需要的组件,其中,组件包括逻辑组件、AW组件、适配层组件;
测试用例脚本单元,用于编辑、存储和管理测试用例脚本,并根据测试用例脚本中的声明,加载相应的组件,其中,组件包括逻辑组件、AW组件、适配层组件;
配置文件管理单元,用于配置测试用例脚本需要的数据文件;
测试执行与管理单元,用于执行测试用例脚本,生成及管理测试报告。
下面是对上述发明技术方案的进一步优化或/和改进:
上述组件单元包括:
逻辑组件模块,存储和管理逻辑组件,其中,逻辑组件能被测试用例脚本加载,且每个逻辑组件为一种BMC业务测试流程;
AW组件模块,存储和管理AW组件,其中,AW组件能被逻辑组件加载,且每个AW组件为BMC页面的一种控件;
适配层组件模块,存储和管理适配层组件,其中,适配层组件能被AW组件加载,且每个适配层组件一个第三方组件。
上述还包括模块组件单元,用于逻辑组件模块和AW组件模块之间,为多个逻辑组件重复引用一个AW组件提供服务。
上述测试执行与管理单元包括:
测试执行模块,执行测试用例脚本;
测试用例脚本审计模块,展示测试用例信息;
测试报告管理模块,根据测试结果生成测试报告;
测试报告分析模块,对测试报告进行分析,分析过程包括测试结果展示和失败定位;
失败信息存储模块,对测试失败的界面进行截图,并存储;
测试报告发送模块,发送测试报告至指定人员。
上述配置文件管理单元包括:
全局配置文件管理模块,对测试用例脚本需要全局变量进行配置;
用户数据管理模块,对测试用例脚本需要用户数据进行配置。
本发明的技术方案之二是通过以下措施来实现的:一种服务器BMC自动化测试方法,包括:
获取要执行的自动化脚本测试套,其中,自动化脚本测试套包括多个测试用例脚本;
在每个测试用例脚本中逐层加载对应组件,对每个测试用例脚本所需的数据文件进行配置;
执行自动化脚本测试套对待测BMC进行测试,生成测试报告。
下面是对上述发明技术方案的进一步优化或/和改进:
上述在每个测试用例脚本中逐层加载对应组件,包括:
加载在测试用例脚本中被引用的逻辑组件;
加载在逻辑组件中被引用的AW组件;
加载在AW组件中被引用的适配层组件。
上述执行自动化脚本测试套对待测BMC进行测试,包括:
执行自动化脚本测试套中的测试用例脚本;
判断该测试用例脚本的测试结果是否通过,响应于是,则判断自动化脚本测试套是否执行完毕,响应于否,则该项测试失败,对测试失败的界面进行截图存储;
判断自动化脚本测试套是否执行完毕,响应于是,生成测试报告。
本发明的技术方案之三是通过以下措施来实现的:一种存储介质,其特征在于,所述存储介质上存储有能被计算机读取的计算机程序,所述计算机程序被设置为运行时执行服务器BMC自动化测试方法。
本发明的技术方案之四是通过以下措施来实现的:一种电子设备,其特征在于,包括处理器和存储器,所述存储器中存储有计算机程序,计算机程序由处理器加载并执行以实现服务器BMC自动化测试方法。
本发明实现了组件之间的解耦、数据文件与代码之间的解耦,通过组件单元、配置文件管理单元在测试时,根据测试需求只需修改维护各自的数据,即对应修改少量的脚本,无需以传统的方式对若干测试用例脚本进行修改,降低了测试用例脚本维护成本,减少了测试人员工作量,提高了测试效率;同时组件单元中的组件只需编码一次,无需每次测试都进行对应编码,能针对各种测试环境被测试用例脚本重复调用,减少了大量的重复编码;并且由于组件之间的解耦、数据文件与代码之间的解耦,本发明能将一套测试用例脚本运用于多种测试场景,无需对测试用例脚本进行多次开发。
附图说明
附图1为本发明实施例的系统架构图。
附图2为本发明实施例的自动化测试流程图。
附图3为本发明实施例加载组件的流程图。
附图4为本发明实施例执行自动化脚本测试套的流程图。
具体实施方式
本发明不受下述实施例的限制,可根据本发明的技术方案与实际情况来确定具体的实施方式。
下面结合实施例及附图对本发明作进一步描述:
如附图1所示,本发明实施例公开了服务器BMC自动化测试系统,包括:
组件单元,用于存储及管理BMC测试需要的组件,其中,组件包括逻辑组件、AW组件、适配层组件;
测试用例脚本单元,用于编辑、存储和管理测试用例脚本,并根据测试用例脚本中的声明,加载相应的组件,其中,组件包括逻辑组件、AW组件、适配层组件;
配置文件管理单元,用于配置测试用例脚本需要的数据文件;
测试执行与管理单元,用于执行测试用例脚本,生成及管理测试报告。
上述技术方案中,测试用例脚本单元内存储有若干个测试用例脚本,具体测试时可以根据测试需求进行选择一个测试用例脚本或多个测试用例脚本。
上述技术方案中,组件单元内包含有逻辑组件、AW组件、适配层组件,组件和组件之间完全解耦,组件的内容包括第三方组件、BMC业务测试流程、控件等等,都相互解耦及单独封装;配置文件管理单元配置测试用例脚本需要的数据文件,使得配置文件与测试用例脚本完全解耦。由此在根据测试需求,只需修改维护各自的数据(例如根据测试需求需修改某一配置文件,则只需通过配置文件管理单元进行针对修改),无需以传统的方式对若干测试用例脚本进行修改,使得能将一套测试用例脚本运用于多种测试场景,无需对测试用例脚本进行多次开发。
本发明上述实施例中,实现了组件之间的解耦、数据文件与代码之间的解耦,通过组件单元、配置文件管理单元在测试时,根据测试需求只需修改维护各自的数据,即对应修改少量的脚本,无需以传统的方式对若干测试用例脚本进行修改,降低了测试用例脚本维护成本,减少了测试人员工作量,提高了测试效率;同时组件单元中的组件只需编码一次,无需每次测试都进行对应编码,能针对各种测试环境被测试用例脚本重复调用,减少了大量的重复编码;并且由于组件之间的解耦、数据文件与代码之间的解耦,本发明能将一套测试用例脚本运用于多种测试场景,无需对测试用例脚本进行多次开发。
下面是对上述发明实施例的技术方案进一步优化或/和改进:
如附图1所示,在上一实施例中利用组件单元存储及管理BMC测试需要的组件,本实施中的服务器BMC自动化测试系统,组件单元还可以进一步包括:
逻辑组件模块,存储和管理逻辑组件,其中,逻辑组件能被测试用例脚本加载,且每个逻辑组件为一种BMC业务测试流程;
AW组件模块,存储和管理AW组件,其中,AW组件能被逻辑组件加载,且每个AW组件为BMC页面的一种控件;
适配层组件模块,存储和管理适配层组件,其中,适配层组件能被AW组件加载,且每个适配层组件一个第三方组件。
上述各个组件可以根据需求进行扩展,并且不影响已有组件。
上述每个逻辑组件为一种BMC业务测试流程(例如登录界面流程),每个逻辑组件均可以使用python语言编写。逻辑组件被测试用例脚本加载,而逻辑组件被测试用例脚本加载的前提是被测试用例脚本引用。例如在编写的一个测试用例脚本中需要加载“登录界面流程”对应的逻辑组件,则需在该测试用例脚本的前面声明该逻辑组件,从而测试时该测试用例脚本能加载该逻辑组件。
上述每个AW组件为BMC页面的一种控件(例如输入控件、点击控件),即将不同BMC页面上相同的控件提取出来,作为一个AW组件编写,AW组件可以使用python语言编写。AW组件被逻辑组件加载,而AW组件被逻辑组件加载的前提是被逻辑组件引用。例如在编写一个逻辑组件的过程中需要加载“输入控件”对应的AW组件,则需在该逻辑组件的前面声明该AW组件,从而测试时该逻辑组件能加载该AW组件。
上述适配层组件为组件单元的最底层。适配层组件包括Selenium、Ssh、Gui、Log等,适配层组件可以使用python语言编写。适配层组件被AW组件加载,而适配层组件被AW组件加载的前提是被AW组件引用。例如在编写一个AW组件的过程中需要加载Selenium对应的适配层组件,则需在该AW组件的前面声明该适配层组件,从而测试时该AW组件能加载该适配层组件。
本实施例中第三方组件与BMC业务测试流程完全解耦,使得第三方组件的升级和回退,只需要在适配层组件模块进行修改,将少了本发明的维护成本。
本实施例具体测试时,各个组件能被各个测试场景下的测试用例脚本加载使用;例如如表1所示,有3个测试场景,分别为1、输入正确的用户名和密码可以成功,检测登录成功;2、输入正确的用户名和错误的密码,检测登录失败;3、输入错误的用户名和正确的密码,检测登录失败;针对3个测试场景通过3个测试用例脚本对待测BMC进行测试人员验证登录检测;其中正确的用户名为 zhangsna,正确的密码为 123456。由表1可以看出,3个测试场景都用到了同一个逻辑组件和同一个测试用例脚本,则针对3个测试场景的不同只需维护修改该测试用例脚本的配置文件,即修改测试用例脚本的输入条件和输出结果,从而实现对待测BMC的测试。
综上本发明实施例中针对多个测试场景用同一个逻辑组件的情况,测试人员编写测试用例脚本时只需维护测试用例脚本的配置文件,不需要对逻辑组件、AW组件和适配层组件进行编写,从而提高了测试用例脚本的编写效率,降低了编写重复率,降低了对测试人员的要求。
如附图1所示,在上一实施例中多个逻辑组件可能会重复加载多个相同的AW组件,为了提高测试效率,本实施中的服务器BMC自动化测试系统,组件单元还可以进一步包括模块组件单元,用于逻辑组件模块和AW组件模块之间,为多个逻辑组件重复引用一个AW组件提供服务。
上述模块组件单元包括下拉框和弹出框。例如,下拉框可以是多个AW组件的组合,但是下拉框并不是一个业务流程,多个业务流程都会重复使用下拉框中的AW组件,加入模块组件单元后,多个业务流程都会重复使用下拉框中的AW组件时,多个业务流程对应的各个逻辑组件分别加载该下拉框即可。
如附图1所示,在上一实施例中利用测试执行与管理单元执行测试用例脚本,生成及管理测试报告,本实施中的服务器BMC自动化测试系统,测试执行与管理单元还可以进一步包括:
测试执行模块,执行测试用例脚本;
测试用例脚本审计模块,展示测试用例信息;
测试报告管理模块,根据测试结果生成测试报告;
测试报告分析模块,对测试报告进行分析,分析过程包括测试结果展示和失败定位;
失败信息存储模块,对测试失败的界面进行截图,并存储;
测试报告发送模块,发送测试报告至指定人员。
本实施例可以运行于浏览器,以浏览器为例,上述测试执行模块执行测试用例脚本时,可通过适配层组件模块中的ssh组件连接服务器,与服务器的被测BMC通信,通过浏览器的IPMI接口向被测BMC发送测试指令,接收被测BMC回传的数据获得测试结果。
上述测试报告管理模块生成测试报告,测试报告包括测试时间、日志文件、测试集统计、测试详情、测试用例脚本执行Log等内容。
上述失败信息存储模块,对测试失败的界面进行截图,图片名称可以但不限于以“测试用例脚本名称-yyyyMMddHHmmss”,图片格式可以但不限于为jpg,图片大小可以但不限于为120KB。
上述测试报告分析模块中测试结果展示即为展示测试报告中的相应内容,失败定位即为根据失败信息存储模块中的截图进行失败定位。
通过本实施例,测试人员能清晰的获取测试结果及对测试结果进行分析,增加的使用体验。
如附图1所示,在上一实施例中利用配置文件管理单元配置测试用例脚本需要的数据文件,本实施中的服务器BMC自动化测试系统,配置文件管理单元还可以进一步包括:
全局配置文件管理模块,对测试用例脚本需要全局变量进行配置;
用户数据管理模块,对测试用例脚本需要用户数据进行配置。
上述通过全局配置文件管理模块对测试用例脚本需要全局变量进行配置,其中全局变量包括IP地址、共用开关、浏览器等,根据测试环境对全局变量进行配置时,例如选择服务器的IP地址,选择使用浏览器的类型。
上述通过用户数据管理模块对测试用例脚本需要用户数据进行配置,其中用户数据包括逻辑数据文件和业务数据文件,逻辑数据文件包括浏览器中测试页面的元素定位地址等,业务数据文件包括中文的输入数据、菜单数据、输出基线数据,英文的输入数据、菜单数据、输出基线数据。
在测试时,须通过配置文件管理单元对测试用例脚本中的上述数据进行配置。
如附图2所示,相应的,本发明实施例还公开了服务器BMC自动化测试方法,包括:
S1,获取要执行的自动化脚本测试套,其中,自动化脚本测试套包括多个测试用例脚本;
S2,在每个测试用例脚本中逐层加载对应组件,对每个测试用例脚本所需的数据文件进行配置;
S3,执行自动化脚本测试套对待测BMC进行测试,生成测试报告。
下面是对上述发明实施例的技术方案进一步优化或/和改进:
如附图3所示,在上一实施例中在每个测试用例脚本中逐层加载对应组件,本实施中的服务器BMC自动化测试方法,在每个测试用例脚本中逐层加载对应组件还可以进一步包括:
S21,加载在测试用例脚本中被引用的逻辑组件;
S22,加载在逻辑组件中被引用的AW组件;
S23,加载在AW组件中被引用的适配层组件。
如附图4所示,在上一实施例中执行自动化脚本测试套对待测BMC进行测试,生成测试报告,本实施中的服务器BMC自动化测试方法,执行自动化脚本测试套对待测BMC进行测试还可以进一步包括:
S11,执行自动化脚本测试套中的测试用例脚本;
S12,判断该测试用例脚本的测试结果是否通过,响应于是,则判断自动化脚本测试套是否执行完毕,响应于否,则该项测试失败,对测试失败的界面进行截图存储;
S13,判断自动化脚本测试套是否执行完毕,响应于是,生成测试报告,响应于否,则继续执行自动化脚本测试套中的测试用例脚本。
上述执行测试用例脚本时,对组件的执行按照适配层组件、AW组件、逻辑组件的顺序执行。
相应的,本发明实施例还公开了一种存储介质,所述存储介质上存储有能被计算机读取的计算机程序,所述计算机程序被设置为运行时执行服务器BMC自动化测试方法。
上述存储介质可以包括但不限于:U盘、只读存储器、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
相应的,本发明实施例还公开了一种电子设备,包括处理器和存储器,所述存储器中存储有计算机程序,计算机程序由处理器加载并执行以实现服务器BMC自动化测试方法。
上述电子设备还包括传输设备、输入输出设备,其中,传输设备和输入输出设备均与处理器连接。
以上技术特征构成了本发明的最佳实施例,其具有较强的适应性和最佳实施效果,可根据实际需要增减非必要的技术特征,来满足不同情况的需求。