一种操作系统LTP测试的方法和设备与流程

文档序号:21361947发布日期:2020-07-04 04:35阅读:1575来源:国知局
一种操作系统LTP测试的方法和设备与流程

本领域涉及计算机领域,并且更具体地涉及一种操作系统ltp测试的方法和设备。



背景技术:

国产操作系统isoft(普华操作系统)在服务器认证测试过程中,其中一个测试重点是需要进行稳定性测试,目前原厂商提供的测试点主要包括iozone、ltp(用来对linux系统进行稳定性测试的一个开源工具)、netperf三方面,其中iozone主要测操作系统中文件系统的读写性能;ltp主要通过压力测试来判断系统的稳定性和可靠性,可得到cpu、内存、i/o的高水平的资源利用率;netperf主要测试网络性能,针对基于tcp或udp的传输,可以进行不同模式的网络性能测试即批量数据传输模式和请求应答模式。

isoft在进行ltp测试过程中,通过压力测试判断系统的稳定性和可靠性,但是目前ltp压力测试过程中存在cpu空闲百分比经常居高不下的情况,一般会达到80%以上,表明cpu、内存等资源利用率达不到压力测试的标准,测试过程中压力测试环境稳定性不足,经常导致ltp压力测试失败,并且该测试项测试周期较长,大约需要8小时左右,测试环境不稳定严重影响认证测试进度。



技术实现要素:

有鉴于此,本发明实施例的目的在于提出一种操作系统ltp测试的方法和设备,通过使用本发明的方法,能够及时发现压力测试环境不能满足测试条件并可以通过命令实现增加测试压力的功能,达到测试环境稳定性的目的,避免了不必要的无效测试,提高测试效率。

基于上述目的,本发明的实施例的一个方面提供了一种操作系统ltp测试的方法,包括以下步骤:

部署ltp测试的运行环境并开始ltp测试;

每经过阈值时间监控ltp测试过程中的id(空闲cpu百分比)值,并将id值与阈值进行比较;

响应于id值不小于阈值,向操作系统加压;

响应于id值小于阈值,停止向操作系统加压并输出相应的指示;

持续监控id直到ltp测试结束,输出测试结果。

根据本发明的一个实施例,部署ltp测试的运行环境包括:

在操作系统的输入框运行#bashltp.sh命令安装相关测试工具包并设置相关环境参数。

根据本发明的一个实施例,每经过阈值时间监控ltp测试过程中的id值包括:

每经过阈值时间使用python调用os.popen获取cpu的利用率;

提取cpu的利用率中的id值。

根据本发明的一个实施例,提取cpu的利用率中的id值包括:

在获取到的cpu的利用率的数组中使用cat、grep和awk命令将表示id值的数组存储到awk数组中。

根据本发明的一个实施例,向操作系统加压包括:

使用nohup命令增加进程以使操作系统cup和内存利用率增加。

本发明的实施例的另一个方面,还提供了一种操作系统ltp测试的设备,设备包括:

部署模块,部署模块配置为部署ltp测试的运行环境并开始ltp测试;

监控模块,监控模块配置为每经过阈值时间监控ltp测试过程中的id值,并将id值与阈值进行比较;

加压模块,加压模块配置为响应于id值不小于阈值,向操作系统加压;

停止模块,停止模块配置为响应于id值小于阈值,停止向操作系统加压并输出相应的指示;

输出模块,持续监控id直到ltp测试结束,输出测试结果。

根据本发明的一个实施例,部署模块还配置为在操作系统的输入框运行#bashltp.sh命令安装相关测试工具包并设置相关环境参数。

根据本发明的一个实施例,监控模块还配置为:

每经过阈值时间使用python调用os.popen获取cpu的利用率;

提取cpu的利用率中的id值。

根据本发明的一个实施例,监控模块还配置为在获取到的cpu的利用率的数组中使用cat、grep和awk命令将表示id值的数组存储到awk数组中。

根据本发明的一个实施例,加压模块还配置为使用nohup命令增加进程以使操作系统cup和内存利用率增加。

本发明具有以下有益技术效果:本发明实施例提供的操作系统ltp测试的方法,通过部署ltp测试的运行环境并开始ltp测试;每经过阈值时间监控ltp测试过程中的id值,并将id值与阈值进行比较;响应于id值不小于阈值,向操作系统加压;响应于id值小于阈值,停止向操作系统加压并输出相应的指示;持续监控id直到ltp测试结束,输出测试结果的技术方案,能够及时发现压力测试环境不能满足测试条件并可以通过命令实现增加测试压力的功能,达到测试环境稳定性的目的,避免了不必要的无效测试,提高测试效率。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。

图1为根据本发明一个实施例的操作系统ltp测试的方法的示意性流程图;

图2为根据本发明一个实施例的操作系统ltp测试的设备的示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。

基于上述目的,本发明的实施例的第一个方面,提出了一种操作系统ltp测试的方法的一个实施例。图1示出的是该方法的示意性流程图。

如图1中所示,该方法可以包括以下步骤:

s1部署ltp测试的运行环境并开始ltp测试,通过脚本ltp.sh来部署安装测试环境,终端输入框运行#bashltp.sh命令安装相关测试工具包并设置相关环境参数,设置完成后运行脚本命令:./testscripts/ltpstress.sh-d/tmp/sar.out.0-l/tmp/stress.log.0-p-q-t72-s>>/tmp/stress.out.02>&1&开始引导ltp测试;

s2每经过阈值时间监控ltp测试过程中的id值,并将id值与阈值进行比较,在测试运行开始之后,可以设定阈值时间为5秒,每间隔5秒实施监测ltp测试过程中定期监测id值的变化情况,并对id值进行判断;

s3响应于id值不小于阈值,向操作系统加压,可以将阈值设置为10,如果id值不小于10,表明空闲cpu百分比高,达不到压力测试的要求,需要增加测试进程,提高测试压力,进一步减少cpu空闲百分比;

s4响应于id值小于阈值,停止向操作系统加压并输出相应的指示,如果id值小于10,表明空闲cpu百分比一直比较小,压力测试环境稳定可以满足压力测试要求,输出“testingisnormal.”继续测试;

s5持续监控id直到ltp测试结束,输出测试结果,如果监测到id值不小于10的情况则自动加压直至id值降到10以下,继续测试并定期监测id值直至测试结束。

主要解决在ltp压力测试过程中,针对压力测试环境的不稳定性问题,增加一套自动监测及加压机制,实时监测确保测试过程中cpu、内存等资源的利用率能够达到压力测试的要求,并可以对cpu空闲百分比过高的情况下自动加压,及时让测试环境趋于稳定,避免因测试压力达不到标准导致无效测试。实施方法主要是对ltp测试流程进行优化,对isoft认证的测试工具进行改进,增加对测试环境稳定性的监测机制,可以根据实际情况需要判断是否增加测试压力,即在运行测试脚本的时候通过nohup命令增加进程,来达到增加cpu、内存利用率的目的,增加压力确保测试过程稳定,并实时监测id值变动情况,实现保持测试稳定并及时预警的功能。

通过本发明的技术方案,能够及时发现压力测试环境不能满足测试条件并可以通过命令实现增加测试压力的功能,达到测试环境稳定性的目的,避免了不必要的无效测试,提高测试效率。

在本发明的一个优选实施例中,部署ltp测试的运行环境包括:

在操作系统的输入框运行#bashltp.sh命令安装相关测试工具包并设置相关环境参数。通过脚本ltp.sh来部署安装测试环境,终端输入框运行#bashltp.sh命令安装相关测试工具包并设置相关环境参数,设置完成后运行脚本命令:./testscripts/ltpstress.sh-d/tmp/sar.out.0-l/tmp/stress.log.0-p-q-t72-s>>/tmp/stress.out.02>&1&开始引导ltp测试。

在本发明的一个优选实施例中,每经过阈值时间监控ltp测试过程中的id值包括:

每经过阈值时间使用python调用os.popen获取cpu的利用率;

提取cpu的利用率中的id值。

在linux下使用python调用os.popen方法获取cpu利用率,如下所示:

通过上述命令可以实现每隔5秒的时间,获取一次cpu利用率的最新情况,主要包括us(用户空间占用cpu的百分比)、sy(内核空间占用cpu的百分比)、id(空闲cpu百分比)、wa(io等占用cpu的百分比)等,我们主要专注空闲cpu百分比id值。

在本发明的一个优选实施例中,提取cpu的利用率中的id值包括:

在获取到的cpu的利用率的数组中使用cat、grep和awk命令将表示id值的数组存储到awk数组中。

例如,可以综合运用cat、grep和awk得到一列id值,并存储到awk数组中,具体示例如下:

#cat/cpu_idle|grepeth0|grep-v00:00:00:00:00:00|awk'{print$15}'

(1)grep–v的作用:实现反向选择,剔除不符合条件的;

(2)grepeth0:实现去掉第一行;

(3)其中awk'{print$15}'实现只输出第15列的数据(awk以空格为切断符)。

结果输出为一列id值。

监测数组最新id值,判断测试环境稳定性,具体示例如下:

nohup/opt/ltp/testcases/bin/genload--vm8--vm-bytes443547648&echo“automaticpressurization.”

首先通过split分割数组返回数组长度,根据数组长度值获取最新cpu空闲百分比id值,判断id值是否小于10,如果小于10表明空闲cpu百分比一直比较小,压力测试环境稳定可以满足压力测试要求,输出“testingisnormal.”继续测试。

在本发明的一个优选实施例中,向操作系统加压包括:

使用nohup命令增加进程以使操作系统cup和内存利用率增加。

如果id值不小于10,表明空闲cpu百分比高,达不到压力测试的要求,需要执行

nohup/opt/ltp/testcases/bin/genload--vm8--vm-bytes443547648&

增加测试进程,提高测试压力,进一步减少cpu空闲百分比。后期每5秒钟监测最新id值,并根据id实际值进一步判断,直至id值能够稳定维持在10以下,达到压力测试环境稳定的目的。

通过本发明的技术方案,能够及时发现压力测试环境不能满足测试条件并可以通过命令实现增加测试压力的功能,达到测试环境稳定性的目的,避免了不必要的无效测试,提高测试效率。

需要说明的是,本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关硬件来完成,上述的程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中存储介质可为磁碟、光盘、只读存储器(read-onlymemory,rom)或随机存取存储器(randomaccessmemory,ram)等。上述计算机程序的实施例,可以达到与之对应的前述任意方法实施例相同或者相类似的效果。

此外,根据本发明实施例公开的方法还可以被实现为由cpu执行的计算机程序,该计算机程序可以存储在计算机可读存储介质中。在该计算机程序被cpu执行时,执行本发明实施例公开的方法中限定的上述功能。

基于上述目的,本发明的实施例的第二个方面,提出了一种操作系统ltp测试的设备,如图2所示,设备200包括:

部署模块,部署模块配置为部署ltp测试的运行环境并开始ltp测试;

监控模块,监控模块配置为每经过阈值时间监控ltp测试过程中的id值,并将id值与阈值进行比较;

加压模块,加压模块配置为响应于id值不小于阈值,向操作系统加压;

停止模块,停止模块配置为响应于id值小于阈值,停止向操作系统加压并输出相应的指示;

输出模块,输出模块配置为重复2至4步直到ltp测试结束,输出测试结果。

在本发明的一个优选实施例中,部署模块还配置为在操作系统的输入框运行#bashltp.sh命令安装相关测试工具包并设置相关环境参数。

在本发明的一个优选实施例中,监控模块还配置为:

每经过阈值时间使用python调用os.popen获取cpu的利用率;

提取cpu的利用率中的id值。

在本发明的一个优选实施例中,监控模块还配置为在获取到的cpu的利用率的数组中使用cat、grep和awk命令将表示id值的数组存储到awk数组中。

在本发明的一个优选实施例中,加压模块还配置为使用nohup命令增加进程以使操作系统cup和内存利用率增加。

需要特别指出的是,上述设备的实施例采用了上述方法的实施例来具体说明各模块的工作过程,本领域技术人员能够很容易想到,将这些模块应用到上述方法的其他实施例中。

此外,上述方法步骤以及系统单元或模块也可以利用控制器以及用于存储使得控制器实现上述步骤或单元或模块功能的计算机程序的计算机可读存储介质实现。

本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。为了清楚地说明硬件和软件的这种可互换性,已经就各种示意性组件、方块、模块、电路和步骤的功能对其进行了一般性的描述。这种功能是被实现为软件还是被实现为硬件取决于具体应用以及施加给整个系统的设计约束。本领域技术人员可以针对每种具体应用以各种方式来实现的功能,但是这种实现决定不应被解释为导致脱离本发明实施例公开的范围。

上述实施例,特别是任何“优选”实施例是实现的可能示例,并且仅为了清楚地理解本发明的原理而提出。可以在不脱离本文所描述的技术的精神和原理的情况下对上述实施例进行许多变化和修改。所有修改旨在被包括在本公开的范围内并且由所附权利要求保护。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1