本发明涉及服务器存储测试领域,尤其涉及一种实现多存储器压力测试方法,系统,设备及计算机可读存储介质。
背景技术
随着社会的发展,科技的进步,信息技术的飞速,数据越来越集中于后台系统服务器中,众多系统同时为成千上万的网络用户提供服务,影响着我们生活的方方面面,随着各个企业的业务发展,用户访问量的增加,服务器系统承载的负荷也会随之增加。数据存储的增长量越来越大,所以需要更多的存储来支撑,云存储是在云计算的概念上逐渐延伸和发展出来,包括公有云,私有云,和混合云存储,而这些云存储的基础还是基于硬盘,磁盘等物理存储。所以每个服务器的存储设备的稳定运行是至关重要的。
存储设备的测试是检测其能否稳定运行的一种手段。由于系统中设置了许多存储设备,对大量存储设备的测试目前还是采用逐个测试的方式,这种测试方式效率低下,费时费力,无法满足对日益增加存储设备的测试要求。
技术实现要素:
为了克服上述现有技术中的不足,本发明提供方法包括:
配置多个存储器压力测试用例;
将一个存储器与一个存储器压力测试用例相对应;
运行存储器压力测试用例对存储器进行测试;
当存储器压力测试用例执行测试成功后,输出所述存储器压力测试用例测试后的smart日志;
将测试后的smart日志和所述存储器预设的smart日志进行比对,判断测试后smart日志的测试参数值对应与预设smart日志的测试参数值是否一致。
优选地,步骤运行存储器压力测试用例对存储器进行测试之后还包括:
当当前的存储器压力测试用例测试失败时,再次执行所述存储器压力测试用例,如连续执行所述存储器压力测试用例的失败次数达到预设次数时,在输出的测试报告上标识所述存储器测试失败;
在输出的测试报告上标识所述存储器测试失败。
优选地,步骤运行存储器压力测试用例对存储器进行测试之后还包括:
当当前的存储器压力测试用例执行测试时长超出预设时长时,停止所述存储器压力测试用例执行,并更换与所述存储器压力测试用例具有相同测试功能的存储器压力测试用例对所述存储器重新测试;
重新测试后,输出所述存储器压力测试用例测试后的smart日志;
在输出的测试报告上标识所述存储器测试超时更换存储器压力测试用例测试。
优选地,步骤运行存储器压力测试用例对存储器进行测试之后还包括:
当当前存储器压力测试用例对存储器执行完压力测试后,判断所述存储器是否还有其他存储器压力测试用例对其进行测试;
如有其他存储器压力测试用例对所述存储器进行测试,且所述存储器压力测试用例为空闲状态,所述存储器压力测试用例对所述存储器进行测试;
执行完当前存储器压力测试用例后,所述存储器如无后续测试,输出所述存储器测试后的所有smart日志,以及测试报告。
优选地,在步骤配置多个存储器压力测试用例之前还包括:
配置存储器压力测试用例集合;
根据存储器的测试参数及测试属性在存储器压力测试用例集合中调取存储器压力测试用例;
获取每个存储器的类型,以及每个存储器所要测试的参数属性,判断存储器的测试是否需要多个存储器压力测试用例组合进行测试;
如需要多个存储器压力测试用例组合对某个存储器进行测试,将多个存储器压力测试用例建立依赖关系;
按照存储器压力测试用例之间的依赖关系配置测试单元,将所述测试单元与存储器对应,执行测试动作。
一种实现多存储器压力测试系统,包括:存储器压力测试配置模块,测试对应模块,测试执行模块以及测试比对模块;
存储器压力测试配置模块用于配置多个存储器压力测试用例;
测试对应模块用于测试对应模块用于将一个存储器与一个存储器压力测试用例相对应;
测试执行模块用于运行存储器压力测试用例对存储器进行测试;当存储器压力测试用例执行测试成功后,输出所述存储器压力测试用例测试后的smart日志;
测试比对模块用于将测试后的smart日志和所述存储器预设的smart日志进行比对,判断测试后smart日志的测试参数值对应与预设smart日志的测试参数值是否一致。
优选地,测试执行模块还用于当当前的存储器压力测试用例测试失败时,再次执行所述存储器压力测试用例,如连续执行所述存储器压力测试用例的失败次数达到预设次数时,在输出的测试报告上标识所述存储器测试失败;在输出的测试报告上标识所述存储器测试失败;
当当前的存储器压力测试用例执行测试时长超出预设时长时,停止所述存储器压力测试用例执行,并更换与所述存储器压力测试用例具有相同测试功能的存储器压力测试用例对所述存储器重新测试;重新测试后,输出所述存储器压力测试用例测试后的smart日志;在输出的测试报告上标识所述存储器测试超时更换存储器压力测试用例测试;
当当前存储器压力测试用例对存储器执行完压力测试后,判断所述存储器是否还有其他存储器压力测试用例对其进行测试;如有其他存储器压力测试用例对所述存储器进行测试,且所述存储器压力测试用例为空闲状态,所述存储器压力测试用例对所述存储器进行测试;执行完当前存储器压力测试用例后,所述存储器如无后续测试,输出所述存储器测试后的所有smart日志,以及测试报告。
优选地,存储器压力测试配置模块还用于配置存储器压力测试用例集合;根据存储器的测试参数及测试属性在存储器压力测试用例集合中调取存储器压力测试用例;获取每个存储器的类型,以及每个存储器所要测试的参数属性,判断存储器的测试是否需要多个存储器压力测试用例组合进行测试;如需要多个存储器压力测试用例组合对某个存储器进行测试,将多个存储器压力测试用例建立依赖关系;按照存储器压力测试用例之间的依赖关系配置测试单元,将所述测试单元与存储器对应,执行测试动作。
一种实现多存储器压力测试系统的设备,包括:
存储器,用于存储计算机程序及实现多存储器压力测试系统;
处理器,用于执行所述计算机程序及实现多存储器压力测试系统,以实现多存储器压力测试方法的步骤。
一种具有实现多存储器压力测试的计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行以实现多存储器压力测试方法的步骤。
从以上技术方案可以看出,本发明具有以下优点:
本发明实现对于存储器数量比较多服务器的存储器压力及其性能测试,提前发现存储和服务器之间的兼容性问题,有利于提升产品生产品质,并且能大大简化了工作流程,降低了人力资源的消耗,提高工作效率。
存储器的测试参数及测试属性可以包括:存储器的读取数据测试,储存数据测试,对存储器的环境温度与电压大小模拟其所处的高温、低温、低负载、高负载等不同情况,来对存储器进行老化测试。还可以对存储器出现过压,或温度超阈值等情况下运行的极限测试,这样有助于提供存储器稳定运行的参数范围,使得存储器在使用中能够得到广泛应用。
本发明将测试用例进行整理,并将整理好的测试用例按模块划分,划分之后分配到不同的机器执行测试用例,并生成最终的测试结果。该方法能提高测试用例的执行效率,减少资源浪费。
本发明将测试用例按照依赖关系存放到集合中,形成一个新的用例集,整合之后的用例集,每个集合都是独立的个体,方便拆分。用例有执行时间和次数的限制,如果超过时间则强制终止,防止出现用例卡死导致整个主机资源占用的情况。
附图说明
为了更清楚地说明本发明的技术方案,下面将对描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为实现多存储器压力测试方法流程图;
图2为实现多存储器压力测试方法实施例流程图;
图3为实现多存储器压力测试系统示意图。
具体实施方式
本发明提供一种实现多存储器压力测试方法,如图1所示,方法包括:
s1,配置多个存储器压力测试用例;
s2,将一个存储器与一个存储器压力测试用例相对应;
s3,运行存储器压力测试用例对存储器进行测试;
s4,当存储器压力测试用例执行测试成功后,输出所述存储器压力测试用例测试后的smart日志;
s5,将测试后的smart日志和所述存储器预设的smart日志进行比对,判断测试后smart日志的测试参数值对应与预设smart日志的测试参数值是否一致。
实现对于存储器数量比较多的服务器的存储器压力及其性能测试,提前发现存储和服务器之间的兼容性问题,有利于提升产品生产品质,并且能大大简化了工作流程,降低了人力资源的消耗,提高工作效率。
为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将运用具体的实施例及附图,对本发明保护的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部的实施例。基于本专利中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本专利保护的范围。
本发明提供一种实施例为:如图2所示,步骤运行存储器压力测试用例对存储器进行测试之后还包括:
s11,当当前的存储器压力测试用例测试失败时,再次执行所述存储器压力测试用例,如连续执行所述存储器压力测试用例的失败次数达到预设次数时,在输出的测试报告上标识所述存储器测试失败;
s12,在输出的测试报告上标识所述存储器测试失败。
测试人员可以通过查看测试报告获取测试失败的存储器,并查找原因。
本发明提供另一种方法实施例为:步骤运行存储器压力测试用例对存储器进行测试之后还包括:
s21,当当前的存储器压力测试用例执行测试时长超出预设时长时,停止所述存储器压力测试用例执行,并更换与所述存储器压力测试用例具有相同测试功能的存储器压力测试用例对所述存储器重新测试;
s22,重新测试后,输出所述存储器压力测试用例测试后的smart日志;
将测试后的smart日志和所述存储器预设的smart日志进行比对,判断测试后smart日志的测试参数值对应与预设smart日志的测试参数值是否一致。
s23,在输出的测试报告上标识所述存储器测试超时更换存储器压力测试用例测试。
当然测试过程存在测试用例测试时长超出预设时长的现象,则可能存储器的测试项存在问题,测试人员可以根据输出的测试报告获取信息。
本发明提供另一种方法实施例为:步骤运行存储器压力测试用例对存储器进行测试之后还包括:
s31,当当前存储器压力测试用例对存储器执行完压力测试后,判断所述存储器是否还有其他存储器压力测试用例对其进行测试;
s32,如有其他存储器压力测试用例对所述存储器进行测试,且所述存储器压力测试用例为空闲状态,所述存储器压力测试用例对所述存储器进行测试;
s33,执行完当前存储器压力测试用例后,所述存储器如无后续测试,输出所述存储器测试后的所有smart日志,以及测试报告。
将测试后的smart日志和所述存储器预设的smart日志进行比对,判断测试后smart日志的测试参数值对应与预设smart日志的测试参数值是否一致。
有的存储器不仅仅使用一个存储器压力测试用例进行测试,需要使用多个存储器压力测试用例测试,这时可以基于当前存储器压力测试用例对存储器执行完所有设置的测试用例后,判断所述存储器是否还有其他存储器压力测试用例对其进行测试,使得测试具有连贯性。
本发明提供另一种方法实施例为:在步骤配置多个存储器压力测试用例之前还包括:
配置存储器压力测试用例集合;
根据存储器的测试参数及测试属性在存储器压力测试用例集合中调取存储器压力测试用例;
获取每个存储器的类型,以及每个存储器所要测试的参数属性,判断存储器的测试是否需要多个存储器压力测试用例组合进行测试;
如需要多个存储器压力测试用例组合对某个存储器进行测试,将多个存储器压力测试用例建立依赖关系;
按照存储器压力测试用例之间的依赖关系配置测试单元,将所述测试单元与存储器对应,执行测试动作。
存储器压力测试用例之间的依赖关系可以理解为,如果执行第二存储器压力测试用例,则需要先执行第一存储器压力测试用例,这样第一存储器压力测试用例和第二存储器压力测试用例构成了依赖关系。再比如,对存储器进行测试时,需要第一存储器压力测试用例,第二存储器压力测试用例和第三存储器压力测试用例联合使用才能实现一个完整的测试进程,这样第一存储器压力测试用例,第二存储器压力测试用例和第三存储器压力测试用例构成了测试的依赖关系。
存储器的测试参数及测试属性可以包括:存储器的读取数据测试,储存数据测试,对存储器的环境温度与电压大小模拟其所处的高温、低温、低负载、高负载等不同情况,来对存储器进行老化测试。还可以对存储器出现过压,或温度超阈值等情况下运行的极限测试,这样有助于提供存储器稳定运行的参数范围,使得存储器在使用中能够得到广泛应用。
存储器也包括许多种类,比如可读写的存储器,随机存取存储器,只读存储器,闪存,先进先出存储器,先进后出存储器,磁表面存储器以及高速缓冲存储器等等。根据不同类别的存储器可以配置不同的存储器压力测试用例。
本发明还提供一种实现多存储器压力测试系统,如图3所示,包括:存储器压力测试配置模块1,测试对应模块2,测试执行模块3以及测试比对模块4;
存储器压力测试配置模块1用于配置多个存储器压力测试用例;测试对应模块2用于测试对应模块用于将一个存储器与一个存储器压力测试用例相对应;测试执行模块3用于运行存储器压力测试用例对存储器进行测试;当存储器压力测试用例执行测试成功后,输出所述存储器压力测试用例测试后的smart日志;测试比对模块4用于将测试后的smart日志和所述存储器预设的smart日志进行比对,判断测试后smart日志的测试参数值对应与预设smart日志的测试参数值是否一致。
本发明提供一种系统实施例为:测试执行模块还用于当当前的存储器压力测试用例测试失败时,再次执行所述存储器压力测试用例,如连续执行所述存储器压力测试用例的失败次数达到预设次数时,在输出的测试报告上标识所述存储器测试失败;在输出的测试报告上标识所述存储器测试失败;
当当前的存储器压力测试用例执行测试时长超出预设时长时,停止所述存储器压力测试用例执行,并更换与所述存储器压力测试用例具有相同测试功能的存储器压力测试用例对所述存储器重新测试;重新测试后,输出所述存储器压力测试用例测试后的smart日志;在输出的测试报告上标识所述存储器测试超时更换存储器压力测试用例测试;
当当前存储器压力测试用例对存储器执行完压力测试后,判断所述存储器是否还有其他存储器压力测试用例对其进行测试;如有其他存储器压力测试用例对所述存储器进行测试,且所述存储器压力测试用例为空闲状态,所述存储器压力测试用例对所述存储器进行测试;执行完当前存储器压力测试用例后,所述存储器如无后续测试,输出所述存储器测试后的所有smart日志,以及测试报告。
本发明还提供一种系统实施例为:存储器压力测试配置模块还用于配置存储器压力测试用例集合;根据存储器的测试参数及测试属性在存储器压力测试用例集合中调取存储器压力测试用例;获取每个存储器的类型,以及每个存储器所要测试的参数属性,判断存储器的测试是否需要多个存储器压力测试用例组合进行测试;如需要多个存储器压力测试用例组合对某个存储器进行测试,将多个存储器压力测试用例建立依赖关系;按照存储器压力测试用例之间的依赖关系配置测试单元,将所述测试单元与存储器对应,执行测试动作。
存储器的测试参数及测试属性可以包括:存储器的读取数据测试,储存数据测试,对存储器的环境温度与电压大小模拟其所处的高温、低温、低负载、高负载等不同情况,来对存储器进行老化测试。还可以对存储器出现过压,或温度超阈值等情况下运行的极限测试,这样有助于提供存储器稳定运行的参数范围,使得存储器在使用中能够得到广泛应用。
存储器也包括许多种类,比如可读写的存储器,随机存取存储器,只读存储器,闪存,先进先出存储器,先进后出存储器,磁表面存储器以及高速缓冲存储器等等。根据不同类别的存储器可以配置不同的存储器压力测试用例。
本发明中系统中各个设置有存储器的主机或服务器,安装linux操作系统及其测试工具。
将如下存储器压力测试用例复制到服务器上,根据需要改变测试参数,运行存储器压力测试用例。本实施例提供的存储器压力测试用例如下:
#!/bin/sh
cur_dir=$(cd"$(dirname"$0")";pwd)
mkdir-p$cur_dir/result
mkdir-p$cur_dir/result/log
date>$cur_dir/result/log/start_time
/etc/init.d/ipmistart
ipmitoolselelist>$cur_dir/result/log/bmc_log_before
cat/var/log/mcelog>$cur_dir/result/log/mcelog_before
系统先收集各个存储器的预设smart日志,并记录测试前的每个存储器的预设smart日志。
在测试过程中,可以实时记录测试数据。本实施例基于如下方式实时记录测试数据
foriin`ls/dev|grep"sd"|sed's/[0-9]//g'|uniq`
do
smartctl--all/dev/$i>>
$cur_dir/result/smartlog_after
done
cat$cur_dir/result/log/smartlog_after|egrep"reallocated_sector_ct|high_fly_writes|reported_uncorrect|hardware_ecc_recovered|current_pending_sector">>$cur_dir/result/log/smartlog_after_result
记录测试后的每个存储器的smart日志,并将测试后的smart日志和所述存储器预设的smart日志进行比对,判断测试后smart日志的测试参数值对应与预设smart日志的测试参数值是否一致,测试人员可以通过比对判断每个存储器有没有error生成。
本发明还可以记录测试结束时间,并收集测试测试日志,观察有无错误生成。
本发明还提供一种实现多存储器压力测试系统的设备,包括:存储器,用于存储计算机程序及实现多存储器压力测试系统;处理器,用于执行所述计算机程序及实现多存储器压力测试系统,以实现多存储器压力测试方法的步骤。
在一些实施例中,所述设备中的一个或多个设备的部分或所有功能或处理由计算机程序实现或支持,计算机程序由计算机可读程序代码形成并且被包括在计算机可读介质中。短语“计算机可读程序代码”包括任何类型的计算机代码,包括源代码、目标代码和可执行代码。短语“计算机可读介质”包括能够被计算机访问的任何类型的介质,诸如只读存储器(rom)、随机存取存储器(ram)、硬盘驱动器、光盘(cd)、数字视频盘(dvd)、或任何其他类型的存储器。
本发明还提供一种具有实现多存储器压力测试的计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行以实现多存储器压力测试方法的步骤。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。