一种软件压力测试方法及系统、电子设备与流程

文档序号:18464285发布日期:2019-08-17 02:18阅读:243来源:国知局
一种软件压力测试方法及系统、电子设备与流程

本发明涉及测试技术领域,特别涉及一种软件压力测试方法及系统、电子设备。



背景技术:

软件压力测试是软件测试工作中十分重要的一部分,软件压力测试的目的是了解软件能够承受的压力。比如,对于被测应用程序(application,app)而言,可以是app同时能够承受的用户访问量、最多支持多少用户同时访问某个功能等。而对于用户而言,从点击一个按钮、链接或发出一条指令开始,到app把结果以用户可以感知的形式展示出来为止,这个过程所消耗的时间是用户对软件性能的直观印象。用户量庞大的app在同一时间需要处理大量用户的访问请求,因此需要对app进行压力测试以保证用户在单点、高并发等情况下使用app也能够得到快速、正常的响应。

金融类app线上用户庞大,更加需要测试app在足够大的用户量并发下是否能够正常运行。但是,金融类app一般与一些外部环境系统(如银行、法院等)存在关联,这些关联方系统一般不为app的压力测试提供支持。此时,可以利用mock技术构建虚拟对象,通过虚拟对象模拟关联方系统,然而,目前的市面上的mock工具一般只能提供基本的模拟返回功能,且仅支持超文本传输协议(hypertexttransferprotocol,http),难以模拟app压力测试所需的测试环境。



技术实现要素:

为了解决相关技术中存在的mock工具难以模拟app压力测试所需的测试环境的问题,本发明提供了一种软件压力测试方法及系统、电子设备。

本发明实施例第一方面公开了一种软件压力测试方法,所述方法包括:

根据测试接口文档在mock系统中创建mock类对象,所述测试接口文档至少包括测试请求参数、返回参数、测试接口支持的通讯协议以及所述测试接口对应的会话对象;

根据所述测试接口的历史用户数据,确定所述测试接口的压力测试指标;

根据所述历史用户数据生成压力测试数据,并根据所述压力测试数据生成所述测试接口的调用请求;

以所述调用请求访问所述mock类对象,获得返回数据;

根据所述返回数据进行mock压力测试,以确定所述压力测试指标的数值,获得所述测试接口的压力测试结果。

作为一种可选的实施方式,在本发明实施例第一方面中,所述根据所述历史用户数据生成压力测试数据,包括:

滤除所述历史用户数据中的敏感数据,获得目标历史用户数据;

将所述目标历史用户数据导入测试系统中作为所述压力测试数据。

作为一种可选的实施方式,在本发明实施例第一方面中,所述根据所述历史用户数据生成压力测试数据,包括:

根据所述测试接口的预设业务规则逻辑,生成模拟用户数据;

将所述模拟用户数据导入测试系统中作为所述压力测试数据。

作为一种可选的实施方式,在本发明实施例第一方面中,所述以所述调用请求访问所述mock类对象,获得返回数据,包括:

根据所述mock类对象模拟的系统对应的系统类型确定响应延时;

以所述调用请求访问所述mock类对象,并在经过所述响应延时后获得所述返回数据。

作为一种可选的实施方式,在本发明实施例第一方面中,所述方法还包括:

将所述响应延时以及所述测试接口文档中的目标信息配置于web界面,所述目标信息至少包括所述返回参数和所述通讯协议;

检测用户在所述web界面输入的自定义返回参数、自定义通讯协议以及自定义响应延时中的至少一个;

根据检测到的所述自定义返回参数和/或所述自定义通讯协议更新所述测试接口文档,并根据更新的测试接口文档更新所述mock类对象;

根据检测到的所述自定义响应延时更新所述响应延时。

作为一种可选的实施方式,在本发明实施例第一方面中,所述以所述调用请求访问所述mock类对象,获得返回数据,包括:

以所述调用请求访问所述mock类对象,获取根据所述预设业务规则逻辑生成的所述mock类对象的模拟返回数据;

判断所述模拟返回数据的数据类型是否与所述返回参数对应的数据类型相同;若是,将所述模拟返回数据作为所述返回数据。

作为一种可选的实施方式,在本发明实施例第一方面中,所述以所述调用请求访问所述mock类对象,获得返回数据,包括:

检测所述调用请求的访问对象;

当所述访问对象为所述mock类对象时,以所述调用请求访问所述mock类对象,获得所述返回数据;

当所述访问对象为外部环境系统中的真实对象时,以所述调用请求访问所述真实对象,获得真实返回数据,并修改所述真实返回数据以获得所述返回数据。

本发明实施例第二方面公开了一种软件压力测试系统,所述系统包括:

创建单元,用于根据测试接口文档在mock系统中创建mock类对象,所述测试接口文档至少包括测试请求参数、返回参数、测试接口支持的通讯协议以及所述测试接口对应的会话对象;

确定单元,用于根据所述测试接口的历史用户数据,确定所述测试接口的压力测试指标;

生成单元,用于根据所述历史用户数据生成压力测试数据,并根据所述压力测试数据生成所述测试接口的调用请求;

访问单元,用于以所述调用请求访问所述mock类对象,获得返回数据;

测试单元,用于根据所述返回数据进行mock压力测试,以确定所述压力测试指标的数值,获得所述测试接口的压力测试结果。

本发明实施例第三方面公开了一种电子设备,所述电子设备包括:

处理器;

存储器,所述存储器上存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,实现本发明实施例第一方面公开的软件压力测试方法。

本发明实施例第四方面公开了一种计算机可读存储介质,其存储计算机程序,所述计算机程序使得计算机执行本发明实施例第一方面公开的软件压力测试方法。

本发明的实施例提供的技术方案可以包括以下有益效果:

本发明所提供的一种基于mock系统的压力测试方法包括如下步骤:根据测试接口文档在mock系统中创建mock类对象,该测试接口文档至少包括测试请求参数、返回参数、测试接口支持的通讯协议以及该测试接口对应的会话对象;根据测试接口的历史用户数据,确定该测试接口的压力测试指标;根据历史用户数据生成压力测试数据,并根据该压力测试数据生成测试接口的调用请求;以上述调用请求访问mock类对象,获得返回数据;根据该返回数据进行mock压力测试,以确定压力测试指标的数值,获得该测试接口的压力测试结果。

此方法下,通过测试接口文档在mock系统中创建mock类对象,mock类对象可以模拟外部环境系统,其中测试接口文档中包括了测试接口支持的通讯协议,即mock系统支持的通讯协议不限于http;根据测试接口的历史用户数据生成压力测试数据,并根据该压力测试数据生成测试接口的调用请求,以该调用请求访问mock类对象,即模拟用户行为,得到mock类对象的返回数据,再利用返回数据进行mock压力测试,即可以获得该测试接口的压力测试结果。可见,实施本发明实施例,能够基于mock系统模拟软件压力测试所需的测试环境,并完成软件压力测试。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本发明。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并于说明书一起用于解释本发明的原理。

图1是本发明实施例公开的一种装置的结构示意图;

图2是本发明实施例公开的一种软件压力测试方法的流程图;

图3是本发明实施例公开的另一种软件压力测试方法的流程图;

图4是本发明实施例公开的又一种软件压力测试方法的流程图;

图5是本发明实施例公开的一种软件压力测试系统的结构示意图;

图6是本发明实施例公开的另一种软件压力测试系统的结构示意图。

具体实施方式

这里将详细地对示例性实施例执行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。

实施例一

本发明的实施环境可以是电子设备,例如智能手机、平板电脑、台式电脑。

图1是本发明实施例公开的一种装置的结构示意图。装置100可以是上述电子设备。如图1所示,装置100可以包括以下一个或多个组件:处理组件102,存储器104,电源组件106,多媒体组件108,音频组件110,传感器组件114以及通信组件116。

处理组件102通常控制装置100的整体操作,诸如与显示,电话呼叫,数据通信,相机操作以及记录操作相关联的操作等。处理组件102可以包括一个或多个处理器118来执行指令,以完成下述的方法的全部或部分步骤。此外,处理组件102可以包括一个或多个模块,用于便于处理组件102和其他组件之间的交互。例如,处理组件102可以包括多媒体模块,用于以方便多媒体组件108和处理组件102之间的交互。

存储器104被配置为存储各种类型的数据以支持在装置100的操作。这些数据的示例包括用于在装置100上操作的任何应用程序或方法的指令。存储器104可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(staticrandomaccessmemory,简称sram),电可擦除可编程只读存储器(electricallyerasableprogrammableread-onlymemory,简称eeprom),可擦除可编程只读存储器(erasableprogrammablereadonlymemory,简称eprom),可编程只读存储器(programmablered-onlymemory,简称prom),只读存储器(read-onlymemory,简称rom),磁存储器,快闪存储器,磁盘或光盘。存储器104中还存储有一个或多个模块,用于该一个或多个模块被配置成由该一个或多个处理器118执行,以完成如下所示方法中的全部或者部分步骤。

电源组件106为装置100的各种组件提供电力。电源组件106可以包括电源管理系统,一个或多个电源,及其他与为装置100生成、管理和分配电力相关联的组件。

多媒体组件108包括在装置100和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(liquidcrystaldisplay,简称lcd)和触摸面板。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与触摸或滑动操作相关的持续时间和压力。屏幕还可以包括有机电致发光显示器(organiclightemittingdisplay,简称oled)。

音频组件110被配置为输出和/或输入音频信号。例如,音频组件110包括一个麦克风(microphone,简称mic),当装置100处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器104或经由通信组件116发送。在一些实施例中,音频组件110还包括一个扬声器,用于输出音频信号。

传感器组件114包括一个或多个传感器,用于为装置100提供各个方面的状态评估。例如,传感器组件114可以检测到装置100的打开/关闭状态,组件的相对定位,传感器组件114还可以检测装置100或装置100一个组件的位置改变以及装置100的温度变化。在一些实施例中,该传感器组件114还可以包括磁传感器,压力传感器或温度传感器。

通信组件116被配置为便于装置100和其他设备之间有线或无线方式的通信。装置100可以接入基于通信标准的无线网络,如wifi(wireless-fidelity,无线保真)。在本发明实施例中,通信组件116经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在本发明实施例中,通信组件116还包括近场通信(nearfieldcommunication,简称nfc)模块,用于以促进短程通信。例如,在nfc模块可基于射频识别(radiofrequencyidentification,简称rfid)技术,红外数据协会(infrareddataassociation,简称irda)技术,超宽带(ultrawideband,简称uwb)技术,蓝牙技术和其他技术来实现。

在示例性实施例中,装置100可以被一个或多个应用专用集成电路(applicationspecificintegratedcircuit,简称asic)、数字信号处理器、数字信号处理设备、可编程逻辑器件、现场可编程门阵列、控制器、微控制器、微处理器或其他电子元件实现,用于执行下述方法。

实施例二

请参阅图2,图2是本发明实施例公开的一种软件压力测试方法的流程示意图。如图2所示该软件压力测试方法可以包括以下步骤:

201、根据测试接口文档在mock系统中创建mock类对象,该测试接口文档至少包括测试请求参数、返回参数、测试接口支持的通讯协议以及测试接口对应的会话对象。

本发明实施例中,mock类对象主要是用于模拟关联方系统,即与测试对象相关联的外部环境系统。开发人员根据测试接口的各方面的特征构建测试接口文档,进而测试系统能够在测试系统中根据测试接口文档创建具有关联方系统各方面特征的mock类对象。

本发明实施例中,上述测试接口支持的通讯协议可以是http、超文本传输安全协议(hypertexttransferprotocolsecure,https)和传输控制协议/因特网互联协议(transmissioncontrolprotocol/internetprotocol,tcp/ip)等通讯协议中的至少一种。

202、根据测试接口的历史用户数据,确定该测试接口的压力测试指标。

本发明实施例中,上述压力测试指标可以为常规的测试指标,也可以基于用户体验等进行确定,具体可以包括每秒查询率(querypersecond,qps)、并发数、响应时间等,本发明实施例不作限定。

在本发明实施例中,软件压力测试系统可以根据测试接口的历史用户数据,确定该测试接口的压力测试指标,举例来说,历史用户数据能够反映qps、并发数、响应时间等压力测试指标是否达标,可以从中选取不达标的压力测试指标作为上述测试接口的压力测试指标。比如,规定qps的达标数值为120,并发数的达标数值为6000,响应时间的达标数值为2,如果历史用户数据反映出的qps的数值为150,并发数的数值为5500,响应时间的达标数值为1,那么,软件压力测试系统可以将并发数作为上述测试接口的压力测试指标。

203、根据历史用户数据生成压力测试数据,并根据该压力测试数据生成测试接口的调用请求。

本发明实施例中,利用历史用户数据(真实用户的数据)作为生成压力测试数据的生成依据,能够使得压力测试数据最大化的接近真实压力数据,进而测试接口的调用请求能够模拟用户的真实使用行为。

204、以上述调用请求访问mock类对象,获得返回数据。

205、根据返回数据进行mock压力测试,以确定上述压力测试指标的数值,获得测试接口的压力测试结果。

可以理解,上述返回数据为实情况下访问关联方系统后能够接收到的反馈数据。利用返回数据进行压力测试,能够获取测试接口的各项压力测试指标对应的具体数值,再分析各项压力测试指标对应的具体数值是否满足要求,即可判断该测试接口是否通过压力测试,若未通过压力测试,也可以获知具体是哪一些压力测试指标的具体数值未满足要求,为后续的改进提供参考。

作为一种可选的实施方式,步骤205可以包括:

根据返回数据进行mock压力测试,以确定上述压力测试指标的数值;判断压力测试指标的数值是否均达到预设的达标值;若是,判定测试接口的压力测试结果为通过;若否,判定测试接口的压力测试结果为不通过。

可选的,在执行步骤202之后,还可以包括以下步骤:获取各个压力测试指标的关联因素,关联因素指会导致压力测试指标的数值发生变化的因素,可以理解为压力测试指标的数值的因变量;

当判定测试接口的压力测试结果为不通过之后,输出目标压力测试指标的数值以及目标压力测试指标的关联因素以供参考,该目标压力测试指标为数值未达到预设的达标值的压力测试指标。

可见,实施本实施方式,能够在软件的压力测试结果为不通过时,输出其中数值预设的达标值的压力测试指标的关联因素,进而能够为开发人员提供如何优化该软件的参考信息。

可见,实施图2所描述的方法,通过测试接口文档在mock系统中创建mock类对象,mock类对象可以模拟外部环境系统,其中测试接口文档中包括了测试接口支持的通讯协议,即mock系统支持的通讯协议不限于http;根据压力测试数据生成测试接口的调用请求,以该调用请求访问mock类对象,即模拟用户行为,再利用mock类对象的返回数据进行mock压力测试,即可以获得该测试接口的压力测试结果。可见,实施图2所描述的方法,能够基于mock系统模拟软件压力测试所需的测试环境,进而完成软件压力测试。

实施例三

请参阅图3,图3是本发明实施例公开的另一种软件压力测试方法的流程示意图。如图3所示,该软件压力测试方法可以包括以下步骤:

301、根据测试接口文档在mock系统中创建mock类对象,该测试接口文档至少包括测试请求参数、返回参数、测试接口支持的通讯协议以及测试接口对应的会话对象。

302、根据测试接口的历史用户数据,确定该测试接口的压力测试指标。

303、滤除历史用户数据中的敏感数据,获得目标历史用户数据。

作为一种可选的实施方式,步骤303可以包括:

将历史用户数据中的敏感数据设置为隐藏模式,获得目标历史用户数据。

可见,实施本实施方式,既能够获得完整的真实用户数据,又能避免泄露用户的隐私信息,提高数据的安全性。

304、将目标历史用户数据导入测试系统中作为压力测试数据,并根据该压力测试数据生成测试接口的调用请求。

305、根据mock类对象模拟的系统对应的系统类型确定响应延时。

306、以上述调用请求访问mock类对象,并在经过响应延时后获得返回数据。

本发明实施例中,可以理解的是,由于外部环境系统的性能及架构各不相同,在实际的应用场景中,调用外部环境系统获得返回信息所需的时间也不相同。有些系统的返回信息的返回时间较长,而模拟该系统的mock类对象响应访问请求的速度是比较快的。因此,为了使得模拟的线上场景更接近实际的应用场景,可以根据mock类对象模拟的系统来设定响应延时。比如说,如果模拟的系统的反馈时间为20s,那么可以根据经验将mock类对象的响应延时设置为18s,结合mock类对象自身所需的响应时间,最终得到返回数据的时间也可以大概保持在20s左右。

307、根据返回数据进行mock压力测试,以确定上述压力测试指标的数值,获得测试接口的压力测试结果。

308、将响应延时以及测试接口文档中的目标信息配置于web界面,该目标信息至少包括返回参数和通讯协议。

309、检测用户在web界面输入的自定义返回参数、自定义通讯协议以及自定义响应延时中的至少一个。

本发明实施例中,用户可以在web界面上输入的自定义返回参数、自定义通讯协议以及自定义响应延时中的至少一个,以修改返回参数、通讯协议以及响应延时等信息,而无需修改代码,能够减少开发者的工作量。其中,线上场景的营造主要通过配置返回参数来实现。正常情况下调用外部环境系统,只会返回正常的参数,但是当外部环境系统出现异常时,也可能会产生大量的异常情况。用户可以在web界面上根据测试需求输入自定义返回参数和自定义通讯协议,从而可以产生不同的返回参数来测试系统是否能够处理异常情况。

310、根据检测到的自定义返回参数和/或自定义通讯协议更新测试接口文档,并根据更新的测试接口文档更新mock类对象。

311、根据检测到的自定义响应延时更新响应延时。

本发明实施例中,可以理解的是,在执行步骤309之后,若检测到用户在web界面输入目标信息(自定义返回参数和/或自定义通讯协议),执行步骤310;若检测到用户在web界面输入自定义响应延时,执行步骤311;若检测到用户在web界面输入目标信息(自定义返回参数和/或自定义通讯协议)以及自定义响应延时,执行步骤310以及步骤311。

可见,实施图3所描述的方法,通过测试接口文档在mock系统中创建mock类对象,mock类对象可以模拟外部环境系统,其中测试接口文档中包括了测试接口支持的通讯协议,即mock系统支持的通讯协议不限于http;根据压力测试数据生成测试接口的调用请求,以该调用请求访问mock类对象,即模拟用户行为,再利用mock类对象的返回数据进行mock压力测试,即可以获得该测试接口的压力测试结果。可见,能够基于mock系统模拟软件压力测试所需的测试环境,进而完成软件压力测试。此外,利用历史用户数据生成的压力测试数据是完全真实的,基本能够完整地反映真实的用户行为。此外,访问mock类对象时,在经过响应延时后获得返回数据,能够使得测试环境更接近真实情况。此外,用户能够在web界面修改响应延时、返回参数和通讯协议等参数,而无需修改代码,能够减少开发者的工作量。

实施例四

请参阅图4,图4是本发明实施例公开的又一种软件压力测试方法的流程示意图。如图4所示该软件压力测试方法可以包括以下步骤:

401、根据测试接口文档在mock系统中创建mock类对象,该测试接口文档至少包括测试请求参数、返回参数、测试接口支持的通讯协议以及测试接口对应的会话对象。

402、根据测试接口的历史用户数据,确定该测试接口的压力测试指标。

403、根据测试接口的预设业务规则逻辑,生成模拟用户数据。

可以理解,真实的用户数据是按照测试接口的业务规则逻辑产生的,因此,按照真实的业务规则逻辑为测试接口构建一个预设的业务规则逻辑,根据该预设的业务规则逻辑生成的模拟用户数据是能够替代真实的用户数据进行软件压力测试的,并且能够避免使用真实的用户数据带来的数据泄露的危险。

404、将模拟用户数据导入测试系统中作为压力测试数据,并根据该压力测试数据生成测试接口的调用请求。

405、检测调用请求的访问对象。

406、当访问对象为mock类对象时,以调用请求访问mock类对象,获得返回数据;

作为一种可选的实施方式,上述以调用请求访问mock类对象,获得返回数据,可以包括:

以调用请求访问mock类对象,获取根据预设业务规则逻辑生成的mock类对象的模拟返回数据;

判断模拟返回数据的数据类型是否与返回参数对应的数据类型相同;若是,将模拟返回数据作为返回数据。

本发明实施例中,判断模拟返回数据的数据类型是否与返回参数对应的数据类型相同,能够验证模拟返回数据是否符合真实的应用场景。

可见,实施本实施方式,能够利用预设业务规则逻辑生成mock类对象的模拟返回数据之后,并能够在验证该模拟返回数据的数据类型与测试接口文档中约定的数据类型相同时才将模拟返回数据导入测试系统中作为返回数据,保证了返回数据能够模拟真实的业务场景,进而提高测试结果的可信度。

407、当访问对象为外部环境系统中的真实对象时,以调用请求访问该真实对象,获得真实返回数据,并修改该真实返回数据以获得返回数据。

可以理解,在某些情况下,外部环境系统可以开发接口以支持测试,但是在外部环境系统正常的情况下,只能返回正常的数据,此时难以模拟外部环境系统的异常情况。针对该问题,本发明实施例可以修改真实对象的返回数据,以获得预期的数据用于测试。

408、根据返回数据进行mock压力测试,以确定上述压力测试指标的数值,获得测试接口的压力测试结果。

本发明实施例中,可以理解的是,执行步骤405之后,根据检测到的调用请求的访问对象的类型(mock类对象和外部环境系统中的真实对象)决定执行步骤406,亦或是步骤407。

可见,实施图4所描述的方法,通过测试接口文档在mock系统中创建mock类对象,mock类对象可以模拟外部环境系统,其中测试接口文档中包括了测试接口支持的通讯协议,即mock系统支持的通讯协议不限于http;根据压力测试数据生成测试接口的调用请求,以该调用请求访问mock类对象,即模拟用户行为,再利用mock类对象的返回数据进行mock压力测试,即可以获得该测试接口的压力测试结果。可见,能够基于mock系统模拟软件压力测试所需的测试环境,进而完成软件压力测试。此外,能够根据预设业务规则逻辑生成压力测试数据,而无需用到用户的真实数据,能够保护用户的隐私。此外,还能够根据预设业务规则逻辑生成mock类对象的返回数据。此外,能够修改真实返回数据以获得返回数据,进而能够模拟外部环境系统的异常情况,进而使得压力测试结果更具参考意义。

实施例五

请参阅图5,图5是本发明实施例公开的一种软件压力测试系统的结构示意图。如图5所示,该软件压力测试系统可以包括:创建单元501、确定单元502、生成单元503、访问单元504以及测试单元505,其中,

创建单元501,用于根据测试接口文档在mock系统中创建mock类对象,该测试接口文档至少包括测试请求参数、返回参数、测试接口支持的通讯协议以及测试接口对应的会话对象;

确定单元502,用于根据测试接口的历史用户数据,确定测试接口的压力测试指标;

生成单元503,用于根据历史用户数据生成压力测试数据,并根据该压力测试数据生成测试接口的调用请求;

访问单元504,用于以调用请求访问mock类对象,获得返回数据;

测试单元505,用于根据返回数据进行mock压力测试,以确定压力测试指标的数值,获得测试接口的压力测试结果。

作为一种可选的实施方式,测试单元505用于根据返回数据进行mock压力测试,以确定压力测试指标的数值,获得测试接口的压力测试结果的方式具体可以为:

测试单元505,用于根据返回数据进行mock压力测试,以确定上述压力测试指标的数值;判断压力测试指标的数值是否均达到预设的达标值;若是,判定测试接口的压力测试结果为通过;若否,判定测试接口的压力测试结果为不通过。

可选的,确定单元502根据测试接口的历史用户数据,确定测试接口的压力测试指标之后,还可以用于:

获取各个压力测试指标的关联因素,关联因素指会导致压力测试指标的数值发生变化的因素,可以理解为压力测试指标的数值的因变量;

测试单元505,还用于在测试单元505判定测试接口的压力测试结果为不通过之后,输出目标压力测试指标的数值以及目标压力测试指标的关联因素以供参考,该目标压力测试指标为数值未达到预设的达标值的压力测试指标。

可见,实施本实施方式,能够在软件的压力测试结果为不通过时,输出其中数值预设的达标值的压力测试指标的关联因素,进而能够为开发人员提供如何优化该软件参考信息。

可见,实施图5所描述的软件压力测试系统,通过测试接口文档在mock系统中创建mock类对象,mock类对象可以模拟外部环境系统,其中测试接口文档中包括了测试接口支持的通讯协议,即mock系统支持的通讯协议不限于http;根据压力测试数据生成测试接口的调用请求,以该调用请求访问mock类对象,即模拟用户行为,再利用mock类对象的返回数据进行mock压力测试,即可以获得该测试接口的压力测试结果。可见,能够基于mock系统模拟软件压力测试所需的测试环境,进而完成软件压力测试。

实施例六

请参阅图6,图6是本发明实施例公开的另一种软件压力测试系统的结构示意图。图6所示的软件压力测试系统是由图5所示的软件压力测试系统进行优化得到的。与图5所示的软件压力测试系统相比较,图6所示的软件压力测试系统还可以包括:配置单元506、检测单元507以及更新单元508,其中,

生成单元503用于根据历史用户数据生成压力测试数据的方式具体可以为:

生成单元503,用于滤除历史用户数据中的敏感数据,获得目标历史用户数据;将目标历史用户数据导入测试系统中作为压力测试数据。

作为一种可选的实施方式,生成单元503用于滤除历史用户数据中的敏感数据,获得目标历史用户数据的方式具体可以为:

生成单元503,用于将历史用户数据中的敏感数据设置为隐藏模式,获得目标历史用户数据。

可见,实施本实施方式,既能够获得完整的真实用户数据,又能避免泄露用户的隐私信息,提高数据的安全性。

访问单元504用于以调用请求访问mock类对象,获得返回数据的方式具体可以为:

访问单元504,用于根据mock类对象模拟的系统对应的系统类型确定响应延时;以该调用请求访问mock类对象,并在经过响应延时后获得返回数据。

配置单元506,用于将响应延时以及测试接口文档中的目标信息配置于web界面,该目标信息至少包括返回参数和通讯协议;

检测单元507,用于检测用户在web界面输入的自定义返回参数、自定义通讯协议以及自定义响应延时中的至少一个;

更新单元508,用于根据检测到的自定义返回参数和/或自定义通讯协议更新测试接口文档,并根据更新的测试接口文档更新mock类对象;

更新单元508,还用于根据检测到的自定义响应延时更新响应延时。

可见,实施图6所描述的软件压力测试系统,通过测试接口文档在mock系统中创建mock类对象,mock类对象可以模拟外部环境系统,其中测试接口文档中包括了测试接口支持的通讯协议,即mock系统支持的通讯协议不限于http;根据压力测试数据生成测试接口的调用请求,以该调用请求访问mock类对象,即模拟用户行为,再利用mock类对象的返回数据进行mock压力测试,即可以获得该测试接口的压力测试结果。可见,能够基于mock系统模拟软件压力测试所需的测试环境,进而完成软件压力测试。此外,利用历史用户数据生成的压力测试数据是完全真实的,基本能够完整地反映真实的用户行为。此外,访问mock类对象时,在经过响应延时后获得返回数据,能够使得测试环境更接近真实情况。此外,用户能够在web界面修改响应延时、返回参数和通讯协议等参数,而无需修改代码,能够减少开发者的工作量。

实施例七

请参阅图6,图6是本发明实施例公开的另一种软件压力测试系统的结构示意图。实施例七所示的软件压力测试系统是由实施例六所示的软件压力测试系统进行优化得到的。与实施例六所示的软件压力测试系统相比较,实施例七所示的软件压力测试系统中,

生成单元503用于根据历史用户数据生成压力测试数据的方式具体可以为:

生成单元503,用于根据测试接口的预设业务规则逻辑,生成模拟用户数据;将该模拟用户数据导入测试系统中作为压力测试数据。

访问单元504用于以调用请求访问mock类对象,获得返回数据的方式具体可以为:

访问单元504,用于检测调用请求的访问对象;当访问对象为mock类对象时,以调用请求访问mock类对象,获得返回数据;当访问对象为外部环境系统中的真实对象时,以调用请求访问该真实对象,获得真实返回数据,并修改真实返回数据以获得返回数据。

作为一种可选的实施方式,访问单元504用于以调用请求访问mock类对象,获得返回数据的方式具体可以为:

访问单元504,用于以调用请求访问mock类对象,获取根据预设业务规则逻辑生成的mock类对象的模拟返回数据;判断该模拟返回数据的数据类型是否与返回参数对应的数据类型相同;若是,将模拟返回数据作为返回数据。

可见,实施本实施方式,能够利用预设业务规则逻辑生成mock类对象的模拟返回数据之后,并能够在验证该模拟返回数据的数据类型与测试接口文档中约定的数据类型相同时才将模拟返回数据导入测试系统中作为返回数据,保证了返回数据能够模拟真实的业务场景,进而提高测试结果的可信度。

可见,实施实施例七所描述的软件压力测试系统,通过测试接口文档在mock系统中创建mock类对象,mock类对象可以模拟外部环境系统,其中测试接口文档中包括了测试接口支持的通讯协议,即mock系统支持的通讯协议不限于http;根据压力测试数据生成测试接口的调用请求,以该调用请求访问mock类对象,即模拟用户行为,再利用mock类对象的返回数据进行mock压力测试,即可以获得该测试接口的压力测试结果。可见,能够基于mock系统模拟软件压力测试所需的测试环境,进而完成软件压力测试。此外,能够根据预设业务规则逻辑生成压力测试数据,而无需用到用户的真实数据,能够保护用户的隐私。此外,还能够根据预设业务规则逻辑生成mock类对象的返回数据。此外,能够修改真实返回数据以获得返回数据,进而能够模拟外部环境系统的异常情况,进而使得压力测试结果更具参考意义。

本发明还提供一种电子设备,该电子设备包括:

处理器;

存储器,该存储器上存储有计算机可读指令,该计算机可读指令被处理器执行时,实现如前所示的软件压力测试方法。

该电子设备可以是图1所示装置100。

在一示例性实施例中,本发明还提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时,实现如前所示的软件压力测试方法。

应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围执行各种修改和改变。本发明的范围仅由所附的权利要求来限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1