一种Linux操作系统的GRUB自动测试方法及系统
文献发布时间:2024-04-18 19:57:31
技术领域
本发明涉及终端应用测试技术领域,尤其涉及一种Linux操作系统的GRUB自动测试方法及系统。
背景技术
近年来,随着互联网、通讯技术的高速发展和人类生活智能化的兴起,作为CPU的高速和外部设备的相对低速的调和剂--操作系统就变得尤为重要,而GRand UnifiedBootloader(GRand统一引导加载程序,简称“GRUB”)作为操作系统的核心技术,其界面显示的准确性及完整性也引起用户的广泛关注。GRUB界面显示的准确性及完整性能直观的反应操作系统相关信息。
在以往的Linux操作系统或者Windows操作系统自动化测试方法中,都主要去关注GRUB启动运行操作系统的功能。而GRUB界面其本身各种显示功能,如界面分辨率、界面基础功能、界面菜单显示、多引导支持功能等,往往需要由测试人员使用人眼手工去核对,需要耗费大量人力和时间成本,且测试形式单一。
发明内容
本发明要解决的技术问题是克服现有技术的不足,提供一种自动化程度高、测试效率高的Linux操作系统的GRUB自动测试方法及系统。
为解决上述技术问题,本发明采用以下技术方案:
一种Linux操作系统的GRUB自动测试方法,包括:
S101,基于GRUB的历史测试数据以及测试需求构建由自动化测试脚本构成的测试用例列表并存储到自动化测试脚本库,并对测试用例列表进行测试类别的分类;
S102,获取用户请求中的测试需求以及测试类别,根据用户请求中的测试需求以及测试类别获取对应的测试用例列表,并根据测试用例列表和测试类别在自动化测试脚本库中匹配对应的自动化测试脚本;
S103,备份GRUB的原始状态,利用自动化测试脚本修改GRUB的状态进行GRUB启动测试并生成测试报告,生成测试报告后再根据备份还原GRUB的原始状态。
作为上述技术方案的进一步改进:
步骤S101中基于GRUB的历史测试数据以及测试需求构建由自动化测试脚本构成的测试用例列表并存储到自动化测试脚本库包括:
S201,从GRUB的历史测试数据中提取测试项、测试参数以及测试流程;
S202,根据测试需求结合提取的测试项、测试参数以及测试流程构建测试用例列表;
S203,根据测试用例列表生成GRUB的自动化测试脚本并存储在自动化测试脚本库。
步骤S101中对测试用例列表进行测试类别的分类包括:
S301,对自动化测试脚本库中的测试用例列表中的各个测试项进行统计,将检查实际软件功能是否符合用户需求的测试项划分为功能测试项,将检查软件在长时间内连续运行的效率和能力的测试项划分为性能测试项;
S302,针对剩余的测试项,统计各个测试项的循环执行次数,将循环执行次数小于设定值的测试项划分为功能测试项,否则划分为性能测试项;
S303,对自动化测试脚本库中的测试用例列表中的各个测试项进行分类,将功能测试项作为基础功能测试类,将性能测试项作为性能稳定性测试类,从而得到基础功能测试类和性能稳定性测试类两种测试类别。
步骤S202中构建的测试用例列表涉及的测试项目包括:界面分辨率测试,包括默认分辨率测试和自定义分辨率测试;界面基础功能测试,包括界面字体测试、界面颜色测试和界面倒计时测试;界面菜单显示测试,包括菜单自定义显示测试、菜单隐藏显示测试和菜单指定显示测试;多引导支持功能测试,用于测试双系统或多系统情景下系统是否正常引导运行成功。
步骤S102中根据用户请求中的测试需求以及测试类别获取对应的测试用例列表,并根据测试用例列表和测试类别在自动化测试脚本库中匹配对应的自动化测试脚本包括:
S401,根据用户请求中的测试需求匹配对应的测试用例列表,根据所述测试用例列表在自动化测试脚本库中匹配对应的自动化测试脚本,得到匹配的候选自动化测试脚本;
S402,根据用户请求中的测试类别,在候选自动化测试脚本匹配对应的自动化测试脚本,得到最终匹配出的自动化测试脚本。
步骤S402中最终匹配出的自动化测试脚本为一个或者多个自动化测试脚本。
步骤S103中利用自动化测试脚本修改GRUB的状态进行GRUB启动测试包括:
S501,从最终匹配出的自动化测试脚本中获取一个自动化测试脚本作为当前自动化测试脚本,若获取成功,则跳转步骤S502;否则,往结果文件中写入完成标识,GRUB启动测试结束;
S502,针对当前自动化测试脚本从用户请求或者自动化测试脚本库中获取测试参数;
S503,根据当前自动化测试脚本修改GRUB的状态以完成测试环境配置;
S504,执行当前自动化测试脚本,并将执行结果写入结果文件中,跳转步骤S501。
步骤S103中生成测试报告包括:读取结果文件,判断是否检测到完成标识,若检测到完成标识,则判定GRUB启动测试结束,测试报告生成完毕,结束并退出;否则,对结果文件中自动化测试脚本的执行结果进行分析生成测试报告。
作为一个总的发明构思,本发明还提供一种Linux操作系统的GRUB自动测试系统,包括相互连接的微处理器和存储器,所述微处理器被编程或配置以执行上述Linux操作系统的GRUB自动测试方法。
作为一个总的发明构思,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序用于被微处理器编程或配置以执行上述Linux操作系统的GRUB自动测试方法。
与现有技术相比,本发明的优点在于:
1.本发明提供的Linux操作系统的GRUB自动测试方法,基于来源更可靠且更贴近真实测试数据的历史测试数据,通过构建由自动化测试脚本构成的测试用例列表,实现了对GRUB的自动化测试,可以减少人工参与,提高整体测试的效率性、可靠性以及准确性。
2.本发明的测试方法,在构建测试用例列表时,对测试用例列表进行测试类别的分类,并在后续根据具体的测试类别,在自动化测试脚本库中匹配对应的自动化测试脚本进行测试,无需人工根据测试需求调整参数,可以提高测试的准确性。
3.本发明的测试方法,在测试之前备份GRUB的原始状态,测试完成之后自动生成测试报告并还原GRUB的原始状态,也即每次对GRUB的修改仅限本次测试,这样下次再进行测试时可直接在原始GRUB的基础上测试,从而提高测试效率;同时,无需人工将GRUB的状态还原到原始状态,进一步减少整体测试过程中人工的参与,从而避免由于忘记还原GRUB状态导致下次测试时的出错,进而提高测试的可靠性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的Linux操作系统的GRUB自动测试方法的流程图。
图2是本发明实施例中构建由自动化测试脚本构成的测试用例列表的流程图。
图3是本发明实施例中对测试用例列表中的测试项进行测试类别分类的流程图。
图4是本发明实施例中测试用例列表的测试项的分类示意表。
图5是本发明实施例中利用自动化测试脚本进行GRUB测试时的流程图。
图6是本发明实施例中利用自动化测试脚本生成测试报告并还原GRUB状态的流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
为了减少人工参与,优化了原始手工测试方法的效率性,可靠性以及准确性。如图1所示,本发明实施例提供一种Linux操作系统的GRUB自动测试方法,包括:
S101,基于GRUB的历史测试数据以及测试需求构建由自动化测试脚本构成的测试用例列表并存储到自动化测试脚本库,并对测试用例列表进行测试类别的分类;
S102,获取用户请求中的测试需求以及测试类别,根据用户请求中的测试需求以及测试类别在自动化测试脚本库中匹配对应的自动化测试脚本;
S103,备份GRUB的原始状态,利用自动化测试脚本修改GRUB的状态进行GRUB启动测试并生成测试报告,生成测试报告后再根据备份还原GRUB的原始状态。
可以理解,本发明提供的Linux操作系统的GRUB自动测试方法,基于来源更可靠且更贴近真实测试数据的历史测试数据,通过构建由自动化测试脚本构成的测试用例列表,实现了对GRUB的自动化测试,可以减少人工参与,提高整体测试的效率性、可靠性以及准确性;本发明的测试方法,在构建测试用例列表时,对测试用例列表进行测试类别的分类,并在后续根据具体的测试类别,在自动化测试脚本库中匹配对应的自动化测试脚本进行测试,无需人工根据测试需求调整参数,可以提高测试的准确性;本发明的测试方法,在测试之前备份GRUB的原始状态,测试完成之后自动生成测试报告并还原GRUB的原始状态,也即每次对GRUB的修改仅限本次测试,这样下次再进行测试时可直接在原始GRUB的基础上测试,从而提高测试效率;同时,无需人工将GRUB的状态还原到原始状态,进一步减少整体测试过程中人工的参与,从而避免由于忘记还原GRUB状态导致下次测试时的出错,进而提高测试的可靠性。
下面对于每一步骤进行具体说明。
本实施例的步骤S101中,基于GRUB的历史测试数据以及测试需求构建由自动化测试脚本构成的测试用例列表并存储到自动化测试脚本库时,如图2所示,包括:
S201,从GRUB的历史测试数据中提取测试项、测试参数以及测试流程;
S202,根据测试需求结合提取的测试项、测试参数以及测试流程构建测试用例列表; S203,根据测试用例列表生成GRUB的自动化测试脚本并存储在自动化测试脚本库。
即步骤S101中,基于GRUB的历史测试数据以及测试需求构建由自动化测试脚本构成的测试用例列表并存储到自动化测试脚本库时,根据GRUB模块的历史测试数据与最新需求,确认测试用例列表并构建自动化测试脚本库,一个具体的示例如下:
步骤1.1,获取GRUB模块的历史测试数据,从历史测试数据中提取测试项、测试参数以及测试流程;
步骤1.2,获取GRUB模块的最新测试需求,根据最新需求与步骤1.1提取的信息完成测试用例列表;
步骤1.3,根据测试用例列表生成GRUB模块的自动化测试脚本并存储在自动化测试脚本库。
可以理解,从历史测试数据中提取测试信息的原因是其来源更可靠,且更贴近真实测试数据;生成测试用例列表并构建自动化测试脚本库是为测试流程自动化做准备,提高测试效率。
为了实现对GRUB显示界面的界面分辨率、界面基础功能、界面菜单显示以及多引导支持功能进行测试,本实施例的步骤S202中,所构建的测试用例列表的测试项可以包括:
界面分辨率测试,包括默认分辨率测试和自定义分辨率测试;
界面基础功能测试,包括界面字体测试、界面颜色测试和界面倒计时测试;
界面菜单显示测试,包括菜单自定义显示测试、菜单隐藏显示测试和菜单指定显示测试;
多引导支持功能测试,用于测试双系统或多系统情景下系统是否正常引导运行成功,此测试项适用于双系统或多系统情景。
进一步的,为了实现对GRUB的其他功能进行测试,本实施例的步骤S202中,所构建的测试用例列表还可以包括其他的测试项。
由于所构建的测试用例列表存在诸多测试项,导致自动化测试脚本库中的测试脚本数量较多,容易出现错误测试,我们考虑对所构建的测试用例列表进行分类,后续根据测试用例表与其测试分类,从自动化脚本库中匹配出对应自动化测试脚本,从而防止出现错误测试,能顺利进入后续自动化测试过程。
因此,本实施例的步骤S101中,构建测试用例列表并将对应的自动化测试脚本存储到自动化测试脚本库之后,对测试用例列表进行测试类别的分类时,包括:
S301,对自动化测试脚本库中的测试用例列表中的各个测试项进行统计,将检查实际软件功能是否符合用户需求的测试项划分为功能测试项,将检查软件在长时间内连续运行的效率和能力的测试项划分为性能测试项;
S302,针对剩余的测试项,统计各个测试项的循环执行次数,将循环执行次数小于设定值的测试项划分为功能测试项,否则划分为性能测试项;
S303,对自动化测试脚本库中的测试用例列表中的各个测试项进行分类,将功能测试项作为基础功能测试类,将性能测试项作为性能稳定性测试类,从而得到基础功能测试类和性能稳定性测试类两种测试类别。
即步骤S101中,对测试用例列表进行测试类别的分类时,根据测试用例表生成测试分类:包括基础功能测试类,性能稳定性测试类,一个具体的示例如下:
如图3所示,根据测试用例列表生成测试分类,测试分类包括基础功能测试类以及性能稳定性测试类;其中,生成测试分类包括步骤:
步骤2.1,对测试用例列表中的各个测试项进行统计,其中将检查实际软件功能是否符合用户需求的测试项划分为功能测试项,将检查软件在长时间内连续运行的效率和能力的测试项划分为性能测试项。
步骤2.2,统计每项测试项的循环执行次数,其中次数N<10的则判定为功能测试项,反之则为性能测试项。
步骤2.3,对GRUB模块下的所有测试项进行分类,将功能测试项作为基础功能测试类,将性能测试项作为性能稳定性测试类。
具体地,图4示出了测试用例列表中的若干测试项,这些测试项根据测试类为基础功能测试类或性能稳定测试类以及测试要求来分类。需要说明的是,本实施例中的测试项及分类仅仅为示例,实际测试中,也可以根据测试需求再添加和补充具体的测试项到测试用例列表中。
本实施例的步骤S102中,根据用户请求中的测试需求以及测试类别获取对应的测试用例列表,并根据测试用例列表和测试类别在自动化测试脚本库中匹配对应的自动化测试脚本包括:
S401,根据用户请求中的测试需求匹配对应的测试用例列表,根据所述测试用例列表在自动化测试脚本库中匹配对应的自动化测试脚本,得到匹配的候选自动化测试脚本;
S402,根据用户请求中的测试类别,在候选自动化测试脚本匹配对应的自动化测试脚本,得到最终匹配出的自动化测试脚本。
其中,步骤S402中最终匹配出的自动化测试脚本为一个或者多个自动化测试脚本。
一个具体的示例如下:
首先,根据当前用户请求提取测试需求以及测试分类,并获取对应测试用例列表。当用户发起测试请求,自动化平台立即根据当前测试请求去提取测试需求,确认好对应需求后开始判断当前需求属于哪种测试类别,再去确认好的测试类中获取对应测试用例列表。
然后,根据测试用例列表与测试分类,从自动化脚本库中匹配出对应的自动化测试脚本。其中,匹配出对应的自动化测试脚本包括步骤:
步骤4.1,根据测试用例列表从自动化测试脚本库中确定出自动化脚本模块组,再根据确定出的自动化用例模块组分组找到对应的自动化脚本类;
步骤4.2,根据测试分类,从自动化用例脚本类中找到自动化测试脚本项,再从自动化测试脚本项匹配出对应的自动化脚本。
可以理解,首先通过测试用例列表确认出脚本模块组,实现对自动化脚本模块的验证,再根据自动化脚本分类匹配出自动化脚本,防止出现错误测试,从而能顺利进入后续自动化测试过程。
本实施例的步骤S103中,备份GRUB的原始状态的一个具体的示例如下:
步骤5.1,在编辑/etc/default/GRUB或/etc/GRUB.d文件夹中的脚本之前,执行copy脚本对/boot/GRUB/GRUB.cfg所有状态进行记录,以便后续步骤的操作。值得一提的是每当用户执行update-GRUB或由各种系统功能自动调用时,直接对/boot/GRUB/GRUB.cfg所做的任何更改都会被覆盖。
本实施例中,步骤S103中,利用自动化测试脚本修改GRUB的状态进行GRUB启动测试并生成测试报告包括:
S501,从最终匹配出的自动化测试脚本中获取一个自动化测试脚本作为当前自动化测试脚本,若获取成功,则跳转步骤S502;否则,往结果文件中写入完成标识,GRUB启动测试结束;
S502,针对当前自动化测试脚本从用户请求或者自动化测试脚本库中获取测试参数;
S503,根据当前自动化测试脚本修改GRUB的状态以完成测试环境配置;
S504,执行当前自动化测试脚本,并将执行结果写入结果文件中,跳转步骤S501;
其中,生成测试报告包括:读取结果文件,判断是否检测到完成标识,若检测到完成标识,则判定GRUB启动测试结束,测试报告生成完毕,结束并退出;否则,对结果文件中自动化测试脚本的执行结果进行分析生成测试报告。
一个具体的示例如下:
首先运行匹配出的自动化脚本进行测试,如图5所示,包括:
步骤5.2,根据选出好的各个自动化测试脚本去匹配对应的测试参数,然后执行install.sh文件进行测试环境配置;
步骤5.3,根据匹配出的自动化脚本确认.py文件,再根据.py文件确认对应测试用例并运行run.sh;
步骤5.4,生成result文件并对文件进行编码;
然后,生成测试报告,还原GRUB原始状态,如图6所示,包括:
步骤5.5,根据result文件状态,判断自动化测试脚本是否运行完成,若完成则进行下一步骤;具体地,若result文件的状态为true,则自动化测试脚本运行完成,进行下一步;否则继续执行测试,直至生成的result文件状态为true;
步骤5.6,对步骤5.4的编码文件result进行分析,并生成测试报告。
本实施例中,步骤S103中,根据备份还原GRUB的原始状态的一个具体的示例如下:
步骤5.7,先获取步骤5.1所记录的GRUB原始状态,再运行sudo update-GRUB以将更改合并到GRUB 2的菜单中。
可以理解,获取GRUB原始状态是为后续完成自动化测试后,恢复GRUB状态做准备;完成GRUB原始状态记录后,则开始执行install.sh文件进行测试环境配置;最后环境配置完成后再执行run.sh正式开始自动化测试。在本发明实施例中采用的自动化框架为图形自动化框架,其提供编程接口,一个接口提供多种参数选择,提高了脚本定位/判断的准确性。测试完成后,再执行sudo update-GRUB将GRUB的状态恢复为原始状态,便于下一次的测试。
实施例二
本实施例提供一种Linux操作系统的GRUB自动测试系统,包括相互连接的微处理器和存储器,微处理器被编程或配置以执行实施例一所述的Linux操作系统的GRUB自动测试方法。
本实施例还提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序用于被微处理器编程或配置以执行实施例一所述的Linux操作系统的GRUB自动测试方法。
虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明。任何熟悉本领域的技术人员,在不脱离本发明技术方案范围的情况下,都可利用上述揭示的技术内容对本发明技术方案做出许多可能的变动和修饰,或修改为等同变化的等效实施例。因此,凡是未脱离本发明技术方案的内容,依据本发明技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均应落在本发明技术方案保护的范围内。
- 一种自动化测试系统及自动化测试方法
- 一种国产操作系统软件自动化测试方法及系统
- 基于Linux操作系统的安卓应用功能自动化测试方法及装置
- 一种linux操作系统管理平台的稳定性测试方法及系统