本发明涉及脚本测试领域,尤其涉及一种测试脚本程序标准化的检验方法及系统。
背景技术
在服务器测试领域,测试工具/脚本分两种类型,一种是针对cpu、mem、networkcard等业界认可的标准化测试工具如:speccpu、stream、netperf等;另外一种是根据测试需求大家自行编与的测试脚本,如广泛应用的shell/python等调用bios、bmc、dmi、raid/sas、os等接口获取信息的脚本工具。在测试过程中执行标准化测试工具并生成测试数据,或者是通用自编脚本,在测试中抓取所需要的测试数据。完成对服务器功能、性能及稳定性的检验。
在测试中,由于测试需求可能存在差异,一个测试脚本可能无法满足所有测试环境使用,所以测试人员通常对测试脚本进行修改,来适应当前的测试环境和需求。测试人员对测试脚本进行修改后,使用修改后的测试脚本对测试环境进行测试并得出测试结果。
由于测试脚本是开放性的,测试脚本的源代码可以进行修改,当测试人员编译的测试脚本无法满足测试环境测试时,在测试过程中,容易出现测试脚本异常提示,或测试环境出现异常等问题,这样造成测试人员无法判断出是测试脚本问题,还是测试环境问题,导致环境测试失败,影响测试环境后续使用。
技术实现要素:
为了克服上述现有技术中的不足,本发明提供一种测试脚本程序标准化的检验方法,方法包括:
提取测试脚本的测试特征;
将测试脚本的测试特征与脚本预设特征进行匹配;
匹配后,将测试脚本的测试特征值与脚本预设特征值进行比对;
判断测试脚本的测试特征是否与脚本预设特征相一致。
优选地,方法还包括:
提取测试脚本中第一测试语句的测试特征以及测试特征所对应的特征值;
提取测试脚本中第二测试语句的测试特征以及测试特征所对应的特征值;
提取测试脚本中第n测试语句的测试特征以及测试特征所对应的特征值;
将第一测试语句的测试特征与第一脚本预设特征进行匹配;
判断第一测试语句的测试特征是否与第一脚本预设特征一致;
将第二测试语句的测试特征与第二脚本预设特征进行匹配;
判断第二测试语句的测试特征是否与第二脚本预设特征一致;
将第n测试语句的测试特征与第n脚本预设特征进行匹配;
判断第n测试语句的测试特征是否与第n脚本预设特征一致。
优选地,当第一测试语句的测试特征与第一脚本预设特征不一致时,对第一测试语句的测试特征进行标识;
当第二测试语句的测试特征与第二脚本预设特征不一致时,对第二测试语句的测试特征进行标识;
当第n测试语句的测试特征与第n脚本预设特征不一致时,对第n测试语句的测试特征进行标识。
优选地,将第一测试语句的测试特征值与第一脚本预设特征值进行比对;
判断第一测试语句的测试特征值与第一脚本预设特征值是否一致;
将第二测试语句的测试特征值与第二脚本预设特征值进行比对;
判断第二测试语句的测试特征值与第二脚本预设特征值是否一致;
将第n测试语句的测试特征值与第n脚本预设特征值进行比对;
判断第n测试语句的测试特征值与第n脚本预设特征值是否一致。
优选地,当第一测试语句的测试特征值与第一脚本预设特征值不一致时,对第一测试语句的测试特征值进行标识;
当第二测试语句的测试特征值与第二脚本预设特征值不一致时,对第二测试语句的测试特征值进行标识;
当第n测试语句的测试特征值与第n脚本预设特征值不一致时,对第n测试语句的测试特征值进行标识。
优选地,方法还包括:
当第一测试语句的测试特征与第一脚本预设特征不一致时,将第一测试语句的测试特征与第二脚本预设特征进行比对,判断是否一致;如果第一测试语句的测试特征与第二脚本预设特征不一致时,将第一测试语句的测试特征与第n脚本预设特征进行比对,判断是否一致;
当第一测试语句的测试特征与第n脚本预设特征比对不一致时,标识第一测试语句的测试特征不一致;
当第二测试语句的测试特征与第二脚本预设特征不一致时,将第二测试语句的测试特征与第一脚本预设特征进行比对,判断是否一致;如果第二测试语句的测试特征与第一脚本预设特征不一致时,将第二测试语句的测试特征与第n脚本预设特征进行比对,判断是否一致;当第二测试语句的测试特征与第n脚本预设特征比对不一致时,标识第二测试语句的测试特征不一致。
一种测试脚本程序标准化的检验系统,包括:测试特征提取模块,特征匹配模块,特征值比对模块以及测试脚本判定模块;
所述测试特征提取模块用于提取测试脚本的测试特征;
所述特征匹配模块用于将测试脚本的测试特征与脚本预设特征进行匹配;
所述特征值比对模块用于在匹配后,将测试脚本的测试特征值与脚本预设特征值进行比对;
所述测试脚本判定模块用于判断测试脚本的测试特征是否与脚本预设特征相一致。
优选地,所述测试特征提取模块还用于提取测试脚本中第一测试语句的测试特征以及测试特征所对应的特征值;提取测试脚本中第二测试语句的测试特征以及测试特征所对应的特征值;提取测试脚本中第n测试语句的测试特征以及测试特征所对应的特征值;
所述特征匹配模块还用于将第一测试语句的测试特征与第一脚本预设特征进行匹配;将第二测试语句的测试特征与第二脚本预设特征进行匹配;将第n测试语句的测试特征与第n脚本预设特征进行匹配;
所述测试脚本判定模块还用于判断第一测试语句的测试特征是否与第一脚本预设特征一致;判断第二测试语句的测试特征是否与第二脚本预设特征一致;判断第n测试语句的测试特征是否与第n脚本预设特征一致;
当第一测试语句的测试特征与第一脚本预设特征不一致时,对第一测试语句的测试特征进行标识;
当第二测试语句的测试特征与第二脚本预设特征不一致时,对第二测试语句的测试特征进行标识;
当第n测试语句的测试特征与第n脚本预设特征不一致时,对第n测试语句的测试特征进行标识。
优选地,所述特征值比对模块还用于将第一测试语句的测试特征值与第一脚本预设特征值进行比对;将第二测试语句的测试特征值与第二脚本预设特征值进行比对;将第n测试语句的测试特征值与第n脚本预设特征值进行比对;
所述测试脚本判定模块还用于判断第一测试语句的测试特征值与第一脚本预设特征值是否一致;判断第二测试语句的测试特征值与第二脚本预设特征值是否一致;判断第n测试语句的测试特征值与第n脚本预设特征值是否一致;
当第一测试语句的测试特征值与第一脚本预设特征值不一致时,对第一测试语句的测试特征值进行标识;
当第二测试语句的测试特征值与第二脚本预设特征值不一致时,对第二测试语句的测试特征值进行标识;
当第n测试语句的测试特征值与第n脚本预设特征值不一致时,对第n测试语句的测试特征值进行标识。
优选地,所述测试脚本判定模块还用于当第一测试语句的测试特征与第一脚本预设特征不一致时,将第一测试语句的测试特征与第二脚本预设特征进行比对,判断是否一致;如果第一测试语句的测试特征与第二脚本预设特征不一致时,将第一测试语句的测试特征与第n脚本预设特征进行比对,判断是否一致;当第一测试语句的测试特征与第n脚本预设特征比对不一致时,标识测试特征不一致;
当第二测试语句的测试特征与第二脚本预设特征不一致时,将第二测试语句的测试特征与第一脚本预设特征进行比对,判断是否一致;如果第二测试语句的测试特征与第一脚本预设特征不一致时,将第二测试语句的测试特征与第n脚本预设特征进行比对,判断是否一致;当第二测试语句的测试特征与第n脚本预设特征比对不一致时,标识第二测试语句的测试特征不一致。
从以上技术方案可以看出,本发明具有以下优点:
本发明中,可以提取测试脚本中测试语句的测试特征和测试特征值,对应与预设测试特征和测试特征值进行比对判断是否一致来判断待测试脚本与标准脚本的一致性。实现了对测试脚本标准化的检测,避免了由于测试脚本被修改,造成测试人员无法判断出是测试脚本问题,还是测试环境问题,导致环境测试失败,影响测试环境后续使用,进而影响测试结果的有效性。
使用本发明涉及的检测系统完成对基于shell/python形成的脚本进行校验,使得脚本检测校验功能是对外封闭的,保证校验动作的安全可靠性。
附图说明
为了更清楚地说明本发明的技术方案,下面将对描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为测试脚本程序标准化的检验方法流程图;
图2为测试脚本程序标准化的检验方法实施例的流程图;
图3为测试脚本程序标准化的检验方法实施例的流程图;
图4为测试脚本程序标准化的检验系统整体示意图。
具体实施方式
为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将运用具体的实施例及附图,对本发明保护的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部的实施例。基于本专利中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本专利保护的范围。
本发明提供一种测试脚本程序标准化的检验方法,如图1所示,方法包括:
s1,提取测试脚本的测试特征;
s2,将测试脚本的测试特征与脚本预设特征进行匹配;
s3,匹配后,将测试脚本的测试特征值与脚本预设特征值进行比对;
s4,判断测试脚本的测试特征是否与脚本预设特征相一致。
可以理解的是,为了实现测试的目的,测试脚本中涉及了多条测试语句来实现脚本的相应功能。针对测试脚本中测试语句的内容修改,可以实现不同测试目的。在测试脚本的测试语句中,还涉及测试特征值,对测试特征值的修改和完善也可以实现不同测试目的。
针对测试脚本程序标准化检验方法的具体实施方式下面以具体的实施例进行说明。
实施例一如图2所示,提取测试脚本的测试特征的方法还包括:
s11,提取测试脚本中第一测试语句的测试特征以及测试特征所对应的特征值;获取到测试脚本中第一测试语句的测试特征,这里测试特征中涉及到了对应的特征值;
s12,提取测试脚本中第二测试语句的测试特征以及测试特征所对应的特征值;获取到测试脚本中第二测试语句的测试特征,这里测试特征中涉及到了对应的特征值;
s13,提取测试脚本中第n测试语句的测试特征以及测试特征所对应的特征值;获取到测试脚本中第n测试语句的测试特征,这里测试特征中涉及到了对应的特征值;
可以理解的是,测试脚本中,具有多条测试语句,为了能够逐条分析,本实施例逐一提取测试语句,并对每条测试语句进行测试特征以及特征值进行提取。每条测试语句具有测试特征,测试台特征可以根据测试需要设置,比如软件运行中的哈希值,时间参数,状态参数等。
第n测试语句的测试特征为省略,也就是第二测试语句以后的第三测试语句,第四测试语句依次类推。
s14,将第一测试语句的测试特征与第一脚本预设特征进行匹配;
对第一测试语句的测试特征与第一脚本预设特征进行匹配,也就是按照次序先对第一测试语句的测试特征进行比对。
s15,判断第一测试语句的测试特征是否与第一脚本预设特征一致;
判断第一测试语句的测试特征是否与第一脚本预设特征匹配,也就是第一测试语句的测试特征是否修改过。
s16,将第二测试语句的测试特征与第二脚本预设特征进行匹配;
判断第一测试语句的测试特征之后,再判断第二测试语句的测试特征。
s17,判断第二测试语句的测试特征是否与第二脚本预设特征一致;
对第二测试语句的测试特征进行判断,判断第二测试语句的测试特征是否修改过。
s18,将第n测试语句的测试特征与第n脚本预设特征进行匹配;
判断第二测试语句的测试特征之后,再判断第n测试语句的测试特征。
s19,判断第n测试语句的测试特征是否与第n脚本预设特征一致。
对第n测试语句的测试特征进行判断,判断第n测试语句的测试特征是否修改过。
这里,当第一测试语句的测试特征与第一脚本预设特征不一致时,对第一测试语句的测试特征进行标识;表明第一测试语句的测试特征修改过。
当第二测试语句的测试特征与第二脚本预设特征不一致时,对第二测试语句的测试特征进行标识;表明第二测试语句的测试特征修改过。
当第n测试语句的测试特征与第n脚本预设特征不一致时,对第n测试语句的测试特征进行标识。表明第n测试语句的测试特征修改过。
当然这里的匹配判断过程,可以得出的结论是测试脚本的一条或多条语句进行过修改,并且能够获悉到那条语句修改过,使脚本测试人员获取修改信息。
进一步的,本实施例中,如图3所示,
s21,将第一测试语句的测试特征值与第一脚本预设特征值进行比对;
之前对每条测试语句的测试特征进行了匹配,并判断是否修改。这里对每条测试语句的测试特征值进行判断,判断是否进行过修改。
先从第一测试语句的测试特征值进行判断比对,比对的方式采用与预设的脚本预设特征值进行比对,即以预设特征值为参考判断。预设特征值可以为在先基于惯用的方式或常用的手段进行预设的特征值,基于基本的测试脚本,再进行修改,使测试脚本能够扩展,满足不同要求的测试。
s22,判断第一测试语句的测试特征值与第一脚本预设特征值是否一致;
s23,将第二测试语句的测试特征值与第二脚本预设特征值进行比对;
再进行第二测试语句的测试特征值的比对。
s24,判断第二测试语句的测试特征值与第二脚本预设特征值是否一致;
s25,将第n测试语句的测试特征值与第n脚本预设特征值进行比对;
s26,判断第n测试语句的测试特征值与第n脚本预设特征值是否一致。
依次类推,如果测试脚本程序中涉及了五条测试语句,那就逐一判断这五条测试语句的测试特征值与预设值是否一致。据此能够判断基于测试特征值是否进行过修改来,获取测试脚本程序是否进行过修改。
在本发明中还有一种实施例是:当第一测试语句的测试特征与第一脚本预设特征不一致时,将第一测试语句的测试特征与第二脚本预设特征进行比对,判断是否一致;如果第一测试语句的测试特征与第二脚本预设特征不一致时,将第一测试语句的测试特征与第n脚本预设特征进行比对,判断是否一致;
当第一测试语句的测试特征与第n脚本预设特征比对不一致时,标识第一测试语句的测试特征不一致;
当第二测试语句的测试特征与第二脚本预设特征不一致时,将第二测试语句的测试特征与第一脚本预设特征进行比对,判断是否一致;如果第二测试语句的测试特征与第一脚本预设特征不一致时,将第二测试语句的测试特征与第n脚本预设特征进行比对,判断是否一致;当第二测试语句的测试特征与第n脚本预设特征比对不一致时,标识第二测试语句的测试特征不一致。
这里可以看出,如果脚本测试人员将测试脚本程序的测试语句在原有的次序进行了修改,这样在判断是会导致每条测试语句的测试脚本的测试特征和测试特征值均不符。如果按照之前的方式判断导致整个脚本都不符合预设脚本信息。
这样为了避免这种情况,当第一测试语句的测试特征与第一脚本预设特征不一致时,第一测试语句的测试特征逐一与后续测试语句的测试特征和测试特征值进行逐一比对,判断是否具有相同的测试特征和测试特征值,如果出现次序修改的脚本可以判断出次序的修改。
在本发明中还包括一种实施例是:为了减少对脚本判断的过程,可以采取与上述不同的检验方法。如果脚本测试人员打算获悉第二测试语句的测试特征是否与第二脚本预设特征一致,则可以直接调出第二测试语句的测试特征进行对比判断。
本实施例的方法为:
提取测试脚本中的待测试语句;
获取待测试语句中的测试特征以及测试特征所对应的特征值;
将测试特征与脚本预设特征进行匹配,判断测试特征是否与预设特征一致;将测试特征值与预设特征值进行比对;判断测试特征值与预设特征值是否一致。
这样实现对单一测试语句的检验测试,当然也可以提取多个测试语句进行测试判断,这样不需要对整个测试脚本程序进行匹配判断。
本实施例还可以单独调取一个测试语句的测试特征进行匹配判断。也可以单独调取一个测试语句的特征值进行匹配判断。
本发明还提供一种测试脚本程序标准化的检验系统,如图4所示,包括:测试特征提取模块1,特征匹配模块2,特征值比对模块3以及测试脚本判定模块4;测试特征提取模块1用于提取测试脚本的测试特征;特征匹配模块2用于将测试脚本的测试特征与脚本预设特征进行匹配;特征值比对模块3用于在匹配后,将测试脚本的测试特征值与脚本预设特征值进行比对;测试脚本判定模块4用于判断测试脚本的测试特征是否与脚本预设特征相一致。
本发明提供的实施例中,测试特征提取模块还用于提取测试脚本中第一测试语句的测试特征以及测试特征所对应的特征值;提取测试脚本中第二测试语句的测试特征以及测试特征所对应的特征值;提取测试脚本中第n测试语句的测试特征以及测试特征所对应的特征值;
所述特征匹配模块还用于将第一测试语句的测试特征与第一脚本预设特征进行匹配;将第二测试语句的测试特征与第二脚本预设特征进行匹配;将第n测试语句的测试特征与第n脚本预设特征进行匹配;
测试脚本判定模块还用于判断第一测试语句的测试特征是否与第一脚本预设特征一致;判断第二测试语句的测试特征是否与第二脚本预设特征一致;判断第n测试语句的测试特征是否与第n脚本预设特征一致;
当第一测试语句的测试特征与第一脚本预设特征不一致时,对第一测试语句的测试特征进行标识;
当第二测试语句的测试特征与第二脚本预设特征不一致时,对第二测试语句的测试特征进行标识;
当第n测试语句的测试特征与第n脚本预设特征不一致时,对第n测试语句的测试特征进行标识。
本发明提供的实施例中,特征值比对模块还用于将第一测试语句的测试特征值与第一脚本预设特征值进行比对;将第二测试语句的测试特征值与第二脚本预设特征值进行比对;将第n测试语句的测试特征值与第n脚本预设特征值进行比对;
所述测试脚本判定模块还用于判断第一测试语句的测试特征值与第一脚本预设特征值是否一致;判断第二测试语句的测试特征值与第二脚本预设特征值是否一致;判断第n测试语句的测试特征值与第n脚本预设特征值是否一致;
当第一测试语句的测试特征值与第一脚本预设特征值不一致时,对第一测试语句的测试特征值进行标识;
当第二测试语句的测试特征值与第二脚本预设特征值不一致时,对第二测试语句的测试特征值进行标识;
当第n测试语句的测试特征值与第n脚本预设特征值不一致时,对第n测试语句的测试特征值进行标识。
本发明提供的实施例中,测试脚本判定模块还用于当第一测试语句的测试特征与第一脚本预设特征不一致时,将第一测试语句的测试特征与第二脚本预设特征进行比对,判断是否一致;如果第一测试语句的测试特征与第二脚本预设特征不一致时,将第一测试语句的测试特征与第n脚本预设特征进行比对,判断是否一致;当第一测试语句的测试特征与第n脚本预设特征比对不一致时,标识测试特征不一致;
当第二测试语句的测试特征与第二脚本预设特征不一致时,将第二测试语句的测试特征与第一脚本预设特征进行比对,判断是否一致;如果第二测试语句的测试特征与第一脚本预设特征不一致时,将第二测试语句的测试特征与第n脚本预设特征进行比对,判断是否一致;当第二测试语句的测试特征与第n脚本预设特征比对不一致时,标识第二测试语句的测试特征不一致。
下面以一个具体的实施例进行说明,通用c语言popen()函数和fgets()函数获取测试脚本每个测试语句中的md5sum命令,得出每个测试语句中的md5值;
对每个测试语句中的md5sum命令与预设特征md5sum命令进行比对;
对每个测试语句中的md5标准值与预设的md5标准值进行比对;
若上述均比对一致,则脚本为认证过的标准脚本,未做修改过。
若比对结果不一致,则脚本被修改过了。从而实现对测试脚本完整性的校验。
本系统实现了对测试脚本标准化的检测,保证所有测试程序为标准化后的程序,避免了由于脚本被人为的修改,导致测试结果无法确认是否为标准化后的结果,影响测试结果的有效性。
由于shell/python学习和使用比较方便,上手比较容易,所以可以通过shell/python完成对测试功能的需求,使得测试脚本符合快速便捷性开发测试需求。
使用本发明涉及的检测系统完成对基于shell/python形成的脚本进行校验,使得脚本检测校验功能是对外封闭的,保证校验动作的安全可靠性。
本系统适用对linux下源代码开放性类语言(源码内容可以随意查看,编辑),如shell、python等脚,防止有意或者无意对脚本的更改造测度预期结果与实际结果不符的问题。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参考即可。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。