一种接口压力性能测试方法、装置及电子设备与流程

文档序号:17690477发布日期:2019-05-17 21:00阅读:320来源:国知局
一种接口压力性能测试方法、装置及电子设备与流程

本发明涉及性能测试技术,尤其涉及一种接口压力性能测试方法、装置及电子设备。



背景技术:

随着计算机通信以及互联网技术的不断发展,开发的软件项目工程或软件也越来越多,在软件项目工程或软件中,接口压力性能测试是软件项目工程测试中的一项非常重要的测试环节。通过测试软件项目工程对外提供的接口压力收集测试性能数据,可以测试开发的软件项目工程中的各接口的开发是否正确,接口运行是否稳定等接口性能,以及,通过收集的测试性能数据,可以判断服务器端应用软件的性能能否维持原有的标准,验证在大并发的情况下,服务器端应用软件是否可以正常处理业务逻辑,从而可以优化服务器端程序,找到服务器端的性能瓶颈,进而改进提升其性能指标。

目前,接口压力性能测试一般采用Apache组织开发的基于Java的压力测试工具,例如,JMeter并结合一可扩展的持续集成引擎(Jenkins)进行性能测试。其中,JMeter用于对软件(软件项目工程)进行压力测试,最初被设计用于Web应用测试,后来扩展到其他测试领域,可用于测试静态和动态资源,例如:静态文件、Java小服务软件、通用网关接口(CGI,Common Gateway Interface)脚本、Java对象、数据库,文件传输协议(FTP,File Transfer Protocol)服务器等。Jenkins用于持续、自动地构建测试软件项目工程(软件),监控一些定时执行的任务。

在进行接口压力性能测试时,需要相关测试技术人员人工利用压力测试工具搭建测试环境,并在熟悉压力测试工具的前提下,编写压力测试脚本,在编写的压力测试脚本中构建接口压力性能测试数据等测试参数,然后,在搭建的测试环境中运行压力测试脚本,获取压力测试结果。

但该接口压力性能测试方法,由于采用人工方式进行测试,使得相关测试技术人员的工作量大,接口压力性能测试的成本较高、耗时时间较长,导致接口压力性能测试效率较低。



技术实现要素:

有鉴于此,本发明实施例提供一种接口压力性能测试方法、装置及电子设备,能够接口压力性能测试效率,以解决现有的接口压力性能测试方法中,采用人工方式进行测试使得测试成本较高、接口压力性能测试效率较低的问题。

第一方面,本发明实施例提供一种接口压力性能测试方法,包括:

启动预先设置的压力测试工具,搭建接口压力性能测试环境;

调用可扩展的持续集成引擎运行预先编辑的接口压力性能测试通用脚本,在呈现的网页界面中设置用于目标软件项目工程测试的接口压力性能参数,得到接口压力性能测试脚本;

调用搭建的接口压力性能测试环境,运行所述接口压力性能测试脚本。

结合第一方面,在第一方面的第一种实施方式中,所述启动预先设置的压力测试工具,搭建接口压力性能测试环境包括:

安装JMeter安装包;

依据所需接口压力性能测试的功能,安装对应的架包文件。

结合第一方面,在第一方面的第二种实施方式中,所述接口压力性能参数包括测试性能参数,所述测试性能参数包括:服务器IP、端口号、路径、压测的虚拟用户数、压测时间、测试数据等的一种或其任意组合。

结合第一方面的第二种实施方式,在第一方面的第三种实施方式中,所述接口压力性能参数还包括日志信息参数。

结合第一方面的第三种实施方式,在第一方面的第四种实施方式中,所述方法还包括:

调用已安装的图片生成架包文件,从运行所述接口压力性能测试脚本获取的接口压力性能测试结果中提取日志信息参数,生成对应的图表。

结合第一方面的第四种实施方式,在第一方面的第五种实施方式中,在所述生成对应的图表后,所述方法还包括:

接收横向对比指令或纵向对比指令,在当前生成图表的界面中,调整生成的图表位置和尺寸,加载横向对比指令或纵向对比指令映射的日志信息参数,得到与调整的图表横向对比或纵向对比的对照图表。

第二方面,本发明实施例提供一种接口压力性能测试装置,包括:测试环境搭建模块、测试脚本编辑模块以及测试脚本运行模块,其中,

测试环境搭建模块,用于启动预先设置的压力测试工具,搭建接口压力性能测试环境;

测试脚本编辑模块,用于调用可扩展的持续集成引擎运行预先编辑的接口压力性能测试通用脚本,在呈现的网页界面中设置用于目标软件项目工程测试的接口压力性能参数,得到接口压力性能测试脚本;

测试脚本运行模块,用于调用搭建的接口压力性能测试环境,运行所述接口压力性能测试脚本。

结合第二方面,在第二方面的第一种实施方式中,所述测试环境搭建模块包括:主功能搭建单元以及辅助功能搭建单元,其中,

主功能搭建单元,用于安装JMeter安装包;

辅助功能搭建单元,用于依据所需接口压力性能测试的功能,安装对应的架包文件。

结合第二方面,在第二方面的第二种实施方式中,所述接口压力性能参数包括测试性能参数,所述测试性能参数包括:服务器IP、端口号、路径、压测的虚拟用户数、压测时间、测试数据等的一种或其任意组合。

结合第二方面的第二种实施方式,在第二方面的第三种实施方式中,所述接口压力性能参数还包括日志信息参数。

结合第二方面的第三种实施方式,在第二方面的第四种实施方式中,所述装置还包括:

图表生成模块,用于调用已安装的图片生成架包文件,从运行所述接口压力性能测试脚本获取的接口压力性能测试结果中提取日志信息参数,生成对应的图表。

结合第二方面的第四种实施方式,在第二方面的第五种实施方式中,所述装置还包括:

对比模块,用于接收横向对比指令或纵向对比指令,在当前生成图表的界面中,调整生成的图表位置和尺寸,加载横向对比指令或纵向对比指令映射的日志信息参数,得到与调整的图表横向对比或纵向对比的对照图表。

第三方面,本发明实施例提供一种电子设备,所述电子设备包括:壳体、处理器、存储器、电路板和电源电路,其中,电路板安置在壳体围成的空间内部,处理器和存储器设置在电路板上;电源电路,用于为上述电子设备的各个电路或器件供电;存储器用于存储可执行程序代码;处理器通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行前述任一所述的接口压力性能测试方法。

本发明实施例提供的一种接口压力性能测试方法、装置及电子设备,通过启动预先设置的压力测试工具,搭建接口压力性能测试环境;调用可扩展的持续集成引擎运行预先编辑的接口压力性能测试通用脚本,在呈现的网页界面中设置用于目标软件项目工程测试的接口压力性能参数,得到接口压力性能测试脚本;调用搭建的接口压力性能测试环境,运行所述接口压力性能测试脚本,能够接口压力性能测试效率,以解决现有的接口压力性能测试方法中,采用人工方式进行测试使得测试成本较高、接口压力性能测试效率较低的问题。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。

图1为本发明的实施例一接口压力性能测试方法流程示意图;

图2为本发明的实施例二接口压力性能测试装置结构示意图;

图3为本发明电子设备一个实施例的结构示意图。

具体实施方式

下面结合附图对本发明实施例进行详细描述。

应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

图1为本发明的实施例一接口压力性能测试方法流程示意图,如图1所示,本实施例的方法可以包括:

步骤101,启动预先设置的压力测试工具,搭建接口压力性能测试环境;

本实施例中,作为一可选实施例,接口压力性能测试环境为JMeter测试环境,压力测试工具为自动化测试引擎,即JMeter压力测试工具。启动预先设置的压力测试工具,搭建接口压力性能测试环境包括:

A11,安装JMeter安装包;

A12,依据所需接口压力性能测试的功能,安装对应的架包文件。

本实施例中,在安装JMeter安装包后,搭建接口压力性能测试过程中需要使用到的架包文件。架包文件为一功能插件,即JMeter插件。

步骤102,调用可扩展的持续集成引擎运行预先编辑的接口压力性能测试通用脚本,在呈现的网页界面中设置用于目标软件项目工程测试的接口压力性能参数,得到接口压力性能测试脚本;

本实施例中,在接口压力性能测试中,各功能对应的测试具有相同或相似的测试流程,不同的是,不同功能对应的测试,具有不同的接口压力性能参数。因而,本实施例中,将各接口压力性能测试编辑成一可呈现网页(web)化界面的接口压力性能测试通用脚本,不同的接口压力性能参数利用变量进行标识。

本实施例中,通过接口压力性能测试通用脚本提供一网页(web)界面,可以在网页界面上填写接口压力性能测试所需的参数(接口压力性能参数)及参数值,将设置有接口压力性能参数值的接口压力性能测试通用脚本存储为接口压力性能测试脚本,以进行接口压力性能测试。

本实施例中,利用变量表示接口压力性能参数,可以灵活编辑接口压力性能测试脚本,有效降低单独编辑各功能对应的接口压力性能测试脚本的工作量,提升脚本编辑效率和质量。

本实施例中,作为一可选实施例,接口压力性能参数包括测试性能参数,测试性能参数包括:服务器IP、端口号、路径、压测的虚拟用户数(进程数或线程数)、压测时间、测试数据等的一种或其任意组合。其中,一虚拟用户占用一线程或一进程,服务器IP为需要进行压力测试的目标服务器的网际地址,可以为一个或多个,路径为接口请求串中的路径,例如http://127.0.0.1/b/?gv=13&ch=200001,其中/b/为路径。例如,对于新开发的功能,需要对带有新功能的版本自行压力测试,以评估性能是否满足性能指标,在网页界面设置的测试性能参数可以为:服务器IP=192.168.138.1、端口号=80、路径=/ui/、压测时间=1000、进程数=70、测试数据=海外数据。其中,路径为ui接口路径,为空时默认path_name=b,压测时间默认为秒,为空时默认为60秒,测试数据(data)为空时,默认data=ui_request_domestic,即国内请求串,如果data=ui_request_overseas,为海外请求串。

作为另一可选实施例,接口压力性能参数还包括日志信息参数,日志信息参数用于在显示接口压力性能测试结果时,显示的图标相关参数信息,包括:CPU信息、内存(Memory)信息、每秒的事务数等。

本实施例中,在得到接口压力性能测试脚本后,即已完成在Jenkins中建立用于JMeter接口压力性能测试的任务(Job)。

本实施例中,作为一可选实施例,得到的接口压力性能测试脚本支持作为下游任务,被其它任务所调用。例如,作为一Jenkins下游任务场景:每天上线版本需要先部署到预发布环境,因而,需要对预发布版本进行压力测试,在网页界面设置的测试性能参数(上游任务传递参数)可以为:服务器IP=192.168.138.2、端口号=80、待测试路径=/b/、压测时间=600、进程数=50、测试数据=国内数据;又例如,作为另一Jenkins下游任务场景:打包编译出新的版本,在自动化部署和回归以后,进行压力测试,在网页界面设置的测试性能参数(上游任务传递参数)可以为:服务器IP=192.168.138.3、端口号=80、路径=/b/、压测时间=600、进程数=50、测试数据=海外数据。

步骤103,调用搭建的接口压力性能测试环境运行所述接口压力性能测试脚本。

本实施例中,在搭建的接口压力性能测试环境中,导入编辑好的接口压力性能测试脚本并在Jenkins中运行该脚本,可以得到接口压力性能测试结果。作为一可选实施例,JMeter可以通过ant自动执行接口压力性能测试脚本,JMeter执行一系列的接口压力性能测试,并收集各服务器,例如,第一服务器以及第二服务器分别产生的接口压力性能测试结果,进行汇总后,将接口压力性能测试结果存储到上述的路径。

本实施例中,作为一可选实施例,该方法还包括:

调用已安装的图片生成架包文件,从运行所述接口压力性能测试脚本获取的接口压力性能测试结果中提取日志信息参数,生成对应的图表。

本实施例中,作为一可选实施例,图片生成架包文件为CMDRunner.jar文件,通过运行CMDRunner.jar文件,可以依据接口压力性能测试结果中的日志信息参数生成相应的图片或表格。

本实施例中,作为一可选实施例,调用Jenkins提供的应用编程接口(API)通知Jenkins编译工程,Jenkins编译工程自动触发JMeter插件(图片生成架包文件)依据上述路径加载接口压力性能测试结果。

本实施例中,作为另一可选实施例,在生成对应的图表后,该方法还包括:

接收横向对比指令或纵向对比指令,在当前生成图表的界面中,调整生成的图表位置和尺寸,加载横向对比指令或纵向对比指令映射的日志信息参数,得到与调整的图表横向对比或纵向对比的对照图表。

本实施例中,执行JMeter压力测试任务后,可以在Jenkins中展现测试相关的图表和报告,并可以依据用户指令,呈现相关的接口压力性能测试结果或预期的接口压力性能测试结果,与当前的接口压力性能测试结果进行横向对比、和/或,纵向对比。

本实施例中,web页面(界面)是在Jenkins中呈现的,Jenkins通过调用JMeter进行压测,根据在web界面输入的测试性能参数,进行接口压力性能测试(压测),压测完成后,根据预先写的脚本,将日志(log)信息生成图表展现出来。

本实施例的接口压力性能测试方法,通过启动预先设置的压力测试工具,搭建接口压力性能测试环境;调用可扩展的持续集成引擎运行预先编辑的接口压力性能测试通用脚本,在呈现的网页界面中设置用于目标软件项目工程测试的接口压力性能参数,得到接口压力性能测试脚本;调用搭建的接口压力性能测试环境,运行所述接口压力性能测试脚本。这样,通过预先搭建接口压力性能测试环境,编辑可呈现网页界面的接口压力性能测试通用脚本,在网页界面中设置接口压力性能参数,实现对接口压力性能参数的自动化测试,无需人工搭建接口压力性能测试环境以及编写接口压力性能测试脚本,也无需人工构造接口压力性能参数,直接在网页界面设置接口压力性能参数后就可以进行接口压力性能测试,有效降低了相关测试技术人员的工作量以及接口压力性能测试成本,使得接口压力性能测试耗时时间短,提升了接口压力性能测试效率;进一步地,测试完成后,可自动生成相关的图表和报告并进行横向以及纵向对比;而且,可供Jenkins其他job进行调用。

图2为本发明的实施例二接口压力性能测试装置结构示意图,如图2所示,本实施例的装置可以包括:测试环境搭建模块21、测试脚本编辑模块22以及测试脚本运行模块23,其中,

测试环境搭建模块21,用于启动预先设置的压力测试工具,搭建接口压力性能测试环境;

本实施例中,作为一可选实施例,接口压力性能测试环境为JMeter测试环境,压力测试工具为JMeter压力测试工具。

本实施例中,作为一可选实施例,测试环境搭建模块21包括:主功能搭建单元以及辅助功能搭建单元(图中未示出),其中,

主功能搭建单元,用于安装JMeter安装包;

辅助功能搭建单元,用于依据所需接口压力性能测试的功能,安装对应的架包文件。

测试脚本编辑模块22,用于调用可扩展的持续集成引擎运行预先编辑的接口压力性能测试通用脚本,在呈现的网页界面中设置用于目标软件项目工程测试的接口压力性能参数,得到接口压力性能测试脚本;

本实施例中,通过接口压力性能测试通用脚本提供一网页(web)界面,可以在网页界面上填写接口压力性能测试所需的参数(接口压力性能参数)及参数值,将用变量表示的接口压力性能参数值的接口压力性能测试通用脚本存储为接口压力性能测试脚本,以进行接口压力性能测试。

本实施例中,作为一可选实施例,接口压力性能参数包括测试性能参数,所述测试性能参数包括:服务器IP、端口号、路径、压测的虚拟用户数、压测时间、测试数据等的一种或其任意组合。

本实施例中,作为另一可选实施例,接口压力性能参数还包括日志信息参数。包括:CPU信息、内存信息、每秒的事务数等。

测试脚本运行模块23,用于调用搭建的接口压力性能测试环境,运行所述接口压力性能测试脚本。

本实施例中,在搭建的接口压力性能测试环境中,导入编辑好的接口压力性能测试脚本并在Jenkins中运行该脚本,可以得到接口压力性能测试结果。作为一可选实施例,JMeter可以通过ant自动执行接口压力性能测试脚本,JMeter执行一系列的接口压力性能测试,并收集各服务器,例如,第一服务器以及第二服务器分别产生的接口压力性能测试结果,进行汇总后,将接口压力性能测试结果存储到上述的路径。

本实施例中,作为一可选实施例,该装置还包括:

图表生成模块(图中未示出),用于调用已安装的图片生成架包文件,从运行所述接口压力性能测试脚本获取的接口压力性能测试结果中提取日志信息参数,生成对应的图表。

本实施例中,作为一可选实施例,图片生成架包文件为CMDRunner.jar文件。

本实施例中,作为另一可选实施例,该装置还包括:

对比模块(图中未示出),用于接收横向对比指令或纵向对比指令,在当前生成图表的界面中,调整生成的图表位置和尺寸,加载横向对比指令或纵向对比指令映射的日志信息参数,得到与调整的图表横向对比或纵向对比的对照图表。

本实施例的装置,可以用于执行图1所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。

尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。

应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。

在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。

本发明实施例还提供一种电子设备,所述电子设备包含前述任一实施例所述的装置。

图3为本发明电子设备一个实施例的结构示意图,可以实现本发明图1-2所示实施例的流程,如图3所示,上述电子设备可以包括:壳体31、处理器32、存储器33、电路板34和电源电路35,其中,电路板34安置在壳体31围成的空间内部,处理器32和存储器33设置在电路板34上;电源电路35,用于为上述电子设备的各个电路或器件供电;存储器33用于存储可执行程序代码;处理器32通过读取存储器33中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行前述任一实施例所述的接口压力性能测试方法。

处理器32对上述步骤的具体执行过程以及处理器32通过运行可执行程序代码来进一步执行的步骤,可以参见本发明图1-2所示实施例的描述,在此不再赘述。

该电子设备以多种形式存在,包括但不限于:

(1)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、数据通信为主要目标。这类终端包括:智能手机(例如iPhone)、多媒体手机、功能性手机,以及低端手机等。

(2)超移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,一般也具备移动上网特性。这类终端包括:PDA、MID和UMPC设备等,例如iPad。

(3)便携式娱乐设备:这类设备可以显示和播放多媒体内容。该类设备包括:音频、视频播放器(例如iPod),掌上游戏机,电子书,以及智能玩具和便携式车载导航设备。

(4)服务器:提供计算服务的设备,服务器的构成包括处理器、硬盘、内存、系统总线等,服务器和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。

(5)其他具有数据交互功能的电子设备。

本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。

为了描述的方便,描述以上装置是以功能分为各种单元/模块分别描述。当然,在实施本发明时可以把各单元/模块的功能在同一个或多个软件和/或硬件中实现。

通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

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