CN113742226B - 一种软件性能测试方法、装置、介质及电子设备 - Google Patents
一种软件性能测试方法、装置、介质及电子设备 Download PDFInfo
- Publication number
- CN113742226B CN113742226B CN202111019445.0A CN202111019445A CN113742226B CN 113742226 B CN113742226 B CN 113742226B CN 202111019445 A CN202111019445 A CN 202111019445A CN 113742226 B CN113742226 B CN 113742226B
- Authority
- CN
- China
- Prior art keywords
- test
- performance
- data
- index data
- execution machine
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 45
- 238000012360 testing method Methods 0.000 claims abstract description 559
- 238000011056 performance test Methods 0.000 claims abstract description 125
- 238000012544 monitoring process Methods 0.000 claims description 13
- 238000004590 computer program Methods 0.000 claims description 7
- 230000003993 interaction Effects 0.000 claims description 5
- 238000012384 transportation and delivery Methods 0.000 abstract description 6
- 239000002609 medium Substances 0.000 description 13
- 230000008569 process Effects 0.000 description 13
- 238000012216 screening Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 238000013500 data storage Methods 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 1
- 241000282326 Felis catus Species 0.000 description 1
- 235000010627 Phaseolus vulgaris Nutrition 0.000 description 1
- 244000046052 Phaseolus vulgaris Species 0.000 description 1
- 238000009825 accumulation Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000009194 climbing Effects 0.000 description 1
- 238000004883 computer application Methods 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 229910002804 graphite Inorganic materials 0.000 description 1
- 239000010439 graphite Substances 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 239000012120 mounting media Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 238000009662 stress testing Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3604—Software analysis for verifying properties of programs
- G06F11/3612—Software analysis for verifying properties of programs by runtime analysis
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请实施例公开了一种软件性能测试方法、装置、介质及电子设备。所述方法包括:根据测试任务配置信息,基于测试控制接口控制测试执行机向被测软件发压,以执行测试任务;以预设时间间隔,通过所述测试控制接口从所述测试执行机获取当前时刻的测试数据;其中,所述测试数据包括:测试执行机的测试指标数据和被测软件的性能指标数据;根据所述测试任务配置信息和所述测试执行机的测试指标数据,在所述被测软件的性能指标数据中确定目标性能指标数据,并根据所述目标性能指标数据生成所述被测软件的性能测试报告。执行本申请技术方案,能够及时发现软件的性能瓶颈,提高性能测试结果的交付效率。
Description
技术领域
本申请实施例涉及计算机应用技术领域,尤其涉及一种软件性能测试方法、装置、介质及电子设备。
背景技术
性能测试包括对软件系统进行压力测试,具体是通过搭建与实际环境相似的测试环境,利用测试执行机在同一时间内或某一段时间内,是向待测系统发送预期数量的处理请求,以获得该软件系统在不同压力情况下的运行状况,通过对运行情况进行分析,确定该软件系统的承压能力,从而发现软件系统的性能瓶颈,得到软件系统的优化启示。
目前,对软件系统进行性能测试,大多是通过性能测试引擎将性能测试任务分派到测试执行机,在测试执行机完成测试任务以后,性能测试引擎才能获取到测试数据,再通过对测试数据的分析得到性能测试结果。
在测试任务执行过程中,性能测试引擎无法及时从测试执行机中获取测试数据,会降低性能测试结果的交付效率。
发明内容
本申请实施例提供一种软件性能测试方法、装置、介质及电子设备,适用于在对软件进行性能测试的情况,通过在测试执行机的任务执行过程中,基于测试控制接口与测试执行机进行交互,及时获取测试数据并对测试数据进行分析得到性能测试结果,可以达到及时发现软件的性能瓶颈,提高性能测试结果的交付效率的目的。
第一方面,本申请实施例提供了一种软件性能测试方法,所述方法包括:
根据测试任务配置信息,基于测试控制接口控制测试执行机向被测软件发压,以执行测试任务;
以预设时间间隔,通过所述测试控制接口从所述测试执行机获取当前时刻的测试数据;其中,所述测试数据包括:测试执行机的测试指标数据和被测软件的性能指标数据;
根据所述测试任务配置信息和所述测试执行机的测试指标数据,在所述被测软件的性能指标数据中确定目标性能指标数据,并根据所述目标性能指标数据生成所述被测软件的性能测试报告。
第二方面,本申请实施例提供了一种软件性能测试装置,所述装置包括:
测试执行机控制模块,用于根据测试任务配置信息,基于测试控制接口控制测试执行机向被测软件发压,以执行测试任务;
测试数据获取模块,用于以预设时间间隔,通过所述测试控制接口从所述测试执行机获取当前时刻的测试数据;其中,所述测试数据包括:测试执行机的测试指标数据和被测软件的性能指标数据;
目标性能指标数据确定模块,用于根据所述测试任务配置信息和所述测试执行机的测试指标数据,在所述被测软件的性能指标数据中确定目标性能指标数据,并根据所述目标性能指标数据生成所述被测软件的性能测试报告。
第三方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本申请实施例所述的软件性能测试方法。
第四方面,本申请实施例提供了一种电子设备,包括存储器,处理器及存储在存储器上并可在处理器运行的计算机程序,所述处理器执行所述计算机程序时实现如本申请实施例所述的软件性能测试方法。
本申请通过引入测试控制接口,使得性能测试引擎能够基于测试控制接口与主流测试执行机进行实时交互,控制测试执行机执行测试任务,向被测软件发压,从而提高了性能测试的效率。本申请中性能测试引擎基于测试控制接口,以预设时间间隔从测试执行机获取当前时刻的测试数据,使得实时生成性能测试报告成为可能,这样能够及时发现软件的性能瓶颈,提高性能测试结果的交付效率。此外,本申请通过根据测试任务配置信息和测试执行机的测试指标数据,在被测软件的性能指标数据中确定目标性能指标数据,实现了对性能指标数据的筛选,基于筛选得到的性能指标数据生成被测软件的性能测试报告,提高了性能测试报告的准确度。
附图说明
图1是本申请实施例一提供的一种软件性能测试方法的流程图;
图2是本申请实施例二提供的另一种软件性能测试方法的流程图;
图3是本申请实施例三提供的又一种软件性能测试方法的流程图;
图4是本申请实施例四提供的一种软件性能测试装置的结构示意图;
图5是本申请实施例六提供的一种电子设备的结构示意图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本申请,而非对本申请的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本申请相关的部分而非全部结构。
在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各步骤描述成顺序的处理,但是其中的许多步骤可以被并行地、并发地或者同时实施。此外,各步骤的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
实施例一
图1是本申请实施例一提供的一种软件性能测试方法的流程图,本实施例可适用于在对软件进行性能测试的情况。该方法可以由本申请实施例所提供的软件性能测试装置执行,该装置可以由软件和/或硬件的方式来实现,并可集成于运行此系统的电子设备中。
如图1所示,所述软件性能测试方法包括:
S110、根据测试任务配置信息,基于测试控制接口控制测试执行机向被测软件发压,以执行测试任务。
其中,测试任务配置信息是指用于描述性能测试任务的信息。测试任务配置信息与性能测试任务相关,测试任务可以是对软件系统进行压力性能测试、并发性能测试或者疲劳性能测试。测试测试任务配置信息是由相关技术人员根据用户需求预先确定并配置在性能测试引擎中的。在这里不对测试任务配置信息的内容进行限定,具体依据实际情况确定。示例性的,测试任务配置信息包括:测试任务开始时间、测试任务结束时间和并发用户数量等信息。
其中,测试控制接口是性能测试引擎与测试执行机进行交互的标准技术交互数据接口。通过测试控制接口可以实现性能测试引擎和测试执行机之间的数据交互。测试控制接口支持传输多种报文格式的数据,例如JSON格式。性能测试引擎通过测试控制接口可以控制测试执行机的启动和停止,通过测试控制接口,性能测试引擎还可以随时获取测试执行机状态,并获取测试执行机在执行测试任务过程中产生的测试数据。测试控制接口中封装有完成测试执行机控制功能。测试控制接口可适配于不同调用方式和不同实现方式的测试执行机。通过调整测试控制接口中的输入参数,可以实现按需控制不同类型测试执行机。
其中,测试执行机是用于执行测试任务的性能测试工具。可选的,测试执行机为主流的Loadrunner或者Apache jmeter。其中,LoadRunner,是一种预测系统行为和性能的负载测试工具。通过模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题,LoadRunner能够对整个企业架构进行测试。企业使用LoadRunner能最大限度地缩短测试时间,优化性能和加速应用系统的发布周期。LoadRunner可适用于各种体系架构的自动负载测试,能预测系统行为并评估系统性能;Apache Jmeter为基于Java的压力测试工具,可用于对软件做压力测试,JMeter可以用于对服务器、网络或对象模拟巨大的负载,来自不同压力类别下测试它们的强度和分析整体性能。
其中,被测软件是指存在性能测试需求的软件系统。示例性的,被测软件可以为手机银行、铁路12306购票系统、淘宝和天猫等软件。
性能测试引擎根据测试任务配置信息,基于测试控制接口控制测试执行机执行测试任务,向被测软件发压。具体的,在被测软件为手机银行的情况下,性能测试引擎根据测试任务配置信息,基于测试控制接口控制测试执行机如LoadRunner或者JMeter发压,模拟上千万用户并发访问手机银行,参与手机银行的纪念币兑换活动或者金豆兑换活动的场景,并通过测试执行机对手机银行系统进行性能监测。
为了进一步提高性能测试效率,本申请实施例在性能测试引擎中配置了完备测试控制接口,供性能测试引擎控制测试执行机。在一个可选的实施例中,所述测试控制接口包括:测试执行机启动接口、测试执行机状态获取接口、测试结果获取接口、测试执行机关闭接口中的至少一项。
其中,测试执行机启动接口,用于启动测试执行机向被测软件进行发压,执行测试任务,测试执行机启动接口的输入参数至少包括:测试执行机标识、测试数据存储地址、测试任务标识、目标用户数量和测试任务执行时间和启停标志信息。
测试执行机状态获取接口,用于获取测试执行机当前状态。测试执行机状态获取接口的输入参数至少包括:测试执行机标识和测试任务标识。其中,测试执行当前状态至少包括:当前测试任务执行时长和当前模拟用户数量。
测试结果获取接口,用于从测试执行机获取对被测软件进行性能监测得到的测试结果。测试结果获取接口的输入参数至少包括:测试执行机标识和测试任务标识。可选的,测试结果至少包括:执行交易用户数、执行交易时长和交易成功失败笔数。
测试执行机关闭接口,用于控制测试执行机停止执行测试任务。测试执行机关闭接口的输入参数至少包括:测试执行机标识和启停标志信息。
值得注意的是,性能测试引擎中并不限于上述种类的测试控制接口,用户可以根据实际业务需求对上述测试控制接口进行增加,当然用户也可以对根据实际业务需求对上述测试控制接口进行删除或者修改操作。
S120、以预设时间间隔,通过所述测试控制接口从所述测试执行机获取当前时刻的测试数据;其中,所述测试数据包括:测试执行机的测试指标数据和被测软件的性能指标数据。
其中,预设时间间隔与实际用户需求相关,若用户对于实时性要求较高则可将预设时间的数值设置的小一些。示例性的,可将预设时间间隔的数值设置为秒级,以尽量满足用户对实时性的要求。相对的,用户对于实时性无要求或者要求较低,则可根据测试任务执行时间确定预设时间的数值。可在测试任务执行过程中读取获取一定次数的测试数据。
其中,测试数据包括:测试执行机的测试指标数据和被测软件的性能指标数据。测试执行机的测试指标数据可以反映测试执行机当前测试任务执行情况,测试执行机的测试指标数据可以是当前模拟用户数量。应该知道的是,在测试执行机执行测试任务向被测软件发压的过程中,也存在模拟并发用户数量逐渐攀升的过程,测试执行机并不能从测试开始时刻,即可模拟上千万用户并发访问被测软件的情况。
被测软件的性能指标数据是指在测试任务执行过程中,测试执行机对被测软件进行性能监测得到的测试结果。被测软件的性能指标数据可以是被测软件执行交易用户数、交易执行时长和交易成功失败笔数。测试执行机的测试指标数据和被测软件的性能指标数据的具体内容在这里不作限定,具体依据实际情况确定。
性能测试引擎以预设时间间隔,通过所述测试控制接口从所述测试执行机获取当前时刻的测试数据。具体的,性能测试引擎以预设时间间隔通过测试执行机状态获取接口获取测试执行机的测试指标数据,并通过测试结果获取接口获取被测软件的性能指标数据。
S130、根据所述测试任务配置信息和所述测试执行机的测试指标数据,在所述被测软件的性能指标数据中确定目标性能指标数据,并根据所述目标性能指标数据生成所述被测软件的性能测试报告。
测试任务配置信息中包括有测试目标,如测试在并发用户为大于等于1千万的情况下,被测软件的运行情况。由于测试数据是已设定时间间隔获取的,测试数据中存在无效数据,即对达成性能测试目标贡献度较低的数据,如在模拟并发用户数量攀升到1千万之前,测试执行机对被测软件进行性能监测得到的性能指标数据。在模拟并发用户数量攀升到1千万以后,监测得到的性能指标数据为有效数据,目标性能指标数据即为有效数据。
根据测试任务配置信息和测试执行机的测试指标数据,在被测软件的性能指标数据中确定目标性能指标数据,即为对目标性能指标数据的筛选过程。从测试数据中测试执行机的测试指标数据,选择有效的测试指标数据,并基于有效的测试指标数据自动生成性能测试报告。可选的,性能测试报告中可以包括:被测系统的平均响应时间、被测系统的吞吐量TPS、被测系统处理能力、成功笔数、失败笔数和交易成功率等性能项。
本申请通过引入测试控制接口,使得性能测试引擎能够基于测试控制接口与主流测试执行机进行实时交互,控制测试执行机执行测试任务,向被测软件发压,从而提高了性能测试的效率。本申请中性能测试引擎基于测试控制接口,以预设时间间隔从测试执行机获取当前时刻的测试数据,使得实时生成性能测试报告成为可能,这样能够及时发现软件的性能瓶颈,提高性能测试结果的交付效率。此外,本申请通过根据测试任务配置信息和测试执行机的测试指标数据,在被测软件的性能指标数据中确定目标性能指标数据,实现了对性能指标数据的筛选,基于筛选得到的性能指标数据生成被测软件的性能测试报告,提高了性能测试报告的准确度。
实施例二
图2是本申请实施例二提供的另一种软件性能测试方法的流程图。本实施例在上述实施例的基础上进行进一步地优化。具体优化为,在所述以预设时间间隔,通过所述测试控制接口从所述测试执行机获取当前时刻的测试数据以后,所述方法还包括:根据所述测试数据的获取时间,将所述测试数据以时间顺序进行存储。
如图2所示,所述软件性能测试方法包括:
S210、根据测试任务配置信息,基于测试控制接口控制测试执行机向被测软件发压,以执行测试任务。
S220、以预设时间间隔,通过所述测试控制接口从所述测试执行机获取当前时刻的测试数据;其中,所述测试数据包括:测试执行机的测试指标数据和被测软件的性能指标数据。
S230、根据所述测试数据的获取时间,将所述测试数据以时间顺序进行存储。
其中,测试数据的获取时间是指性能测试引擎通过测试控制接口获取到测试数据的时间。
性能测试引擎根据测试数据的获取时间,将所述测试数据以时间顺序进行存储。
一般而言考虑到资源利用率,一个性能测试引擎往往会同时控制多台测试执行机,执行不同的测试任务,同时性能测试引擎也会从不同测试执行机处获取到属于不同测试任务的测试数据,测试数据繁多、杂乱,给数据管理带来挑战。
为了提高数据的管理效率,在一个可选的实施例中,其中,所述测试数据包括测试执行机的标识信息和所述被测软件的标识信息;相应的,根据所述测试数据的获取时间,将所述测试数据以时间顺序进行存储,包括:根据所述被测软件的标识信息,汇总从各测试执行机获取的测试数据;根据所述测试执行机标识信息和所述测试数据的获取时间,将所述测试数据以测试执行机的维度,按照时间顺序写入时序数据库中。
其中,测试执行机的标识信息是测试执行机的唯一性标识,测试执行机的标识用于对测试执行机进行区分,不同的测试执行机的标识信息不同。被测软件的标识信息是被测软件的唯一性标识,被测软件的标识信息用于对被测软件进行区分,不同的被测软件的标识信息不同。
具体的,性能测试引擎将从各测试执行机获取到所属于同一被测软件的测试数据进行归纳汇总。再将属于同一被测软件的数据,按照测试执行机标识信息进行分类,在将从同一测试执行机获取的测试数据,以测试数据的获取时间为时间戳,按照时间顺序写入时序数据库中。
其中,时序数据库是针对时间戳或时间序列数据进行优化的数据库,专门为处理带有时间戳的度量和事件或度量而构建的。而时间序列数据可以是随时间跟踪、监视、下采样和聚合的度量或事件,如服务器指标、应用程序性能、网络数据、传感器数据以及许多其他类型的分析数据。可选的,时序数据库为influxdb数据库、Elasticsearch数据库或者Graphite数据库。优选influxdb数据库,influxdb数据库是开源分布式时序、事件和指标数据库,无需外部依赖。适合存储设备性能、日志、物联网传感器等带时间戳的数据。
S240、根据所述测试任务配置信息和所述测试执行机的测试指标数据,在所述被测软件的性能指标数据中确定目标性能指标数据,并根据所述目标性能指标数据生成所述被测软件的性能测试报告。
由于不同用户对软件性能的关注方面存在差异,此外用户之间对于性能测试报告式样也各有不同。为了满足用户对于性能测试报告的个性化需求,在一个可选的实施例中,根据所述目标性能指标数据生成所述被测软件的性能测试报告,包括:根据用户报告定制需求中预设性能项类型,选择属于预设性能项类型的候选性能项,作为展示数据;其中,候选性能项是按照预设规则对所述目标性能指标数据进行计算得到的;根据用户标识与测试模板之间的关联关系和用户报告定制需求中用户标识,在候选性能测试模板中确定目标性能测试模板;根据所述目标性能测试模板和所述展示数据,生成所述被测软件的性能测试报告。
其中,用户报告定制需求是指用户对于性能测试报告式样以及性能报告中具体包括的性能项的需求。预设性能项类型则为用户需要在性能测试报告中展示出的性能项类型。候选性能项是指性能测试引擎按照预设规则对目标性能指标数据进行计算得到的全部类型的性能项。预设规则是用于计算性能项的规则。例如,预设规则可以是用于计算交易成功率的规则。性能测试引擎根据交易成功失败笔数计算得到的交易成功率。可选的,候选性能项还包括:被测系统的平均响应时间、被测系统的吞吐量TPS、被测系统处理能力、成功笔数和失败笔数。预设性能项类型为候选性能项的子集。
根据用户报告定制需求中预设性能项类型,选择属于预设性能项类型的候选性能项,作为展示数据。具体的,性能测试引擎将候选性能项类型与预设性能项类型进行匹配,选择与预设性能项类型一致的候选性能项类型作为展示数据。
其中,用户标识与测试模板之间的关联关系是由相关技术人员根据实际情况预先配置在性能测试引擎中的,测试模板即为用于生成性能测试报告的模板。测试模板与用户相关,根据用户标识即可确定与该用户关联的测试模板。
根据目标性能测试模板和展示数据,生成被测软件的性能测试报告,具体的,将展示数据填入目标性能测试模板的相应位置,以生成满足用户个性化需求的性能报告。可选的,在将展示数据填入目标性能测试模板的相应的位置之前,还包括根据用户需求对展示数据进行格式转换以满足用户对于性能测试报告的个性化需求。
可选的,性能测试引擎还能够与通用文档和数据库进行交互,如Word、Excel,和mysql数据库。根据用户对于性能测试报告的个性化需求,生成Word格式或者HTML格式的文件提供给用户,供用户下载查看。
本申请实施例所提供的技术方案,通过根据测试数据的获取时间,将所述测试数据以时间顺序进行存储,再基于测试数据生成性能测试报告。实现了测试数据的自动化收集和性能测试报告的自动化生成,同时实现了对无序、繁多的测试数据的有序化管理,提高了测试数据收集和管理效率,从而提高了性能测试报告的生成效率和质量。
实施例三
图3是本申请实施例三提供的又一种软件性能测试方法的流程图。本实施例在上述实施例的基础上进行进一步地优化。具体优化为,根据所述测试任务配置信息和所述测试执行机的测试指标数据,在所述被测软件的性能指标数据中确定目标性能指标数据,包括:根据所述测试任务配置信息中的预设测试指标,在所述测试执行机的测试指标数据中选择目标测试指标数据;根据所述目标测试指标数据的获取时间,确定数据有效时段,并选择属于所述数据有效时段的所述被测软件的性能指标数据,作为目标性能指标数据。
如图3所示,所述软件性能测试方法包括:
S310、根据测试任务配置信息,基于测试控制接口控制测试执行机向被测软件发压,以执行测试任务。
S320、以预设时间间隔,通过所述测试控制接口从所述测试执行机获取当前时刻的测试数据;其中,所述测试数据包括:测试执行机的测试指标数据和被测软件的性能指标数据。
S330、根据所述测试数据的获取时间,将所述测试数据以时间顺序进行存储。
S340、根据所述测试任务配置信息中的预设测试指标,在所述测试执行机的测试指标数据中选择目标测试指标数据。
其中,测试指标数据用于反映测试执行机的测试任务执行情况。可选的,测试指标数据为模拟并发用户数。其中,预设测试指标数据用于判断测试执行机的测试任务执行情况是否满足被测软件性能测试需求,具体的,预设测试指标数据用于判断测试执行机模拟并发用户数是否满足对被测软件进行性能测试的规模。
测试执行机在执行测试任务模拟大规模用户并发访问被测软件,向被测软件发压时,会存在一个并发用户数量攀升过程,经过一段时间用户数量的累积才能达到测试被测软件性能的目标规模。在模拟并发用户数达到目标规模之前,测试执行机监测到的被测软件的性能指标数据均无效数据。
根据测试执行机的测试指标数据判断当前模拟并发用户的规模是否达到目标规模可实现对被测软件的性能指标数据的筛选。具体的,将测试执行机的测试指标数据与预设测试指标进行比较,将测试指标数据大于或者等于预设测试指标的测试指标数据作为目标测试指标数据。与目标测试指标数据对应的性能指标数据即为有效数据。
S350、根据所述目标测试指标数据的获取时间,确定数据有效时段,并选择属于所述数据有效时段的所述被测软件的性能指标数据,作为目标性能指标数据,并根据所述目标性能指标数据生成所述被测软件的性能测试报告。
其中,数据有效时段是指测试执行机模拟用户并发量达到对被测软件进行性能测试所需规模的时间段。
同一时刻获取的测试执行机的测试指标数据和被测软件的性能指标数据对应的获取时间一致。根据目标测试指标数据的获取时间确定数据有效时段。具体的,将目标测试指标数据中最小获取时间确定为数据有效时段的起始时间,将测试任务执行结束时间作为数据有效时段的终止时间。还可以将目标测试指标数据中最小获取时间确定为数据有效时段的起始时间,将目标测试指标数据中最大获取时间确定为数据有效时段的终止时间。
数据有效时段内的性能指标数据即为目标性能指标数据,目标性能指标数据为对被测软件性能分析有参考价值的数据。根据目标性能指标数据生成被测软件的性能测试报告,可以提高性能测试报告的准确性。
本申请实施例所提供的技术方案,根据测试任务配置信息中的预设测试指标,在测试执行机的测试指标数据中选择目标测试指标数据,根据目标测试指标数据的获取时间,确定数据有效时段,并选择属于数据有效时段的被测软件的性能指标数据,实现了对性能指标数据的筛选,在测试性能数据中选择有效的性能指标数据作为目标性能指标数据,并根据目标性能指标数据生成被测软件的性能测试报告,提高了性能测试报告的准确性。
在一个可选的实施例中,在根据所述测试任务配置信息和所述测试执行机的测试指标数据,在所述被测软件的性能指标数据中确定目标性能指标数据以后,所述方法还包括:根据所述测试任务配置信息确定所述测试任务的执行时段;通过配置在所述被测软件中的状态监控服务,获取所述被测软件在所述测试任务的执行时段中资源使用情况;根据所述资源使用情况和所述目标性能指标数据生成所述被测软件的性能测试报告。
其中,状态监控服务是由相关技术人员预先配置在支撑被测软件运行的服务器中的,状态监控服务用于监控服务器的资源使用情况如CPU和内存等资源的平均使用率、最大值、最小值和资源占用趋势等。
根据测试任务配置信息确定测试任务的执行时段,具体的,性能测试引擎根据测试任务配置信息中测试任务开始时间和测试任务结束时间,确定测试任务执行时段。
性能测试引擎通过配置在被测软件中的状态监控服务,监控被测软件在测试任务的执行时段中资源使用情况,并综合资源使用情况和目标性能指标数据生成被测软件的性能测试报告。
本申请考虑到测试执行机在测试任务执行时间内不能对测试软件的资源使用情况进行有效监测,通过在被测软件中配置的状态监控服务,监控被测软件在测试任务执行期间的资源使用情况,并综合测试执行机监测得到的性能指标数据和状态监控服务监控到的资源使用情况生成被测软件的性能测试报告。提高了性能测试的准确度,使得性能测试报告能够反映被测软件各方面性能。
实施例四
图4是本申请实施例四提供的一种软件性能测试装置,本实施例可适用于对软件进行性能测试的情况。所述装置可由软件和/或硬件实现,并可集成于智能终端等电子设备中。
如图4所示,该装置可以包括:测试执行机控制模块410、测试数据获取模块420和目标性能指标数据确定模块430。
测试执行机控制模块410,用于根据测试任务配置信息,基于测试控制接口控制测试执行机向被测软件发压,以执行测试任务;
测试数据获取模块420,用于以预设时间间隔,通过所述测试控制接口从所述测试执行机获取当前时刻的测试数据;其中,所述测试数据包括:测试执行机的测试指标数据和被测软件的性能指标数据;
目标性能指标数据确定模块430,用于根据所述测试任务配置信息和所述测试执行机的测试指标数据,在所述被测软件的性能指标数据中确定目标性能指标数据,并根据所述目标性能指标数据生成所述被测软件的性能测试报告。
本申请通过引入测试控制接口,使得性能测试引擎能够基于测试控制接口与主流测试执行机进行实时交互,控制测试执行机执行测试任务,向被测软件发压,从而提高了性能测试的效率。本申请中性能测试引擎基于测试控制接口,以预设时间间隔从测试执行机获取当前时刻的测试数据,使得实时生成性能测试报告成为可能,这样能够及时发现软件的性能瓶颈,提高性能测试结果的交付效率。此外,本申请通过根据测试任务配置信息和测试执行机的测试指标数据,在被测软件的性能指标数据中确定目标性能指标数据,实现了对性能指标数据的筛选,基于筛选得到的性能指标数据生成被测软件的性能测试报告,提高了性能测试报告的准确度。
可选的,所述测试控制接口包括:测试执行机启动接口、测试执行机状态获取接口、测试结果获取接口、测试执行机关闭接口中的至少一项。
可选的,所述装置还包括:测试数据存储模块,具体用于在所述以预设时间间隔,通过所述测试控制接口从所述测试执行机获取当前时刻的测试数据以后,根据所述测试数据的获取时间,将所述测试数据以时间顺序进行存储。
可选的,目标性能指标数据确定模块430,包括:目标测试指标数据确定子模块,用于根据所述测试任务配置信息中的预设测试指标,在所述测试执行机的测试指标数据中选择目标测试指标数据;目标性能指标数据确定子模块,用于根据所述目标测试指标数据的获取时间,确定数据有效时段,并选择属于所述数据有效时段的所述被测软件的性能指标数据,作为目标性能指标数据。
可选的,所述装置还包括:测试任务执行时段确定模块,用于在根据所述测试任务配置信息和所述测试执行机的测试指标数据,在所述被测软件的性能指标数据中确定目标性能指标数据以后,根据所述测试任务配置信息确定所述测试任务的执行时段;资源使用情况获取模块,用于通过配置在所述被测软件中的状态监控服务,获取所述被测软件在所述测试任务的执行时段中资源使用情况;性能测试报告生成模块,用于根据所述资源使用情况和所述目标性能指标数据生成所述被测软件的性能测试报告。
可选的,目标性能指标数据确定模块430包括:目标性能指标数据确定子模块和性能测试报告生成子模块。其中,目标性能指标数据确定子模块,具体用于根据所述测试任务配置信息和所述测试执行机的测试指标数据,在所述被测软件的性能指标数据中确定目标性能指标数据;性能测试报告生成子模块,具体用于并根据所述目标性能指标数据生成所述被测软件的性能测试报告。
可选的,性能测试报告生成子模块,包括:展示数据确定单元,用于
根据用户报告定制需求中预设性能项类型,选择属于预设性能项类型的候选性能项,作为展示数据;其中,候选性能项是按照预设规则对所述目标性能指标数据进行计算得到的;目标性能测试模板确定单元,用于根据用户标识与测试模板之间的关联关系和用户报告定制需求中用户标识,在候选性能测试模板中确定目标性能测试模板;性能测试报告生成单元,用于根据所述目标性能测试模板和所述展示数据,生成所述被测软件的性能测试报告。
可选的,其中,所述测试数据包括测试执行机的标识信息和所述被测软件的标识信息;相应的,测试数据存储模块,包括:测试数据汇总模块,用于根据所述被测软件的标识信息,汇总从各测试执行机获取的测试数据;测试数据写入模块,用于根据所述测试执行机标识信息和所述测试数据的获取时间,将所述测试数据以测试执行机的维度,按照时间顺序写入时序数据库中。
本发明实施例所提供的一种软件性能测试装置可执行本发明任意实施例所提供的一种软件性能测试方法,具备执行一种软件性能测试方法相应的性能模块和有益效果。
实施例五
本申请实施例五还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种软件性能测试方法,该方法包括:
根据测试任务配置信息,基于测试控制接口控制测试执行机向被测软件发压,以执行测试任务;
以预设时间间隔,通过所述测试控制接口从所述测试执行机获取当前时刻的测试数据;其中,所述测试数据包括:测试执行机的测试指标数据和被测软件的性能指标数据;
根据所述测试任务配置信息和所述测试执行机的测试指标数据,在所述被测软件的性能指标数据中确定目标性能指标数据,并根据所述目标性能指标数据生成所述被测软件的性能测试报告。
存储介质是指任何的各种类型的存储器电子设备或存储电子设备。术语“存储介质”旨在包括:安装介质,例如CD-ROM、软盘或磁带装置;计算机系统存储器或随机存取存储器,诸如DRAM、DDR RAM、SRAM、EDO RAM,兰巴斯(Rambus)RAM等;非易失性存储器,诸如闪存、磁介质(例如硬盘或光存储);寄存器或其它相似类型的存储器元件等。存储介质可以还包括其它类型的存储器或其组合。另外,存储介质可以位于程序在其中被执行的计算机系统中,或者可以位于不同的第二计算机系统中,第二计算机系统通过网络(诸如因特网)连接到计算机系统。第二计算机系统可以提供程序指令给计算机用于执行。术语“存储介质”可以包括可以驻留在不同未知中(例如在通过网络连接的不同计算机系统中)的两个或更多存储介质。存储介质可以存储可由一个或多个处理器执行的程序指令(例如具体实现为计算机程序)。
当然,本申请实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的软件性能测试方法中的操作,还可以执行本申请任意实施例所提供的软件性能测试方法中的相关操作。
实施例六
本申请实施例六提供了一种电子设备,该电子设备中可集成本申请实施例提供的软件性能测试装置,该电子设备可以是配置于系统内的,也可以是执行系统内的部分或者全部性能的设备。图5是本申请实施例六提供的一种电子设备的结构示意图。如图5所示,本实施例提供了一种电子设备500,其包括:一个或多个处理器520;存储装置510,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器520执行,使得所述一个或多个处理器520实现本申请实施例所提供的软件性能测试方法,该方法包括:
根据测试任务配置信息,基于测试控制接口控制测试执行机向被测软件发压,以执行测试任务;
以预设时间间隔,通过所述测试控制接口从所述测试执行机获取当前时刻的测试数据;其中,所述测试数据包括:测试执行机的测试指标数据和被测软件的性能指标数据;
根据所述测试任务配置信息和所述测试执行机的测试指标数据,在所述被测软件的性能指标数据中确定目标性能指标数据,并根据所述目标性能指标数据生成所述被测软件的性能测试报告。
当然,本领域技术人员可以理解,处理器520还实现本申请任意实施例所提供的软件性能测试方法的技术方案。
图5显示的电子设备500仅仅是一个示例,不应对本申请实施例的性能和使用范围带来任何限制。
如图5所示,该电子设备500包括处理器520、存储装置510、输入装置530和输出装置540;电子设备中处理器520的数量可以是一个或多个,图5中以一个处理器520为例;电子设备中的处理器520、存储装置510、输入装置530和输出装置540可以通过总线或其他方式连接,图5中以通过总线550连接为例。
存储装置510作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块单元,如本申请实施例中的软件性能测试方法对应的程序指令。
存储装置510可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个性能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储装置510可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储装置510可进一步包括相对于处理器520远程设置的存储器,这些远程存储器可以通过网络连接。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置530可用于接收输入的数字、字符信息或语音信息,以及产生与电子设备的用户设置以及性能控制有关的键信号输入。输出装置540可包括显示屏、扬声器等电子设备。
上述实施例中提供的软件性能测试装置、介质及电子设备可执行本申请任意实施例所提供的软件性能测试方法,具备执行该方法相应的性能模块和有益效果。未在上述实施例中详尽描述的技术细节,可参见本申请任意实施例所提供的软件性能测试方法。
注意,上述仅为本申请的较佳实施例及所运用技术原理。本领域技术人员会理解,本申请不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本申请的保护范围。因此,虽然通过以上实施例对本申请进行了较为详细的说明,但是本申请不仅仅限于以上实施例,在不脱离本申请构思的情况下,还可以包括更多其他等效实施例,而本申请的范围由所附的权利要求范围决定。
Claims (10)
1.一种软件性能测试方法,其特征在于,所述方法包括:
根据测试任务配置信息,基于测试控制接口控制测试执行机向被测软件发压,以执行测试任务,其中,所述测试控制接口是性能测试引擎与所述测试执行机进行交互的标准技术交互数据接口;
以预设时间间隔,通过所述测试控制接口从所述测试执行机获取当前时刻的测试数据;其中,所述测试数据包括:测试执行机的测试指标数据和被测软件的性能指标数据;
根据所述测试任务配置信息和所述测试执行机的测试指标数据,在所述被测软件的性能指标数据中确定目标性能指标数据,并根据所述目标性能指标数据生成所述被测软件的性能测试报告。
2.根据权利要求1所述的方法,其特征在于,所述测试控制接口包括:测试执行机启动接口、测试执行机状态获取接口、测试结果获取接口、测试执行机关闭接口中的至少一项。
3.根据权利要求2所述的方法,其特征在于,在所述以预设时间间隔,通过所述测试控制接口从所述测试执行机获取当前时刻的测试数据以后,所述方法还包括:
根据所述测试数据的获取时间,将所述测试数据以时间顺序进行存储。
4.根据权利要求3所述的方法,其特征在于,根据所述测试任务配置信息和所述测试执行机的测试指标数据,在所述被测软件的性能指标数据中确定目标性能指标数据,包括:
根据所述测试任务配置信息中的预设测试指标,在所述测试执行机的测试指标数据中选择目标测试指标数据;
根据所述目标测试指标数据的获取时间,确定数据有效时段,并选择属于所述数据有效时段的所述被测软件的性能指标数据,作为目标性能指标数据。
5.根据权利要求1所述的方法,其特征在于,在根据所述测试任务配置信息和所述测试执行机的测试指标数据,在所述被测软件的性能指标数据中确定目标性能指标数据以后,所述方法还包括:
根据所述测试任务配置信息确定所述测试任务的执行时段;
通过配置在所述被测软件中的状态监控服务,获取所述被测软件在所述测试任务的执行时段中资源使用情况;
根据所述资源使用情况和所述目标性能指标数据生成所述被测软件的性能测试报告。
6.根据权利要求1所述的方法,其特征在于,根据所述目标性能指标数据生成所述被测软件的性能测试报告,包括:
根据用户报告定制需求中预设性能项类型,选择属于预设性能项类型的候选性能项,作为展示数据;其中,候选性能项是按照预设规则对所述目标性能指标数据进行计算得到的;
根据用户标识与测试模板之间的关联关系和用户报告定制需求中用户标识,在候选性能测试模板中确定目标性能测试模板;
根据所述目标性能测试模板和所述展示数据,生成所述被测软件的性能测试报告。
7.根据权利要求3所述的方法,其特征在于,其中,所述测试数据包括测试执行机的标识信息和所述被测软件的标识信息;相应的,根据所述测试数据的获取时间,将所述测试数据以时间顺序进行存储,包括:
根据所述被测软件的标识信息,汇总从各测试执行机获取的测试数据;
根据所述测试执行机标识信息和所述测试数据的获取时间,将所述测试数据以测试执行机的维度,按照时间顺序写入时序数据库中。
8.一种软件性能测试装置,其特征在于,所述装置包括:
测试执行机控制模块,用于根据测试任务配置信息,基于测试控制接口控制测试执行机向被测软件发压,以执行测试任务,其中,所述测试控制接口是性能测试引擎与所述测试执行机进行交互的标准技术交互数据接口;
测试数据获取模块,用于以预设时间间隔,通过所述测试控制接口从所述测试执行机获取当前时刻的测试数据;其中,所述测试数据包括:测试执行机的测试指标数据和被测软件的性能指标数据;
目标性能指标数据确定模块,用于根据所述测试任务配置信息和所述测试执行机的测试指标数据,在所述被测软件的性能指标数据中确定目标性能指标数据,并根据所述目标性能指标数据生成所述被测软件的性能测试报告。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-7中任一项所述的软件性能测试方法。
10.一种电子设备,包括存储器,处理器及存储在存储器上并可在处理器运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1-7中任一项所述的软件性能测试方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111019445.0A CN113742226B (zh) | 2021-09-01 | 2021-09-01 | 一种软件性能测试方法、装置、介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111019445.0A CN113742226B (zh) | 2021-09-01 | 2021-09-01 | 一种软件性能测试方法、装置、介质及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113742226A CN113742226A (zh) | 2021-12-03 |
CN113742226B true CN113742226B (zh) | 2024-04-30 |
Family
ID=78734589
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111019445.0A Active CN113742226B (zh) | 2021-09-01 | 2021-09-01 | 一种软件性能测试方法、装置、介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113742226B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108415847A (zh) * | 2018-05-08 | 2018-08-17 | 平安普惠企业管理有限公司 | 性能测试方法、装置、计算机设备及存储介质 |
CN108733568A (zh) * | 2018-05-25 | 2018-11-02 | 平安科技(深圳)有限公司 | 应用测试方法、装置、设备及可读存储介质 |
CN108845914A (zh) * | 2018-06-29 | 2018-11-20 | 平安科技(深圳)有限公司 | 性能测试报告的生成方法、电子装置及可读存储介质 |
CN111181800A (zh) * | 2019-11-27 | 2020-05-19 | 腾讯科技(深圳)有限公司 | 测试数据处理方法、装置、电子设备及存储介质 |
CN112612686A (zh) * | 2020-12-18 | 2021-04-06 | 平安普惠企业管理有限公司 | 性能测试方法、装置、电子设备及存储介质 |
-
2021
- 2021-09-01 CN CN202111019445.0A patent/CN113742226B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108415847A (zh) * | 2018-05-08 | 2018-08-17 | 平安普惠企业管理有限公司 | 性能测试方法、装置、计算机设备及存储介质 |
CN108733568A (zh) * | 2018-05-25 | 2018-11-02 | 平安科技(深圳)有限公司 | 应用测试方法、装置、设备及可读存储介质 |
CN108845914A (zh) * | 2018-06-29 | 2018-11-20 | 平安科技(深圳)有限公司 | 性能测试报告的生成方法、电子装置及可读存储介质 |
CN111181800A (zh) * | 2019-11-27 | 2020-05-19 | 腾讯科技(深圳)有限公司 | 测试数据处理方法、装置、电子设备及存储介质 |
CN112612686A (zh) * | 2020-12-18 | 2021-04-06 | 平安普惠企业管理有限公司 | 性能测试方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113742226A (zh) | 2021-12-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108319547B (zh) | 测试用例生成方法、装置和系统 | |
US10116534B2 (en) | Systems and methods for WebSphere MQ performance metrics analysis | |
Subraya et al. | Object driven performance testing of Web applications | |
US8630836B2 (en) | Predicting system performance and capacity using software module performance statistics | |
CN104683180B (zh) | 一种性能监控方法、系统及应用服务器 | |
CN109309596B (zh) | 一种压力测试方法、装置及服务器 | |
CN103581247A (zh) | 一种基于云计算环境的分布式Web测试方法 | |
CN112783793B (zh) | 自动化接口测试系统及方法 | |
CN110750458A (zh) | 大数据平台测试方法、装置、可读存储介质及电子设备 | |
CN112035363A (zh) | 接口自动化测试方法及装置 | |
US10528456B2 (en) | Determining idle testing periods | |
CN112650688A (zh) | 自动化回归测试方法、关联设备以及计算机程序产品 | |
CN111367792A (zh) | 一种测试方法、装置、存储介质及电子设备 | |
CN113111000A (zh) | 持续集成自动化测试系统和方法、电子设备、存储介质 | |
CN110659870A (zh) | 业务审核测试方法、装置、设备及存储介质 | |
CN109992614B (zh) | 数据获取方法、装置和服务器 | |
CN111949493A (zh) | 一种基于推理应用的边缘ai服务器功耗测试方法及装置 | |
CN113742226B (zh) | 一种软件性能测试方法、装置、介质及电子设备 | |
RU2532714C2 (ru) | Способ получения данных при оценке ресурсов сети и устройство для осуществления способа | |
CN114155054A (zh) | 一种基于kafka的大数据报表统计的测试方法及其系统 | |
AU2020385369A1 (en) | Contact center call volume prediction | |
CN114968741B (zh) | 一种基于场景平台化的性能测试方法、系统、设备和介质 | |
CN103019927B (zh) | 一种性能测试方法和系统 | |
CN110618881B (zh) | 一种模拟消息队列的方法及系统 | |
CN112905445A (zh) | 一种基于日志的测试方法、装置及计算机系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |