一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种软件性能测试方法及系统与流程

2022-03-23 06:12:33 来源:中国专利 TAG:


1.本发明涉及软件测试相关技术领域,具体涉及一种软件性能测试方法及系统。


背景技术:

2.软件性能测试是一种软件测试领域中的一种重要的专项测试手段,其采用人工或自动的手段来运行或测定软件中部分或全部的运行性能,多用于稳定性测试与负载测试,是发现软件系统中潜在隐患的一种重要的方法。
3.目前的软件性能测试一般采用既有的第三方测试软件来进行,具体根据待测试软件系统的网络通信协议以及部署方式等特性选择合适的第三方测试软件进行测试。
4.但本技术发明人在实现本技术实施例中发明技术方案的过程中,发现上述技术至少存在如下技术问题:
5.现有技术中采用第三方测试软件进行软件性能测试,第三方测试软件种类繁杂,缺乏泛拓展性,例如不同的第三方测试软件对某些网络通信协议或部署方式不支持,存在一定的局限性。并且不同的第三方软件的操作流程不同,提升了软件性能测试的门槛,存在着软件测试效率较低,普适性较差的技术问题。


技术实现要素:

6.本技术实施例提供了一种软件性能测试方法及系统,用于针对解决现有技术中采用第三方测试软件进行软件性能测试,第三方测试软件种类繁杂,缺乏泛拓展性,例如不同的第三方测试软件对某些网络通信协议或部署方式不支持,存在一定的局限性。并且不同的第三方软件的操作流程不同,提升了软件性能测试的门槛,存在着的软件测试效率较低,普适性较差的技术问题。
7.鉴于上述问题,本技术实施例提供了一种软件性能测试方法及系统。
8.本技术实施例的第一个方面,提供了一种软件性能测试方法,所述方法包括:通过浏览器访问性能测试系统,获得第一测试元数据,其中,所述第一测试元数据存储于第一数据库;第一用户通过浏览器触发性能测试执行动作,生成第一调度指令;基于所述第一调度指令,性能测试调度模块于所述第一数据库中加载所述第一测试元数据,获得适配执行机信息;根据所述适配执行机信息,获得被测服务器信息;根据执行机代理模块,获得所述适配执行机上的适配测试容器信息,其中,所述适配测试容器中内置有测试执行模块;所述测试执行模块根据所述第一测试元数据的加压方式,启动所述适配测试容器对所述被测服务器进行测试,生成第一性能测试结果;将所述第一性能测试结果通过测试结果展示模块进行运态展示。
9.本技术实施例的第二个方面,提供了一种软件性能测试系统,所述系统包括:第一处理单元,所述第一处理单元用于第一用户通过浏览器触发性能测试执行动作,生成第一调度指令;第二处理单元,所述第二处理单元用于基于所述第一调度指令,性能测试调度模块于所述第一数据库中加载所述第一测试元数据,获得适配执行机信息;第二获得单元,所
述第二获得单元用于根据所述适配执行机信息,获得被测服务器信息;第三获得单元,所述第三获得单元用于根据执行机代理模块,获得所述适配执行机上的适配测试容器信息,其中,所述适配测试容器中内置有测试执行模块;第三处理单元,所述第三处理单元用于所述测试执行模块根据所述第一测试元数据的加压方式,启动所述适配测试容器对所述被测服务器进行测试,生成第一性能测试结果;第四处理单元,所述第四处理单元用于将所述第一性能测试结果通过测试结果展示模块进行运态展示。
10.本技术实施例的第三个方面,提供了一种软件性能测试系统,包括:处理器,所述处理器与存储器耦合,所述存储器用于存储程序,当所述程序被所述处理器执行时,使系统以执行如第一方面所述方法的步骤。
11.本技术实施例中提供的一个或多个技术方案,至少具有如下技术效果或优点:
12.本技术实施例提供的技术方案通过在测试之前采用浏览器访问性能测试系统,获得当前测试的元数据,触发性能测试执行动作后,性能测试调度模块根据元数据获得对应的适配执行机信息,进一步获得对应的被测服务器信息,然后根据执行机代理模块获得适配执行机上的适配测试容器执行测试,得到性能测试结果,最后通过测试结果展示模块运态展示该性能测试结果。本技术实施例通过不同的测试任务,利用测试容器生成不同的软件性能测试执行环境,能够适应大多数的网络通信环境,提升软件测试的可扩展性和兼容性,避免由于网络通信协议或部署方式不支持等情况导致不兼容无法进行测试的情况发生,并且方法执行简单易操作,降低软件测试门槛,提升软件测试效率,运行环境拓展方便,在开拓业务中,可根据业务需求进行软件架构和业务发展相适配的软件性能测试,达到了提升软件性能测试的拓展性和普适性的技术效果。
13.上述说明仅是本技术技术方案的概述,为了能够更清楚了解本技术的技术手段,而可依照说明书的内容予以实施,并且为了让本技术的上述和其它目的、特征和优点能够更明显易懂,以下特举本技术的具体实施方式。
附图说明
14.图1为本技术实施例提供的一种软件性能测试方法流程示意图;
15.图2为本技术实施例提供的一种软件性能测试方法中各功能模块结构示意图;
16.图3为本技术实施例提供了一种软件性能测试系统结构示意图;
17.图4为本技术实施例示例性电子设备的结构示意图。
18.附图标记说明:第一获得单元11,第一处理单元12,第二处理单元13,第二获得单元14,第三获得单元15,第三处理单元16,第四处理单元17,电子设备300,存储器301,处理器302,通信接口303,总线架构304。
具体实施方式
19.本技术实施例通过提供了一种软件性能测试方法及系统,用于针对解决现有技术中采用第三方测试软件进行软件性能测试,第三方测试软件种类繁杂,缺乏泛拓展性,例如不同的第三方测试软件对某些网络通信协议或部署方式不支持,存在一定的局限性。并且不同的第三方软件的操作流程不同,提升了软件性能测试的门槛,存在着的软件测试效率较低,普适性较差的技术问题。
20.申请概述
21.软件性能测试是一种软件测试领域中的一种重要的专项测试手段,其采用人工或自动的手段来运行或测定软件中部分或全部的运行性能,多用于稳定性测试与负载测试,是发现软件系统中潜在隐患的一种重要的方法。目前的软件性能测试一般采用既有的第三方测试软件来进行,具体根据待测试软件系统的网络通信协议以及部署方式等特性选择合适的第三方测试软件进行测试。现有技术中采用第三方测试软件进行软件性能测试,第三方测试软件种类繁杂,缺乏泛拓展性,例如不同的第三方测试软件对某些网络通信协议或部署方式不支持,存在一定的局限性。并且不同的第三方软件的操作流程不同,提升了软件性能测试的门槛,存在着软件测试效率较低,普适性较差的技术问题。
22.针对上述技术问题,本技术提供的技术方案总体思路如下:
23.通过浏览器访问性能测试系统,获得第一测试元数据,其中,所述第一测试元数据存储于第一数据库;第一用户通过浏览器触发性能测试执行动作,生成第一调度指令;基于所述第一调度指令,性能测试调度模块于所述第一数据库中加载所述第一测试元数据,获得适配执行机信息;根据所述适配执行机信息,获得被测服务器信息;根据执行机代理模块,获得所述适配执行机上的适配测试容器信息,其中,所述适配测试容器中内置有测试执行模块;所述测试执行模块根据所述第一测试元数据的加压方式,启动所述适配测试容器对所述被测服务器进行测试,生成第一性能测试结果;将所述第一性能测试结果通过测试结果展示模块进行运态展示。
24.在介绍了本技术基本原理后,下面,将参考附图对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本技术的一部分实施例,而不是本技术的全部实施例,应理解,本技术不受这里描述的示例实施例的限制。基于本技术的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。另外还需要说明的是,为了便于描述,附图中仅示出了与本技术相关的部分而非全部。
25.实施例一
26.如图1所示,本技术实施例提供了一种软件性能测试方法,所述方法应用于一智能存储查询系统,所述系统与客户端、数据管理工具通信连接,所述方法包括:
27.s100:通过浏览器访问性能测试系统,获得第一测试元数据,其中,所述第一测试元数据存储于第一数据库;
28.图2示出了本技术实施例中各功能模块的一种可能的示意图。具体而言,上述的性能测试系统即为本技术实施例所提供的软件性能测试系统,其内包括多个功能模块,具体包括元数据设置模块、调度装置模块、执行机代理模块、测试执行模块和测试结果展示模块。
29.上述多个模块分别执行不同的功能,其中,测试人员在需要进行软件性能测试时,通过现有技术中的任意浏览器,例如ie内核浏览器或谷歌内核浏览器等访问性能测试系统,并通过上述的元数据设置模块从第一数据库内获得第一测试元数据。
30.第一测试元数据包括当前所进行软件性能测试包括的一系列信息,示例性地,第一测试元数据包括:软件性能测试的唯一标识符,被测软件系统的网络接口协议类型,接口地址,接口名称,接口的方法名称,接口方法的入参形式,接口方法的返回值断言表达式,性
能测试的加压方式等信息。基于上述的第一测试元数据进行软件测试环境参数的一系列设置。第一数据库内存储设置有多个第一测试元数据,第一数据库为后端数据库,根据历史性能测试数据获得多个上述的第一测试元数据,供多类型的软件性能测试使用。
31.在第一测试元数据内包含的被测软件系统的网络接口协议类型中,包括部分较为特殊的网络接口协议,例如:远程过程调用协议,其对应的软件较少,所进行的软件性能测试也较少。对于该部分特殊的网络接口协议,在其对应的测试元数据设置完成后,生成特殊的容器镜像,以供后续的软件性能测试使用。例如对于远程过程调用协议,在设置完成后需要进行相应代码的编译,并将编译后的代码放入镜像中,该镜像将更新到镜像仓库中,供后续软件性能测试过程中执行机代理装置模块从该镜像仓库中更新下载使用。
32.s200:第一用户通过浏览器触发性能测试执行动作,生成第一调度指令;
33.s300:基于所述第一调度指令,性能测试调度模块于所述第一数据库中加载所述第一测试元数据,获得适配执行机信息;
34.具体而言,在第一用户通过元数据设置模块选择设置第一测试元数据完毕后,通过浏览器操作触发性能测试执行动作,使上述的调度装置模块执行,获得第一调度指令。
35.上述的第一调度指令用于使调度装置模块在上述的第一数据库内读取步骤s100所选取设置的第一测试元数据,加载其内的测试信息,并根据该测试信息内的接口地址,自动获取与该接口地址匹配的性能测试执行机的信息作为适配执行机信息,并通过该适配执行机进行软件性能测试。
36.s400:根据所述适配执行机信息,获得被测服务器信息;
37.具体而言,被测服务器信息为待进行软件性能测试的服务器的信息,与上述的适配执行机相对应,在软件性能测试过程中被该适配执行机进行性能检测。
38.该被测服务器包括:直接被测服务器和间接被测服务器,其中,直接被测服务器即为待进行软件性能测试的服务器,该次检测直接对直接被测服务器的性能进行测试。而间接被测服务器为直接被测服务器在检测过程中引用而产生负载的服务器,示例性地,间接被测服务器包括:数据库服务器,间接被测服务器通常是作为应用服务器而被调用,测试执行机不会直接调用此类服务器,间接被测服务器的列表在被测接口地址确认后,可以调用第三方调用链系统,获得直接的被测服务器的调用链路上的所有间接被测服务器的列表,然后对列表中的间接被测服务器地址进行去重,该列表中的服务器信息用于获得后续的服务器采样数据及异常终止时使用。本技术实施例通过根据应用接口地址与应用的调用链,推断出性能测试执行时的间接被测服务器,避免人为设置被测服务器而带来的设置错误或遗漏的问题发生。
39.调度装置模块在性能测试的过程中还提供了手动终止与异常终止性能测试的功能。其中,手动终止是由用户在浏览器触发终止测试。异常终止是当性能测试执行断言报错累计达到一定阀值时,自动终止执行机上的性能测试执行的过程。对于终止或正常结束后的调度装置模块恢复相应执行机的cpu核数占用状态。调度装置模块还会从消息队列中收集执行结果用于前述的异常终止,还会从被测试服务器的第三方监控系统上搜索性能数据,如cpu占用率,内存占用率,磁盘使用率,网络使用情况及相应的采集时间,当上述数据达到预定阀值时也会触发性能测试的异常终止,将上述数据与前述性能执行结果数据一并保存到后端数据库中。如此,能够大大减少调度模块的网络压力,避免接收数据量过大而使
系统崩溃的情况出现。
40.s500:根据执行机代理模块,获得所述适配执行机上的适配测试容器信息,其中,所述适配测试容器中内置有测试执行模块;
41.具体而言,在根据第一调度指令获得适配执行机以及被测服务器信息后,上述的执行机代理模块根据第一调度指令,获得适配执行机上的适配测试容器信息,其中,会根据第一测试元数据内的接口类型来获得适配接口类型的测试容器信息,作为适配测试容器信息。然后启动该适配测试容器,执行后续的测试功能。
42.在启动适配测试容器的过程中,执行机代理模块通过在本地以命令行方式启动性能测试执行机上的容器,并且在性能测试终止的时候,还可强制结束正在运行的指定性能测试的容器。
43.s600:所述测试执行模块根据所述第一测试元数据的加压方式,启动所述适配测试容器对所述被测服务器进行测试,生成第一性能测试结果;
44.具体而言,适配测试容器中内置有上述的测试执行模块,软件性能测试的执行过程由该测试执行模块执行。该测试执行模块在适配测试容器启动后立即执行相应的测试,执行过程中根据第一测试元数据内记载的性能测试加压方式进行测试。
45.具体地,测试执行过程中,适配测试容器为单线程处理循环读取入参文件,并发起网络请求,获得被测服务器响应后,根据结果断言对实际结果进行判断,如果相符则认为正确,反之则认为错误,将实际入参、实际返回结果与断言结果、请求时间、响应时间这些重要特征信息以消息队列方式返回给调度装置模块,调度装置模块根据预定阀值,决定该次测试是否异常中断。当性能测试所有入参均处理完成后或达到性能测试预定的最大请求数或性能测试的持续时间达到预定时长时,性能测试执行模块自动结束性能测试的执行,退出进程,容器直接销毁,完成测试,且上述执行机代理模块无须干预容器销毁。
46.s700:将所述第一性能测试结果通过测试结果展示模块进行运态展示。
47.具体而言,上述的测试结果展示模块在调度装置模块开始进行测试调度生成第一调度指令时开始启动工作,具体通过调度装置模块给出的性能测试适配执行机信息与被测服务器的信息依次展示,并且为了更好地展示性能测试过程数据,采用运态数据展示的方法对上述数据进行展示。
48.本技术实施例通过根据不同的测试任务,利用测试容器生成不同的软件性能测试执行环境,能够适应大多数的网络通信环境以及接口类型,提升软件测试的可扩展性和兼容性,避免由于网络通信协议或部署方式不支持等情况导致不兼容无法进行测试的情况发生。并且方法执行简单易操作,降低软件测试门槛,提升软件测试效率,运行环境拓展方便。在测试过程中,适配测试容器通过单线程多进程的方式实现更为灵活的性能测试执行策略,在开拓业务中,可根据业务需求进行软件架构和业务发展相适配的软件性能测试,达到了提升软件性能测试的拓展性和普适性的技术效果。
49.本技术实施例提供的方法中的步骤s300包括:
50.s310:获得第一通信协议返回数据包经过的所有网络节点和响应时间,其中,所述网络节点和所述响应时间一一对应;
51.s320:根据所述网络节点和所述响应时间,获得网络节点平均响应时间;
52.s330:构建第一预设阈值;
53.s340:通过对所述网络节点平均响应时间和所述第一预设阈值进行相城并累加求和,获得累加响应时间;
54.s350:若所述累加响应时间大于预设累加响应时间阈值,结束所述第一调度指令,并向所述第一用户发送无可用执行机的信息。
55.实际上,在调度装置模块读取加载第一测试元数据完毕,选择适配执行机执行性能测试的过程中,需要选择性能较好、网络通信速度正常执行机执行性能测试,以保证性能测试不被执行机性能影响。
56.具体而言,根据第一测试元数据内的接口类型信息自动选择适配测试执行机的算法包括:先在所有的测试执行机上进行预处理,然后在所有的测试执行机上访问所有待进行性能测试的被测服务器信息,利用第一通信协议,返回数据包经过所有网络节点和对应的响应时间及其均值,示例性地,第一通信协议为internet控制报文协议,但不限于此。
57.进一步地,构建第一预设阈值,示例性地,第一预设阈值为100。然后,将该响应时间均值乘以该第一预定阈值并累加求和,获得累加响应时间,如果经过的网络节点越多,会导致累加求和的响应时间越大,反之则越小。在选择适配执行机的过程中应选择该累加响应时间较小的执行机,避免选择累加响应时间较大的执行机,进而避免执行机网络较慢对性能测试产生影响。
58.若该累加响应时间未大于预设累加响应时间阈值,则从大于预设累加响应时间阈值的执行机中选取累加响应时间最小的执行机作为适配执行机,执行性能测试。若该累加响应时间大于预设累加响应时间阈值,则证明当前所有符合接口类型的执行机内部分处于测试过程中,而可进行测试的执行机网络较慢,则结束所述第一调度指令,并向所述第一用户发送无可用执行机的信息。
59.本技术实施例提供的方法中的步骤s350包括:
60.s351:构建三元组,其中,所述三元组由所述被测服务器ip、所述累加响应时间、适配执行机构建;
61.s352:获得所述被测服务器的ip地址信息;
62.s353:根据所述被测服务器的ip地址信息对所述三元组进行条件筛选过滤,获得过滤三元组;
63.s354:将三元组中的数据按照累加响应时间由大到小正序排序,生成三元组序列;
64.s355:根据所述三元组序列,获得第一三元组的第一执行机,其中,所述第一执行机的累加响应时间处于末尾序列。
65.具体而言,为更为快捷的选择获得适配执行机和对应的被测服务器,将测试执行机、被测服务器的ip与累加响应时间放入一个构建的三元组中,该三元组如下:《被测服务器ip,响应时间,性能测试执行机》,构建三元组完成上述对于测试执行机的预处理。
66.在实际调度选择执行机的过程中,根据当前软件测试的被测服务器进行初步筛选,选出符合当前被测服务器的三元组,获得过滤三元组。然后,将该过滤三元组按照累加响应时间由大到小正序排序,得到三元组序列。然后,找出其中累加响应时间最小的一个三元组,该三元组在该三元组序列中的末尾序列,可认为该三元组内的执行机为可对当前被测服务器进行性能测试的执行机中网络通信最快的执行机,选择该执行作为适配执行机,并将该执行机设置为占用状态。如果该执行机被充分占用中,重新选择三元组序列中累加
响应时间第二小的三元组中的执行机,直到无被充分占用的性能测试执行机为止,获得上述的适配执行机。
67.在上述三元组序列选择获得适配执行机的过程中,若累加响应时间小于上述预设累加响应时间阈值的三元组内的执行机均处于充分占用状态,未被占用的执行机的累加响应时间均大于预设累加响应时间阈值,则向第一用户发送无可用执行机的信息。
68.本技术实施例通过根据与被测服务器接口类型匹配的执行机与被测服务器的响应时间选择性能测试执行机,并且结合三元组算法,提升选用适配执行机的效率,进一步能够提升软件测试效率,避免网络较慢的执行机影响软件性能测试的问题发生。
69.本技术实施例提供的方法中的步骤还包括步骤s360,步骤s360包括:
70.s361:获得所述适配执行机的cpu核数累加值;
71.s362:获得所述第一测试元数据的并发数量;
72.s363:令所述适配执行机的所述cpu核数累加值大于等于所述并发数量,生成第一约束条件;
73.s364:根据所述第一约束条件对所述适配执行机进行拆分。
74.具体而言,上述内容中,执行机处于充分被占用的状态是指:已宿主机cpu总核数减去已占用的cpu核数小于待分配cpu核数值,即待分配cpu核数值无法进行当前的性能测试。基于此,可根据第一测试元数据内的测试并发数量信息结合执行机的cpu核数,将性能测试拆分由多个执行机来执行当前测试,其具体计算方法为所有已选的执行机的cpu核数累加值大于等于并行数量,避免因执行机自身性能问题导致性能测试的失真。如此,可选取多个累加响应时间较小的执行机同步执行当前软件性能测试。
75.本技术实施例可根据网络响应时间算法结合执行机cpu核数与测试并发数分配测试执行机的配额机制,有效解决资源占用过多或资源不足的问题,达到提升软件性能测试稳定性的技术效果。
76.本技术实施例提供的方法中的s600还包括s610,步骤s610包括:
77.s611:根据所述执行机代理模块下载所述第一测试元数据的入参信息,生成入参文件;
78.s612:根据总入参请求数量和并发数量,构建第一拆分规则;
79.s613:根据所述第一拆分规则对所述入参文件进行拆分,获得拆分入参文件;
80.s614:将所述拆分入参文件挂载至待运行的所述适配测试容器中。
81.具体而言,适配测试容器内的测试执行模块在执行测试的过程中,还会下载或生成第一测试元数据涉及的入参,将入参文件挂载到待运行的容器中,并且按照第一测试元数据内的并发数信息,构建第一拆分规则,对入参文件进行拆分。
82.第一拆分规则具体为:总入参请求数量/并发数量,一次拆分完成后,若余数不为零,则将余数再拆分一份,保证入参请求的相对唯一性。
83.对于逐步进行加压,入参同步加压的软件性能测试的情况,将每次加压的入参数据作为拆分为一份独立的入参文件,供不同执行机内的测试容器使用。举不设限制的一例,某次软件性能测试进行60分钟,每10分钟加压10个并发用户,将整个入参拆分为(6 5 4 3 2 1)*10的份数,即整个入参请求行数拆分为210份,如果除以210有余数,则余数丢弃。调度装置模块根据参化数的总请求数拆分到不同的执行机代理模块上,执行机代理模块由开始
位置与数量来获得指定片段的数据,避免重复,第一个执行机上的获得60份数据,每个并发用户获得10份数据,即60份/10个并发用户,第二台执行机获得50份数据,最后一台执行机获得10份数据,这种拆分方式仍可以满足请求入参的唯一性,性能测试的调度装置模块和测试执行机代理模块可以根据实际的加压情形实现不同的拆分。
84.本技术实施例通过下载第一测试元数据的入参文件并按照并发数拆分,能够预先生成数据,避免运行时从网络获取数据,减少了网络带宽的占用,提高了性能测试的准确性,也缩短了性能测试的总执行时间,对入参文件进行拆分,保证请求入参的唯一性,避免数据重复带来的数据冲突。
85.本技术实施例提供的方法中的步骤s700包括:
86.s710:所述测试结果展示模块对所述第一性能测试结果进行数据采集,获得采集时间和执行时间;
87.s720:通过对所述采集时间和执行时间进行数据向量化,并按照时间倒序排列,生成倒序数据序列;
88.s730:根据所述倒序数据序列,获得n个数据;
89.s740:将所述n个数据以分钟进行聚类,生成前端展示数据,其中,所述前端展示数据为聚类后的质点数据;
90.s750:将所述前端展示数据通过所述测试结果展示模块进行运态展示。
91.具体而言,测试结果展示模块对性能测试结果进行运态展示的方法具体如下,首先采集第一性能测试结果的数据,并从后端数据库获得采集时间和执行时间,将采集时间和执行时间进行数据向量化,按时间倒序对数据进行排序,生成倒序数据序列。取倒序数据序列内的前n个数据,n为正整数,对该前n个数据以分钟进行聚类,将聚类后的质点数据作为前端展示数据,返回给前端m个分钟内的数据,进行运态展示,m为正整数。
92.进一步地,上述对前n个数据以分钟进行聚类的具体方法如下,将采集时间与执行时间两组数据向量化后,使得对于采集时间的监控数据维度相同,执行时间对应的测试结果数据维度也相同。然后将采集时间向量中按时间取第一个时间节点的向量数据,此时聚类的质点为该时间节点的数据,再取第二个时间节点的向量数据,此时质点为两个向量的维度数据的平均值,以此类推,直到时间节点的间隔大于一分钟为止,可以得到一分钟内的聚类后的质点向量,把该质点向量作为结果返回给前端,再继续计算前两钟内的质点向量,直到返回前端m分钟的质点向量为止。
93.执行时间向量对应的测试结果数据的聚类也按照上述方法,其中,将每一分钟的质点向量放在一个列表中,当当前时间变为新的1分钟间隔时,移出最早的质点向量,重新计算最新一分钟间隔内的质点向量,以及前p分钟间隔内的质点向量(因为消息队列是异步会有延时,计算前预定的前p[p远远小于m,且为正整数]分钟内的数据可以提高数据的准确性),大大减少了性能计算结果的计算复杂性,并解决数据异步的问题。
[0094]
最终,将两组向量数据返回给前端浏览器进行展示,供软件性能测试人员查看和分析测试结果。对于前端页面而言,从后端获取的数据量最大值是固定的,不会因数据量过大而加载缓慢,且不会出现因数据暂时缺失而断线的问题。
[0095]
测试结果展示模块还可计算性能测试过程中的响应时间。具体地,首先分别计算一分钟内的响应时间和整个测试执行过程的响应时间,将响应时间排序,例如取99%的响
应时间,将响应时间的间隔划分为一千份,即总响应时间的次数/1000,余数不为零时,划分一份,如果数据不足1000个,则直接每份数据一个响应时间次数,在原数据的前后补同等数据的0占位,直到达到1000份为止。前1000份的数据个数为固定值,余数部分的个数取响应时间最小的部分(通常性能测试更多考虑是较大的响应时间),将余数部分的数据与后面50份的数据去掉,将最大数据的前50份数据去掉,将剩余中间的9900份数据计算平均值,即99%的响应时间,如此,即可计算获得性能测试过程中响应时间。
[0096]
本技术实施例通过运态展示性能测试结果,提供了一种性能测试报告的向量数据的计算方法,供前端展示使用,减少前端对网络的数据量访问,避免前端数据展示时断线,并且还可计算性能测试过程的响应时间,脱离第三方软件的计算,并可以灵活调整算法,达到提升软件测试兼容性的技术效果。
[0097]
综上所述,本技术实施例通过根据不同的测试任务,利用测试容器生成不同的软件性能测试执行环境,能够适应大多数的网络通信环境,提升软件测试的可扩展性和兼容性,避免由于网络通信协议或部署方式不支持等情况导致不兼容无法进行测试的情况发生,还根据网络响应时间算法并结合cpu核数与并发数分配测试执行机的配额机制,有效解决资源占用过多或资源不足的问题。测试方法执行简单易操作,降低软件测试门槛,提升软件测试效率,运行环境拓展方便,在开拓业务中,可根据业务需求进行软件架构和业务发展相适配的软件性能测试,达到了提升软件性能测试的拓展性和普适性的技术效果。
[0098]
实施例二
[0099]
基于与前述实施例中一种软件性能测试方法相同的发明构思,如图3所示,本技术实施例提供了一种软件性能测试系统,其中,所述系统包括:
[0100]
第一获得单元11,所述第一获得单元11用于通过浏览器访问性能测试系统,获得第一测试元数据,其中,所述第一测试元数据存储于第一数据库;
[0101]
第一处理单元12,所述第一处理单元12用于第一用户通过浏览器触发性能测试执行动作,生成第一调度指令;
[0102]
第二处理单元13,所述第二处理单元13用于基于所述第一调度指令,性能测试调度模块于所述第一数据库中加载所述第一测试元数据,获得适配执行机信息;
[0103]
第二获得单元14,所述第二获得单元14用于根据所述适配执行机信息,获得被测服务器信息;
[0104]
第三获得单元15,所述第三获得单元15用于根据执行机代理模块,获得所述适配执行机上的适配测试容器信息,其中,所述适配测试容器中内置有测试执行模块;
[0105]
第三处理单元16,所述第三处理单元16用于所述测试执行模块根据所述第一测试元数据的加压方式,启动所述适配测试容器对所述被测服务器进行测试,生成第一性能测试结果;
[0106]
第四处理单元17,所述第四处理单元17用于将所述第一性能测试结果通过测试结果展示模块进行运态展示。
[0107]
进一步的,所述系统还包括:
[0108]
第四获得单元,所述第四获得单元用于获得第一通信协议返回数据包经过的所有网络节点和响应时间,其中,所述网络节点和所述响应时间一一对应;
[0109]
第五处理单元,所述第五处理单元用于根据所述网络节点和所述响应时间,获得
网络节点平均响应时间;
[0110]
第一构建单元,所述第一构建单元用于构建第一预设阈值;
[0111]
第六处理单元,所述第六处理单元用于通过对所述网络节点平均响应时间和所述第一预设阈值进行相城并累加求和,获得累加响应时间;
[0112]
第七处理单元,所述第七处理单元用于若所述累加响应时间大于预设累加响应时间阈值,结束所述第一调度指令,并向所述第一用户发送无可用执行机的信息。
[0113]
进一步的,所述系统还包括:
[0114]
第二构建单元,所述第二构建单元用于构建三元组,其中,所述三元组由所述被测服务器ip、所述累加响应时间、适配执行机构建;
[0115]
第五获得单元,所述第五获得单元用于获得所述被测服务器的ip地址信息;
[0116]
第八处理单元,所述第八处理单元用于根据所述被测服务器的ip地址信息对所述三元组进行条件筛选过滤,获得过滤三元组;
[0117]
第九处理单元,所述第九处理单元用于将三元组中的数据按照累加响应时间由大到小正序排序,生成三元组序列;
[0118]
第六获得单元,所述第六获得单元用于根据所述三元组序列,获得第一三元组的第一执行机,其中,所述第一执行机的累加响应时间处于末尾序列。
[0119]
进一步的,所述系统还包括:
[0120]
第七获得单元,所述第七获得单元用于获得所述适配执行机的cpu核数累加值;
[0121]
第八获得单元,所述第八获得单元用于获得所述第一测试元数据的并发数量;
[0122]
第十处理单元,所述第十处理单元用于令所述适配执行机的所述cpu核数累加值大于等于所述并行数量,生成第一约束条件;
[0123]
第十一处理单元,所述第十一处理单元用于根据所述第一约束条件对所述适配执行机进行拆分。
[0124]
进一步的,所述系统还包括:
[0125]
第九获得单元,所述第九获得单元用于根据所述执行机代理模块下载所述第一测试元数据的入参信息,生成入参文件;
[0126]
第三构建单元,所述第三构建单元用于根据总入参请求数量和并发数量,构建第一拆分规则;
[0127]
第十二处理单元,所述第十二处理单元用于根据所述第一拆分规则对所述入参文件进行拆分,获得拆分入参文件;
[0128]
第十三处理单元,所述第十三处理单元用于将所述拆分入参文件挂载至待运行的所述适配测试容器中。
[0129]
进一步的,所述系统还包括:
[0130]
第十获得单元,所述第十获得单元用于所述测试结果展示模块对所述第一性能测试结果进行数据采集,获得采集时间和执行时间;
[0131]
第十四处理单元,所述第十四处理单元用于通过对所述采集时间和执行时间进行数据向量化,并按照时间倒序排列,生成倒序数据序列;
[0132]
第十一获得单元,所述第十一获得单元用于根据所述倒序数据序列,获得n个数据;
[0133]
第十五处理单元,所述第十五处理单元用于将所述n个数据以分钟进行聚类,生成前端展示数据,其中,所述前端展示数据为聚类后的质点数据;
[0134]
第十六处理单元,所述第十六处理单元用于将所述前端展示数据通过所述测试结果展示模块进行运态展示。
[0135]
示例性电子设备
[0136]
下面参考图4来描述本技术实施例的电子设备,
[0137]
基于与前述实施例中一种软件性能测试方法相同的发明构思,本技术实施例还提供了一种软件性能测试系统,包括:处理器,所述处理器与存储器耦合,所述存储器用于存储程序,当所述程序被所述处理器执行时,使得系统以执行实施例一所述方法的步骤。
[0138]
该电子设备300包括:处理器302、通信接口303、存储器301。可选的,电子设备300还可以包括总线架构304。其中,通信接口303、处理器302以及存储器301可以通过总线架构304相互连接;总线架构304可以是外设部件互连标(peripheral component interconnect,简称pci)总线或扩展工业标准结构(extended industry standard architecture,简称eisa)总线等。所述总线架构304可以分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
[0139]
处理器302可以是一个cpu,微处理器,asic,或一个或多个用于控制本技术方案程序执行的集成电路。
[0140]
通信接口303,使用任何收发器一类的装置,用于与其他设备或通信网络通信,如以太网,无线接入网(radio access network,ran),无线局域网(wireless local area networks,wlan),有线接入网等。
[0141]
存储器301可以是rom或可存储静态信息和指令的其他类型的静态存储设备,ram或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electrically erasable programmable read-only memory,eeprom)、只读光盘(compact disc read-only memory,cd-rom)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器可以是独立存在,通过总线架构304与处理器相连接。存储器也可以和处理器集成在一起。
[0142]
其中,存储器301用于存储执行本技术方案的计算机执行指令,并由处理器302来控制执行。处理器302用于执行存储器301中存储的计算机执行指令,从而实现本技术上述实施例提供的一种软件性能测试方法。
[0143]
可选的,本技术实施例中的计算机执行指令也可以称之为应用程序代码,本技术实施例对此不作具体限定。
[0144]
本技术实施例通过根据不同的测试任务,利用测试容器生成不同的软件性能测试执行环境,能够适应大多数的网络通信环境,提升软件测试的可扩展性和兼容性,避免由于网络通信协议或部署方式不支持等情况导致不兼容无法进行测试的情况发生,还根据网络响应时间算法并结合cpu核数与并发数分配测试执行机的配额机制,有效解决资源占用过多或资源不足的问题。测试方法执行简单易操作,降低软件测试门槛,提升软件测试效率,运行环境拓展方便,在开拓业务中,可根据业务需求进行软件架构和业务发展相适配的软
件性能测试,达到了提升软件性能测试的拓展性和普适性的技术效果。
[0145]
本领域普通技术人员可以理解:本技术中涉及的第一、第二等各种数字编号仅为描述方便进行的区分,并不用来限制本技术实施例的范围,也不表示先后顺序。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。“至少一个”是指一个或者多个。至少两个是指两个或者多个。“至少一个”、“任意一个”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个、种),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。
[0146]
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本技术实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包括一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘(solid state disk,ssd))等。
[0147]
本技术实施例中所描述的各种说明性的逻辑单元和电路可以通过通用处理器,数字信号处理器,专用集成电路(asic),现场可编程门阵列(fpga)或其它可编程逻辑装置,离散门或晶体管逻辑,离散硬件部件,或上述任何组合的设计来实现或操作所描述的功能。通用处理器可以为微处理器,可选地,该通用处理器也可以为任何传统的处理器、控制器、微控制器或状态机。处理器也可以通过计算装置的组合来实现,例如数字信号处理器和微处理器,多个微处理器,一个或多个微处理器联合一个数字信号处理器核,或任何其它类似的配置来实现。
[0148]
本技术实施例中所描述的方法或算法的步骤可以直接嵌入硬件、处理器执行的软件单元、或者这两者的结合。软件单元可以存储于ram存储器、闪存、rom存储器、eprom存储器、eeprom存储器、寄存器、硬盘、可移动磁盘、cd-rom或本领域中其它任意形式的存储媒介中。示例性地,存储媒介可以与处理器连接,以使得处理器可以从存储媒介中读取信息,并可以向存储媒介存写信息。可选地,存储媒介还可以集成到处理器中。处理器和存储媒介可以设置于asic中,asic可以设置于终端中。可选地,处理器和存储媒介也可以设置于终端中的不同的部件中。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0149]
尽管结合具体特征及其实施例对本技术进行了描述,显而易见的,在不脱离本申
请的精神和范围的情况下,可对其进行各种修改和组合。相应地,本说明书和附图仅仅是所附权利要求所界定的本技术的示例性说明,且视为已覆盖本技术范围内的任意和所有修改、变化、组合或等同物。显然,本领域的技术人员可以对本技术进行各种改动和变型而不脱离本技术的范围。这样,倘若本技术的这些修改和变型属于本技术权利要求及其等同技术的范围之内,则本技术意图包括这些改动和变型在内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献