一种软件程序的压力测试分配方法及系统与流程

文档序号:33544684发布日期:2023-03-22 09:43阅读:29来源:国知局
一种软件程序的压力测试分配方法及系统与流程

1.本发明属于计算机软件测试领域,具体涉及一种软件程序的压力测试分配方法及系统。


背景技术:

2.软件性能是软件系统一个非常重要的非功能指标,压力测试是对评估软件性能等相关问题最有效的办法之一。为保证压力测试的指标正确性,压力测试的测试机的选取是尤为重要的,在压力测试的同时,首先要保证测试机的硬件配置要能支撑待测程序对本机产生的压力,从而才能对软件系统进行正常的压力测试,得到正确的性能指标。
3.然而,随着互联网的快速发展,很多软件的迭代周期缩短,但是压力测试又非常耗时,很多软件系统没有经过反复的压力测试就开始上线使用,导致响应卡顿,甚至出现服务器瘫痪现象;同时,在实际工作中,可以使用的硬件资源是有限的,那么,合理分配这些资源,在保证测试机的硬件配置能支撑待测程序的同时并缩短测试时间则显得非常重要。


技术实现要素:

4.为了克服上述现有技术存在的不足,本发明提供了一种软件程序的压力测试分配方法及系统。
5.为了实现上述目的,本发明提供如下技术方案:一种软件程序的压力测试分配方法,包括如下步骤:设置主节点和多个测试节点,通过主节点接收导入的多个软件程序的测试用例,并将多个测试用例一一同步分配到不同的测试节点;测试节点根据分配的测试用例运行时的cpu最大利用率基数、内存最大使用量基数和网卡最大使用量基数评估测试用例的压力值;根据压力值为多个测试用例分配不同的测试标签;根据不同的测试标签为多个所述测试用例分配对应的测试机,进行压力测试。
6.优选的,所述压力值的计算公式为:压力值=(cpu最大利用率基数
×
内存最大使用量基数
×
网卡最大使用量基数)/[(cpu平均利用率基数
×
内存平均使用量基数
×
网卡平均使用量基数)+ cpu平均利用率基数+内存平均使用量基数+网卡平均使用量基数]。
[0007]
优选的,所述cpu、内存或网卡的使用率或使用量为0%-80%时,测试用例的cpu最大利用率基数、内存最大使用量基数和网卡最大使用量基数均为2;所述cpu、内存或网卡的使用率或使用量为80-90%时,测试用例的cpu最大利用率基数、内存最大使用量基数和网卡最大使用量基数均为1;所述cpu、内存或网卡的使用率或使用量为90%以上时,测试用例的cpu最大利用率基数、内存最大使用量基数和网卡最大使用量基数均为0。
[0008]
优选的,当所述压力值=0时,所述测试用例不获取当前测试标签;当所述压力值》0时,所述测试用例获取当前测试标签。
[0009]
优选的,所述测试标签包括高级配置h型标签、中级配置m型标签及低级配置l型标签,所述测试机包括h型测试机、m型测试机及l型测试机;所述h型测试机执行被分配为低级配置l型标签、中级配置m型标签或高级配置h型标签的任一测试用例压力测试任务,所述m型测试机执行被分配为低级配置l型标签或中级配置m型标签的任一测试用例压力测试任务,所述l型测试机执行被分配为低级配置l型标签的任一测试用例压力测试任务。
[0010]
优选的,所述根据不同的测试标签为多个所述测试用例分配对应的测试机,具体包括:当测试用例被分配的测试标签为低级配置l型标签时,检测所述l型测试机是否正忙;若所述l型测试机为闲置状态,则所述测试用例被分配到l型测试机执行压力测试任务;如果所述l型测试机正忙,检测所述m型测试机是否正忙;若所述m型测试机为闲置状态,则所述测试用例被分配到所述m型测试机执行压力测试任务;如果所述m型测试机正忙,检测所述h型测试机是否正忙;若所述h型测试机为闲置状态,则所述测试用例被分配到所述h型测试机执行压力测试任务;当测试用例被分配的测试标签为中级配置m型标签时,检测所述m型测试机是否正忙;若所述m型测试机为闲置状态,则所述测试用例被分配到所述m型测试机执行压力测试任务;如果所述m型测试机正忙,检测所述h型测试机是否正忙;若所述h型测试机为闲置状态,则所述测试用例被分配到所述h型测试机执行压力测试任务;当测试用例被分配的测试标签为高级配置h型标签时,检测所述h型测试机是否正忙;若h型测试机为闲置状态,则所述测试用例被分配到所述h型测试机执行压力测试任务。
[0011]
优选的,当配置的所有测试机均正忙,则返回无可用节点或节点正忙信息。
[0012]
本发明的另一目的在于提供一种压力测试分配系统,包括:主节点,用于接收导入的多个软件程序的测试用例,并将多个测试用例一一同步分配到不同的测试节点;多个测试节点,用于根据分配的测试用例运行时的cpu最大利用率基数、内存最大使用量基数和网卡最大使用量基数评估测试用例的压力值,并用于根据压力值为多个测试用例分配不同的测试标签;测试分配模块,用于根据不同的测试标签为多个测试用例分配对应的测试机,进行压力测试。
[0013]
优选的,所述主节点还用于接收压力测试指令,并向测试机发布测试任务。
[0014]
本发明提供的软件程序的压力测试分配方法及系统具有以下有益效果:本发明通过将多个测试用例导入主节点,并通过主节点将多个测试用例同步分配到多个测试节点,可以对多个测试用例的压力值进行评估,从而对每个测试用例的压力值进行预判,多个测试节点可以同时对多个测试用例的压力进行预判,以提高压力测试的准确性并节约压力测试的时间;多个测试节点通过获得的多个测试用例的压力值可以为多个测试用例分配不同的标签,从而将多个测试用例同时分配到不同的测试机上,使得在同一时间,不同的测试机可以进行不同的测试任务,测试机间互相不影响;智能分配到的测试机可以准确快速的测试出测试用例的压力值,从而节省测试时间。
附图说明
[0015]
为了更清楚地说明本发明实施例及其设计方案,下面将对本实施例所需的附图作简单地介绍。下面描述中的附图仅仅是本发明的部分实施例,对于本领域普通技术人员来说,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0016]
图1为本发明实施例的系统架构图;图2为本发明实施例的智能分配流程图。
具体实施方式
[0017]
为了使本领域技术人员更好的理解本发明的技术方案并能予以实施,下面结合附图和具体实施例对本发明进行详细说明。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。
[0018]
在本发明的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“长度”、“宽度”、“厚度”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”、“轴向”、“径向”、“周向”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明的技术方案和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
[0019]
此外,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。在本发明的描述中,需要说明的是,除非另有明确的规定或限定,术语“相连”、“连接”应作广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体式连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以是通过中间媒介间接相连。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上,在此不再详述。
实施例
[0020]
本发明提供了一种压力测试分配系统及分配方法,其中压力测试分配系统(如图1所示)包括主节点、多个测试节点和测试分配模块。主节点用于接收导入的多个软件程序的测试用例,并将多个测试用例一一同步分配到所有测试节点;同时,主节点还用于接收压力测试指令,并向测试机发布测试任务;多个测试节点根据分配的测试用例运行时的cpu最大利用率基数、内存最大使用量基数和网卡最大使用量基数评估测试用例的压力值,并用于根据压力值为多个测试用例分配不同的测试标签;测试分配模块用于根据不同的测试标签为多个不同测试节点的测试用例分配对应的测试机,进行压力测试。
[0021]
本发明的软件程序的压力测试分配方法包括如下步骤(如图2所示):步骤1、设置主节点和多个测试节点,通过主节点接收导入的多个软件程序的测试用例,并将多个测试用例一一同步分配到多个测试节点。通过主节点将多个测试用例同步分配到多个测试节点,可以对多个测试用例的压力值进行评估,从而对每个测试用例的压力值进行预判,多个测试节点可以同时对多个测试用例的压力进行预判,以提高压力测试的准确性并节约压力测试的时间。
[0022]
步骤2、测试节点根据分配的测试用例运行时的cpu最大利用率基数、内存最大使用量基数和网卡最大使用量基数评估测试用例的压力值,具体为测试节点回收执行用例所
在测试机资源消耗信息以获取测试机基数值,根据压力值算法计算出测试用例的压力值。
[0023]
测试用例的压力值算法公式为:测试用例压力值=(cpu最大利用率基数
×
内存最大使用量基数
×
网卡最大使用量基数)/[(cpu平均利用率基数
×
内存平均使用量基数
×
网卡平均使用量基数)+ cpu平均利用率基数+内存平均使用量基数+网卡平均使用量基数]。
[0024]
其中,各基数的数量根据以下条件获得:cpu、内存或网卡的使用率或使用量为0%-80%时,测试用例的cpu最大利用率基数、内存最大使用量基数和网卡最大使用量基数均为2。
[0025]
cpu、内存或网卡的使用率或使用量为80-90%时,测试用例的cpu最大利用率基数、内存最大使用量基数和网卡最大使用量基数均为1。
[0026]
cpu、内存或网卡的使用率或使用量为90%以上时,测试用例的cpu最大利用率基数、内存最大使用量基数和网卡最大使用量基数均为0。
[0027]
步骤3、测试节点根据压力值为多个测试用例分配不同的测试标签。
[0028]
测试标签包括低级配置l型标签、中级配置m型标签及高级配置h型标签;当测试用例压力值=0时,该测试用例不获取测试标签;当测试用例压力值》0时,该测试用例获取测试标签。测试用例可以拥有多个测试标签,低级配置l标签自动向高级配置h兼容(例:a测试用例只有l标签,那么a测试用例在h、m、l型测试机上均可执行,反之,如果b测试用例只有h标签,那么b测试用例无法在除h型测试机的其他测试机上执行)。
[0029]
在为测试用例分配测试机前,主节点统计测试节点池内节点数量是否大于零,如果是则开始智能分配。
[0030]
步骤4、测试分配模块根据不同的测试标签为多个测试用例分配测试机,进行压力测试。
[0031]
测试机包括h型测试机、m型测试机和l型测试机,用于测试不同测试用例的压力值。h型测试机执行被分配为低级配置l型标签、中级配置m型标签或高级配置h型标签的任一测试用例压力测试任务,m型测试机执行被分配为低级配置l型标签、或中级配置m型标签的测试用例压力测试任务,l型测试机执行被分配为低级配置l型标签的测试用例压力测试任务。
[0032]
当测试人员发出执行命令后,主节点会先自检测试机节点池内节点数量,以及节点是否正常在线。
[0033]
测试人员可以手动指定测试机,手动指定测试机发出执行命令,主节点会检查该测试机,如该测试机正在执行其他测试任务则向主节点返回节点正忙的信息,如测试机正常且没有任务执行,则执行本次测试任务。
[0034]
测试人员未指定测试机,主节点会根据测试标签进行智能分配(注:每台测试机在同一时间智能执行一个压力测试任务),分配时,对测试用例进行标签检测,标签检测由最低级标签开始:当测试用例含有l标签,则会检测l型测试机是否正忙,若l型测试机为闲置状态,则该任务被分配到l型测试机执行。如果l型测试机正忙,则会检测m型测试机是否正忙,若m型测试机若为闲置状态,则该任务被分配到m型测试机执行。如果m型测试机正忙,则会检测h型测试机是否正忙,若h型测试机若为闲置状态,则该任务被分配到h型测试机执行。若所
有测试机节点均正忙,则向主节点返回信息:无可用节点或节点正忙。
[0035]
当测试用例含有中级配置m型标签不含l标签,则会检测m型测试机是否正忙,若m型测试机为闲置状态,则该任务被分配到m型测试机执行。如果m型测试机正忙,则会检测h型测试机是否正忙,若h型测试机若为闲置状态,则该任务被分配到h型测试机执行。若所有测试机节点均正忙,则向主节点返回信息:无可用节点或节点正忙。
[0036]
当测试用例只有h标签时,则会检测h型测试机是否正忙,若h型测试机为闲置状态,则该任务被分配到h型测试机执行。若所有测试机节点均正忙,则向主节点返回信息:无可用节点或节点正忙。
[0037]
测试用例执行完毕后,测试节点会将测试结果发送到主节点。
[0038]
本发明提出的软件程序的压力测试分配方法为一种智能分配测试机并高效执行的方法,在资源有限的情况下根据测试的需要智能分配测试任务到不同配置的测试机上,以达到高效执行的目的,从而降低压力测试所需成本和测试所需时间。
[0039]
本发明的关键在于将多个测试节点通过获得的多个测试用例的压力值可以为多个测试用例分配不同的标签,从而将多个测试用例同时分配到不同的测试机上,从而使得在同一时间,不同的测试机可以进行不同的测试任务,测试机间互相不影响;智能分配到的测试机可以完全满足压测需求,压力测试得到的测试数据准确,也能更加准确、快速的测试出软件系统的性能。
[0040]
以上实施例仅为本发明较佳的具体实施方式,本发明的保护范围不限于此,任何熟悉本领域的技术人员在本发明披露的技术范围内,可显而易见地得到技术方案的简单变化或等效替换,均属于本发明的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1