CN107832207A - 接口性能测试方法、装置、存储介质和计算机设备 - Google Patents
接口性能测试方法、装置、存储介质和计算机设备 Download PDFInfo
- Publication number
- CN107832207A CN107832207A CN201710970291.0A CN201710970291A CN107832207A CN 107832207 A CN107832207 A CN 107832207A CN 201710970291 A CN201710970291 A CN 201710970291A CN 107832207 A CN107832207 A CN 107832207A
- Authority
- CN
- China
- Prior art keywords
- test
- jmeter
- original
- scripts
- scene
- 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.)
- Pending
Links
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/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- 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/3664—Environments for testing or debugging software
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (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
本发明涉及一种接口性能测试方法、装置、存储介质和计算机设备。接收测试计划启动指令,测试计划中预先配置了原始JMeter测试脚本及与原始JMeter测试脚本相互关联的测试场景。根据启动指令从数据库中读取原始JMeter测试脚本,对原始JMeter测试脚本进行解析,将原始JMeter测试脚本中的测试场景分离出来。获取测试计划中与原始JMeter测试脚本相互关联的测试场景,用测试场景替换原始JMeter测试脚本中分离出来的测试场景,生成新的JMeter测试脚本,从而实现了JMeter测试脚本的重复利用,不需要每次都对JMeter测试脚本全部进行设置。将新的JMeter测试脚本发送至集成在Web服务器上的JMeter API进行测试,生成测试结果。在Web服务器上集成JMeter API,从而实现了将JMeter API接口进行封装得到的网页版接口性能测试工具。
Description
技术领域
本发明涉及网络数据处理技术领域,特别是涉及一种接口性能测试方法、装置、存储介质和计算机设备。
背景技术
性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。负载测试和压力测试都属于性能测试,两者可以结合进行。通过负载测试,确定在各种工作负载下系统的性能,目标是测试当负载逐渐增加时,系统各项性能指标的变化情况。压力测试是通过确定一个系统的瓶颈或者不能接收的性能点,来获得系统能提供的最大服务级别的测试。
传统的接口性能测试工具,一种为本地应用程序,采用本地应用程序方式的接口性能测试工具,进行接口性能测试时配置繁琐。另一种为云测试工具,即为网页版的,不需要配置,但对复杂业务逻辑的接口性能测试支持能力有限。
发明内容
基于此,有必要针对上述技术问题,提供一种配置简单且能够支持复杂业务的接口性能测试方法、装置、存储介质和计算机设备。
一种接口性能测试方法,所述方法包括:
接收测试计划启动指令,所述测试计划中预先配置了原始JMeter测试脚本及与所述原始JMeter测试脚本相互关联的测试场景;
根据所述启动指令从数据库中读取所述原始JMeter测试脚本,对所述原始JMeter测试脚本进行解析,将所述原始JMeter测试脚本中的测试场景分离出来;
获取所述测试计划中与所述原始JMeter测试脚本相互关联的测试场景,用所述测试场景替换所述原始JMeter测试脚本中分离出来的测试场景,生成新的JMeter测试脚本;
将所述新的JMeter测试脚本发送至集成在Web服务器上的JMeter API进行测试,生成测试结果。
在其中一个实施例中,在所述接收测试计划启动指令之前,包括:
接收并在数据库中存储用户上传的原始JMeter测试脚本及用户设置的测试场景,所述原始JMeter测试脚本包括原始JMeter测试内容和原始测试场景;
接收用户创建的测试计划,在所述测试计划中配置了原始JMeter测试脚本及与所述原始JMeter测试脚本相互关联的测试场景。
在其中一个实施例中,所述接收测试计划启动指令,包括:
接收由Web服务器上集成的Quartz框架定时发出的测试计划启动指令。
在其中一个实施例中,所述将所述新的JMeter测试脚本发送至集成在Web服务器上的JMeter API进行测试,生成测试结果,包括:
将所述新的JMeter测试脚本发送至集成在Web服务器上的JMeter API进行测试;
生成HTML格式的测试报告,将所述HTML格式的测试报告放置在Web页面以使用户可以访问。
在其中一个实施例中,所述将所述新的JMeter测试脚本发送至集成在Web服务器上的JMeter API进行测试,包括:
将所述新的JMeter测试脚本发送至集成在Web服务器上的JMeter API,以使JMeter API调用预先配置的远程负载机进行测试,所述远程负载机采用分布式部署。
在其中一个实施例中,所述对所述原始JMeter测试脚本进行解析,将所述原始JMeter测试脚本中的测试场景分离出来,包括:
通过DOM4J对所述原始JMeter测试脚本进行解析;
从所述原始JMeter测试脚本中解析出原始JMeter测试内容和原始测试场景,将所述原始JMeter测试脚本中的测试场景分离出来。
一种接口性能测试装置,所述装置包括:
测试计划启动模块,用于接收测试计划启动指令,所述测试计划中预先配置了原始JMeter测试脚本及与所述原始JMeter测试脚本相互关联的测试场景;
原始JMeter测试脚本解析模块,用于根据所述启动指令从数据库中读取所述原始JMeter测试脚本,对所述原始JMeter测试脚本进行解析,将所述原始JMeter测试脚本中的测试场景分离出来;
新的JMeter测试脚本生成模块,用于获取所述测试计划中与所述原始JMeter测试脚本相互关联的测试场景,用所述测试场景替换所述原始JMeter测试脚本中分离出来的测试场景,生成新的JMeter测试脚本;
JMeter测试模块,用于将所述新的JMeter测试脚本发送至集成在Web服务器上的JMeter API进行测试,生成测试结果。
在其中一个实施例中,所述装置还包括:
原始JMeter测试脚本上传模块,用于接收并在数据库中存储用户上传的原始JMeter测试脚本及用户设置的测试场景,所述原始JMeter测试脚本包括原始JMeter测试内容和原始测试场景;
测试计划创建模块,用于接收用户创建的测试计划,在所述测试计划中配置了原始JMeter测试脚本及与所述原始JMeter测试脚本相互关联的测试场景。一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现以下步骤:
接收测试计划启动指令,所述测试计划中预先配置了原始JMeter测试脚本及与所述原始JMeter测试脚本相互关联的测试场景;
根据所述启动指令从数据库中读取所述原始JMeter测试脚本,对所述原始JMeter测试脚本进行解析,将所述原始JMeter测试脚本中的测试场景分离出来;
获取所述测试计划中与所述原始JMeter测试脚本相互关联的测试场景,用所述测试场景替换所述原始JMeter测试脚本中分离出来的测试场景,生成新的JMeter测试脚本;
将所述新的JMeter测试脚本发送至集成在Web服务器上的JMeter API进行测试,生成测试结果。
一种计算机设备,所述计算机设备包括存储器,处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
接收测试计划启动指令,所述测试计划中预先配置了原始JMeter测试脚本及与所述原始JMeter测试脚本相互关联的测试场景;
根据所述启动指令从数据库中读取所述原始JMeter测试脚本,对所述原始JMeter测试脚本进行解析,将所述原始JMeter测试脚本中的测试场景分离出来;
获取所述测试计划中与所述原始JMeter测试脚本相互关联的测试场景,用所述测试场景替换所述原始JMeter测试脚本中分离出来的测试场景,生成新的JMeter测试脚本;
将所述新的JMeter测试脚本发送至集成在Web服务器上的JMeter API进行测试,生成测试结果。
上述接口性能测试方法、装置、存储介质和计算机设备,Web服务器接收待测试计划启动指令,测试计划中预先配置了原始JMeter测试脚本及与原始JMeter测试脚本相互关联的测试场景。根据启动指令从数据库中读取原始JMeter测试脚本,对原始JMeter测试脚本进行解析,将原始JMeter测试脚本中的测试场景分离出来。获取测试计划中与原始JMeter测试脚本相互关联的测试场景,用测试场景替换原始JMeter测试脚本中分离出来的测试场景,生成新的JMeter测试脚本。从而实现了JMeter测试脚本的重复利用,不需要每次都对JMeter测试脚本全部进行设置。将新的JMeter测试脚本发送至集成在Web服务器上的JMeter API进行测试,生成测试结果。在Web服务器上集成JMeter API,从而实现了将JMeter API接口进行封装得到的网页版接口性能测试工具,解决了传统本地接口性能测试方法配置繁琐的问题,也解决了传统云测试方法对复杂业务的支持能力有限的问题。
附图说明
图1为一个实施例中接口性能测试方法的应用环境图;
图2为一个实施例中Web服务器的内部结构图;
图3为一个实施例中接口性能测试方法的流程图;
图4为另一个实施例中接口性能测试方法的流程图;
图5为一个实施例中Web版性能测试平台的脚本管理页面;
图6为图5中的测试脚本上传页面;
图7为一个实施例中Web版性能测试平台的场景管理页面;
图8为图7中的测试场景设置页面;
图9为一个实施例中Web版性能测试平台的测试计划管理页面;
图10为图9中的测试计划新增页面;
图11为一个实施例中Web版性能测试平台的启动测试页面;
图12为一个实施例中Web版性能测试平台的图标类测试报告展示页面;
图13为一个实施例中接口性能测试装置的结构示意图;
图14为另一个实施例中接口性能测试装置的结构示意图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明的具体实施方式做详细的说明。在下面的描述中阐述了很多具体细节以便于充分理解本发明。但是本发明能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似改进,因此本发明不受下面公开的具体实施的限制。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
本发明实施例提供的接口性能测试方法可应用于如图1所示的环境中。参考图1所示,终端102通过网络与Web服务器104连接,Web服务器104通过网络与远程负载机106连接。用户通过安装了Web版性能测试平台的终端,向Web服务器上传测试脚本、设置测试场景,并新建测试计划之后,启动测试计划进行接口性能测试。Web服务器上集成了JMeter API接口,用于接口性能测试。启动测试计划之后,JMeter API接口会调用预先配置的远程负载机,由远程负载机进行测试。远程负载机可以为多台,且采用分布式部署。
在一个实施例中,如图2所示,还提供了一种Web服务器,该Web服务器包括通过系统总线连接的处理器、非易失性存储介质、内存储器、网络接口及JMeter API(ApplicationProgramming Interface,应用程序编程接口)接口。该JMeter API接口封装后集成在Web服务器上,通过该JMeter API接口可调用外部的Jar包从而完成接口性能测试。该非易失性存储介质中存储有操作系统和一种接口性能测试装置,该接口性能测试装置用于执行一种接口性能测试方法。该处理器用于提高计算和控制能力,支撑整个服务器的运行。内存储器用于为非易失性存储介质中的接口性能测试装置的运行提供环境,该内存储器中可储存有计算机可读指令,该计算机可读指令被处理器执行时,可使得该处理器执行一种接口性能测试方法。网络接口用于与终端进行网络通信,接收或发送数据,例如接收用户通过终端上传的原始JMeter测试脚本及用户设置的测试场景,接收用户创建的测试计划,接收用户发送的测试计划启动指令等。
在一个实施例中,如图3所示,提供了一种接口性能测试方法,以该方法应用于图1中的Web服务器为例进行说明,包括:
步骤302,接收测试计划启动指令,测试计划中预先配置了原始JMeter测试脚本及与原始JMeter测试脚本相互关联的测试场景。
Apache JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域。它可以用于测试静态和动态资源,例如静态文件、Java小服务程序、CGI(Common Gateway Interface,用于连接主页和应用程序的接口)脚本、Java对象、数据库、FTP(File Transfer Protocol,文件传输协议)服务器等等。JMeter本身就是一个强大的性能测试工具,本身有GUI操作界面,并且功能比云测试工具强大的多,支持编写java脚本、调用第三方jar和IF、FOR逻辑循环控制。各种web项目的性能测试都能用它完成。
测试场景即设置本次测试的循环次数、并发数量、执行时间等,这些设置好的数据保存在数据库中。
用户通过终端上的Web网站上传原始JMeter测试脚本,并且在Web网站上设置不同的测试场景。上传的原始JMeter测试脚本和设置的不同的测试场景是保存在数据库中。原始JMeter测试脚本包括原始JMeter测试内容和原始测试场景。用户再通过终端上的Web网站创建不同的测试计划保存至测试计划列表中,每一个测试计划中都将原始JMeter测试脚本与对应的测试场景进行了关联,将新建的测试计划也保存至数据库中。用户在测试计划列表中启动某个测试计划时,可以通过用户手动启动测试计划,也可以由系统定时自动启动测试计划。。Web网站对应的Web服务器接收到用户通过终端发送的测试计划启动指令。
步骤304,根据启动指令从数据库中读取原始JMeter测试脚本,对原始JMeter测试脚本进行解析,将原始JMeter测试脚本中的测试场景分离出来。
JMeter测试脚本包括JMeter测试内容和测试场景。因此,原始JMeter测试脚本包括原始JMeter测试内容和原始测试场景。JMeter测试脚本中测试场景和测试内容都保存在同一个xml(可扩展标识语言)文件内的。当测试内容不变,而只是改变测试场景时,则为避免每个不同的测试场景都要重新生成一份测试脚本,因此先对原始JMeter测试脚本进行解析。将原始JMeter测试脚本中的测试内容和测试场景分离,便于替换测试场景,生成新的测试脚本。
步骤306,获取测试计划中与原始JMeter测试脚本相互关联的测试场景,用测试场景替换原始JMeter测试脚本中分离出来的测试场景,生成新的JMeter测试脚本。
所启动的测试计划中预先配置了原始JMeter测试脚本及与原始JMeter测试脚本相互关联的测试场景。因此,Web服务器可以从用户启动的测试计划中获取对应的测试场景,用该测试场景替换原始JMeter测试脚本中分离出来的测试场景。原始JMeter测试脚本包括原始JMeter测试内容和原始测试场景。再由原始测试内容和更新后的测试场景组合生成新的JMeter测试脚本。
步骤308,将新的JMeter测试脚本发送至集成在Web服务器上的JMeter API进行测试,生成测试结果。
Web服务器上集成了JMeter API,从而实现了将JMeter API接口进行封装得到的网页版接口性能测试工具。因为JMeter本身就是一个强大的性能测试工具,具有GUI操作界面,并且功能比云测试工具强大的多,解决了传统本地接口性能测试方法配置繁琐的问题,也解决了传统云测试方法对复杂业务的支持能力有限的问题。Web服务器再将新的JMeter测试脚本发送至集成在Web服务器上的JMeter API进行测试,生成测试结果。具体的,在执行测试时,JMeter API会调用预先配置的远程负载机,由负载机进行测试。
本实施例中,Web服务器接收待测试计划启动指令,测试计划中预先配置了原始JMeter测试脚本及与原始JMeter测试脚本相互关联的测试场景。根据启动指令从数据库中读取原始JMeter测试脚本,对原始JMeter测试脚本进行解析,将原始JMeter测试脚本中的测试场景分离出来。获取测试计划中与原始JMeter测试脚本相互关联的测试场景,用测试场景替换原始JMeter测试脚本中分离出来的测试场景,生成新的JMeter测试脚本。从而实现了JMeter测试脚本的重复利用,不需要每次都对JMeter测试脚本全部进行设置。将新的JMeter测试脚本发送至集成在Web服务器上的JMeter API进行测试,生成测试结果。在Web服务器上集成JMeter API,从而实现了将JMeter API接口进行封装得到的网页版接口性能测试工具,解决了传统本地接口性能测试方法配置繁琐的问题,也解决了传统云测试方法对复杂业务的支持能力有限的问题。
在一个实施例中,如图4所示,在接收测试计划启动指令之前,包括:
步骤402,接收并在数据库中存储用户上传的原始JMeter测试脚本及用户设置的测试场景,原始JMeter测试脚本包括原始JMeter测试内容和原始测试场景。
用户通过终端上的Web网站上传原始JMeter测试脚本,并且在Web网站上设置不同的测试场景。Web网站对应的Web服务器接收并在数据库中存储用户上传的原始JMeter测试脚本及用户设置的测试场景。原始JMeter测试脚本包括原始JMeter测试内容和原始测试场景。
步骤404,接收用户创建的测试计划,在测试计划中配置了原始JMeter测试脚本及与原始JMeter测试脚本相互关联的测试场景。
用户再通过终端上的Web网站创建不同的测试计划保存至测试计划列表中,每一个测试计划中都将原始JMeter测试脚本与对应的测试场景进行了关联。Web服务器接收用户创建的测试计划,并将新建的测试计划也保存至数据库中。
在本实施例中,用户预先上传了原始JMeter测试脚本,并设置了测试场景,且新建了测试计划。每一个测试计划中将原始JMeter测试脚本与对应的测试场景进行了关联。这样在测试计划中就实现了原始JMeter测试脚本与对应的测试场景的一一对应。因此为后文中对原始JMeter测试脚本进行解析,将原始JMeter测试脚本中的测试场景分离出来。然后将对应的测试场景替换原始JMeter测试脚本中的原始测试场景做了准备。
在一个实施例中,接收测试计划启动指令,包括:接收由Web服务器上集成的Quartz框架定时发出的测试计划启动指令。
Quartz是一个完全由Java编写的开源任务调度的框架,通过触发器设置作业定时运行规则,控制作业的运行时间。其中Quartz集群通过故障切换和负载平衡的功能,能给调度器带来高可用性和伸缩性。主要用来执行定时任务,如:定时发送信息、定时生成报表等。Quartz框架主要核心组件包括调度器、触发器、作业。调度器作为作业的总指挥,触发器作为作业的操作者,作业为应用的功能模块。
在本实施例中,在Web服务器上集成了Quartz框架,可通过定时向Web服务器发出测试计划启动指令。Web服务器接收该测试计划启动指令,然后定时启动相应的测试计划,执行测试计划生成测试结果。实现了测试的无人值守、自动定时测试,可以把非上班时间利用起来,有效的避免资源使用的冲突和干扰,又可以充分利用时间提高效率。
在一个实施例中,将新的JMeter测试脚本发送至集成在Web服务器上的JMeterAPI进行测试,生成测试结果,包括:将新的JMeter测试脚本发送至集成在Web服务器上的JMeter API进行测试;生成HTML格式的测试报告,将HTML格式的测试报告放置在Web页面以使用户可以访问。
Web服务器将新的JMeter测试脚本发送至集成在Web服务器上的JMeter API进行测试,自动生成HTML格式的测试报告。且将所生成的HTML格式的测试报告放置在Web网站的指定位置。用户随时只需要访问这个Web网站,并且点击HTML格式的测试报告即可以获取到完整的测试报告。
在本实施例中,传统的测试方法所生成的测试结果都是保存在测试机本地,在其他用户需要查看时只能通过测试人员发送邮件,或者用户需要使用版本管理工具SVN、Git等进行管理以供查看。SVN是Subversion的简称,是一个开放源代码的版本控制系统。Git是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。本方法所生成的测试报告为HTML(Hyper Text Markup Language,超文本标记语言)格式文件,即为静态文件,可以通过登录Web网站即可获取,汇报工作和对比优化结果都很方便,即节省了测试人员整理报告、编写邮件的时间又避免了邮件被淹没查找的时间。因此解决了上述两种传统方法不变查看测试报告的问题。
在一个实施例中,将新的JMeter测试脚本发送至集成在Web服务器上的JMeterAPI进行测试,包括:将新的JMeter测试脚本发送至集成在Web服务器上的JMeter API,以使JMeter API调用预先配置的远程负载机进行测试,远程负载机采用分布式部署。
在本实施例中,Web服务器将新的JMeter测试脚本发送至集成在Web服务器上的JMeter API进行测试。具体的,在执行测试时,JMeter API会调用预先配置的远程负载机,由远程负载机进行测试。远程负载机可以为多台,且采用分布式部署。即JMeter API可以调用多台远程负载机进行同时测试,且远程负载机可以无限扩展,从而实现高并发测试。预先需要对远程负载机进行配置,具体为,需要为远程负载机配置负载机环境、安装客户端程序。例如,为远程负载机安装Java运行环境和JMeter程序。本实施例中,集成了JMeter API的Web服务器对远程负载机实现了主控功能,对远程负载机进行调度。这样就可以在Web网站上对远程负载机实现了主控功能。而传统的JMeter程序做分布式测试时,采用一台安装了JMeter程序的负载机只负责调用,实现主控功能。其他的安装了JMeter程序的负载机实际执行性能测试。
在一个实施例中,对原始JMeter测试脚本进行解析,将原始JMeter测试脚本中的测试场景分离出来,包括:通过DOM4J对原始JMeter测试脚本进行解析;从原始JMeter测试脚本中解析出原始JMeter测试内容和原始测试场景,将原始JMeter测试脚本中的测试场景分离出来。
在本实施例中,JMeter测试脚本中测试场景和测试内容都保存在同一个xml(可扩展标识语言)文件内的。DOM4J可以对xml文件进行灵活的增删改查和导航,所以采用DOM4J对原始JMeter测试脚本进行解析,将原始JMeter测试脚本中的原始测试内容和原始测试场景分离。
在一个实施例中,提供了一种接口性能测试方法,该方法应用于如图1所示的环境中进行举例说明。
如图5所示,为本发明实施例对应的Web版性能测试平台的脚本管理页面。Web版性能测试平台对应的Web服务器上集成了JMeter API接口,用于接口性能测试。在脚本列表中显示了多个用户预先上传的原始JMeter测试脚本。用户点击新增脚本即可跳转至如图6所示的页面,可以在该页面设置所属公司、部门及系统等信息,选择需要上传的原始JMeter测试脚本完成上传。上传后的原始JMeter测试脚本都保存至服务器的指定位置。
进一步地,用户在上传了原始JMeter测试脚本之后,如图7所示,为本发明实施例对应的Web版性能测试平台的场景管理页面。在场景列表中显示了多个用户预先设置的测试场景。用户点击新增场景即可跳转至如图8所示的页面,可以在该页面设置并发数、循环次数、线程启动时间等信息。新增后的测试场景都保存至服务器的指定位置。
进一步地,如图9所示,为本发明实施例对应的Web版性能测试平台的测试计划管理页面。在测试计划列表中显示了多个用户预先设置的测试计划。用户点击新增计划即可跳转至如图10所示的页面,可以在该页面设置测试计划的名称、所属公司、所属系统、为测试计划配置的测试脚本和测试场景。设置后的测试计划都保存至服务器的指定位置。
进一步地,在用户已经上传了测试脚本、设置了测试场景,并新建了测试计划之后,启动一个测试计划进行接口性能测试。具体的,可以在图9所示的测试计划列表中选中要执行测试的测试计划,点击执行按钮。如图11所示,会弹出选择负载机和设置执行时间的弹窗,选择后确认即开始按照设置的时间执行测试了。具体的,所启动的测试计划中预先配置了原始JMeter测试脚本及与原始JMeter测试脚本相互关联的测试场景。因此,Web服务器可以从用户启动的测试计划中获取对应的测试场景,用该测试场景替换原始JMeter测试脚本中分离出来的测试场景。原始JMeter测试脚本包括原始JMeter测试内容和原始测试场景。再由原始测试内容和更新后的测试场景组合生成新的JMeter测试脚本。将新的JMeter测试脚本发送至集成在Web服务器上的JMeter API,以使JMeter API调用预先配置的远程负载机进行测试。
进一步地,测试执行结束后,在测试报告列表显示输出的各类报告,包括本发明实施例所生成的HTML格式的测试报告,HTML格式的测试报告放置在Web页面以使用户可以访问。当然,还包括一些根据公司需求对数据进行数据分析之后,得到的图标类报告,如图12所示。
在一个实施例中,如图13所示,还提供了一种接口性能测试装置500,该装置包括:测试计划启动模块502、原始JMeter测试脚本解析模块504、新的JMeter测试脚本生成模块506及JMeter测试模块508。其中,
测试计划启动模块502,用于接收测试计划启动指令,测试计划中预先配置了原始JMeter测试脚本及与原始JMeter测试脚本相互关联的测试场景。
原始JMeter测试脚本解析模块504,用于根据启动指令从数据库中读取原始JMeter测试脚本,对原始JMeter测试脚本进行解析,将原始JMeter测试脚本中的测试场景分离出来。
新的JMeter测试脚本生成模块506,用于获取测试计划中与原始JMeter测试脚本相互关联的测试场景,用测试场景替换原始JMeter测试脚本中分离出来的测试场景,生成新的JMeter测试脚本。
JMeter测试模块508,用于将新的JMeter测试脚本发送至集成在Web服务器上的JMeter API进行测试,生成测试结果。
在一个实施例中,如图14所示,装置500还包括:
原始JMeter测试脚本上传模块510,用于接收并在数据库中存储用户上传的原始JMeter测试脚本及用户设置的测试场景,原始JMeter测试脚本包括原始JMeter测试内容和原始测试场景;
测试计划创建模块512,用于接收用户创建的测试计划,在测试计划中配置了原始JMeter测试脚本及与原始JMeter测试脚本相互关联的测试场景。
在一个实施例中,测试计划启动模块502还用于接收由Web服务器上集成的Quartz框架定时发出的测试计划启动指令。
在一个实施例中,JMeter测试模块508还用于将新的JMeter测试脚本发送至集成在Web服务器上的JMeter API进行测试;生成HTML格式的测试报告,将HTML格式的测试报告放置在Web页面以使用户可以访问。
在一个实施例中,JMeter测试模块508还用于将新的JMeter测试脚本发送至集成在Web服务器上的JMeter API,以使JMeter API调用预先配置的远程负载机进行测试,负载机采用分布式部署。
在一个实施例中,原始JMeter测试脚本解析模块510还用于通过DOM4J对原始JMeter测试脚本进行解析;从原始JMeter测试脚本中解析出原始JMeter测试内容和原始测试场景,将原始JMeter测试脚本中的测试场景分离出来。
在一个实施例中,还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现以下步骤:接收测试计划启动指令,测试计划中预先配置了原始JMeter测试脚本及与原始JMeter测试脚本相互关联的测试场景;根据启动指令从数据库中读取原始JMeter测试脚本,对原始JMeter测试脚本进行解析,将原始JMeter测试脚本中的测试场景分离出来;获取测试计划中与原始JMeter测试脚本相互关联的测试场景,用测试场景替换原始JMeter测试脚本中分离出来的测试场景,生成新的JMeter测试脚本;将新的JMeter测试脚本发送至集成在Web服务器上的JMeter API进行测试,生成测试结果。
在一个实施例中,上述程序被处理器执行时还实现以下步骤:接收并在数据库中存储用户上传的原始JMeter测试脚本及用户设置的测试场景,原始JMeter测试脚本包括原始JMeter测试内容和原始测试场景;接收用户创建的测试计划,在测试计划中配置了原始JMeter测试脚本及与原始JMeter测试脚本相互关联的测试场景。
在一个实施例中,上述程序被处理器执行时还实现以下步骤:接收由Web服务器上集成的Quartz框架定时发出的测试计划启动指令。
在一个实施例中,上述程序被处理器执行时还实现以下步骤:将新的JMeter测试脚本发送至集成在Web服务器上的JMeter API进行测试;生成HTML格式的测试报告,将HTML格式的测试报告放置在Web页面以使用户可以访问。
在一个实施例中,上述程序被处理器执行时还实现以下步骤:将新的JMeter测试脚本发送至集成在Web服务器上的JMeter API,以使JMeter API调用预先配置的远程负载机进行测试,负载机采用分布式部署。
在一个实施例中,上述程序被处理器执行时还实现以下步骤:通过DOM4J对原始JMeter测试脚本进行解析;从原始JMeter测试脚本中解析出原始JMeter测试内容和原始测试场景,将原始JMeter测试脚本中的测试场景分离出来。
在一个实施例中,还提供了一种计算机设备,该计算机设备包括存储器,处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:接收测试计划启动指令,测试计划中预先配置了原始JMeter测试脚本及与原始JMeter测试脚本相互关联的测试场景;根据启动指令从数据库中读取原始JMeter测试脚本,对原始JMeter测试脚本进行解析,将原始JMeter测试脚本中的测试场景分离出来;获取测试计划中与原始JMeter测试脚本相互关联的测试场景,用测试场景替换原始JMeter测试脚本中分离出来的测试场景,生成新的JMeter测试脚本;将新的JMeter测试脚本发送至集成在Web服务器上的JMeter API进行测试,生成测试结果。
在一个实施例中,上述处理器执行计算机程序时还实现以下步骤:接收并在数据库中存储用户上传的原始JMeter测试脚本及用户设置的测试场景,原始JMeter测试脚本包括原始JMeter测试内容和原始测试场景;接收用户创建的测试计划,在测试计划中配置了原始JMeter测试脚本及与原始JMeter测试脚本相互关联的测试场景。
在一个实施例中,上述处理器执行计算机程序时还实现以下步骤:接收由Web服务器上集成的Quartz框架定时发出的测试计划启动指令。
在一个实施例中,上述处理器执行计算机程序时还实现以下步骤:将新的JMeter测试脚本发送至集成在Web服务器上的JMeter API进行测试;生成HTML格式的测试报告,将HTML格式的测试报告放置在Web页面以使用户可以访问。
在一个实施例中,上述处理器执行计算机程序时还实现以下步骤:将新的JMeter测试脚本发送至集成在Web服务器上的JMeter API,以使JMeter API调用预先配置的远程负载机进行测试,负载机采用分布式部署。
在一个实施例中,上述处理器执行计算机程序时还实现以下步骤:通过DOM4J对原始JMeter测试脚本进行解析;从原始JMeter测试脚本中解析出原始JMeter测试内容和原始测试场景,将原始JMeter测试脚本中的测试场景分离出来。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,程序可存储于一非易失性的计算机可读取存储介质中,如本发明实施例中,该程序可存储于计算机系统的存储介质中,并被该计算机系统中的至少一个处理器执行,以实现包括如上述各方法的实施例的流程。其中,存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种接口性能测试方法,所述方法包括:
接收测试计划启动指令,所述测试计划中预先配置了原始JMeter测试脚本及与所述原始JMeter测试脚本相互关联的测试场景;
根据所述启动指令从数据库中读取所述原始JMeter测试脚本,对所述原始JMeter测试脚本进行解析,将所述原始JMeter测试脚本中的测试场景分离出来;
获取所述测试计划中与所述原始JMeter测试脚本相互关联的测试场景,用所述测试场景替换所述原始JMeter测试脚本中分离出来的测试场景,生成新的JMeter测试脚本;
将所述新的JMeter测试脚本发送至集成在Web服务器上的JMeter API进行测试,生成测试结果。
2.根据权利要求1所述的方法,其特征在于,在所述接收测试计划启动指令之前,包括:
接收并在数据库中存储用户上传的原始JMeter测试脚本及用户设置的测试场景,所述原始JMeter测试脚本包括原始JMeter测试内容和原始测试场景;
接收用户创建的测试计划,在所述测试计划中配置了原始JMeter测试脚本及与所述原始JMeter测试脚本相互关联的测试场景。
3.根据权利要求1所述的方法,其特征在于,所述接收测试计划启动指令,包括:
接收由Web服务器上集成的Quartz框架定时发出的测试计划启动指令。
4.根据权利要求1所述的方法,其特征在于,所述将所述新的JMeter测试脚本发送至集成在Web服务器上的JMeter API进行测试,生成测试结果,包括:
将所述新的JMeter测试脚本发送至集成在Web服务器上的JMeter API进行测试;
生成HTML格式的测试报告,将所述HTML格式的测试报告放置在Web页面以使用户可以访问。
5.根据权利要求1所述的方法,其特征在于,所述将所述新的JMeter测试脚本发送至集成在Web服务器上的JMeter API进行测试,包括:
将所述新的JMeter测试脚本发送至集成在Web服务器上的JMeter API,以使JMeterAPI调用预先配置的远程负载机进行测试,所述远程负载机采用分布式部署。
6.根据权利要求2所述的方法,其特征在于,所述对所述原始JMeter测试脚本进行解析,将所述原始JMeter测试脚本中的测试场景分离出来,包括:
通过DOM4J对所述原始JMeter测试脚本进行解析;
从所述原始JMeter测试脚本中解析出原始JMeter测试内容和原始测试场景,将所述原始JMeter测试脚本中的测试场景分离出来。
7.一种接口性能测试装置,其特征在于,所述装置包括:
测试计划启动模块,用于接收测试计划启动指令,所述测试计划中预先配置了原始JMeter测试脚本及与所述原始JMeter测试脚本相互关联的测试场景;
原始JMeter测试脚本解析模块,用于根据所述启动指令从数据库中读取所述原始JMeter测试脚本,对所述原始JMeter测试脚本进行解析,将所述原始JMeter测试脚本中的测试场景分离出来;
新的JMeter测试脚本生成模块,用于获取所述测试计划中与所述原始JMeter测试脚本相互关联的测试场景,用所述测试场景替换所述原始JMeter测试脚本中分离出来的测试场景,生成新的JMeter测试脚本;
JMeter测试模块,用于将所述新的JMeter测试脚本发送至集成在Web服务器上的JMeter API进行测试,生成测试结果。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括:
原始JMeter测试脚本上传模块,用于接收并在数据库中存储用户上传的原始JMeter测试脚本及用户设置的测试场景,所述原始JMeter测试脚本包括原始JMeter测试内容和原始测试场景;
测试计划创建模块,用于接收用户创建的测试计划,在所述测试计划中配置了原始JMeter测试脚本及与所述原始JMeter测试脚本相互关联的测试场景。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权1至7中任一项所述的接口性能测试方法。
10.一种计算机设备,所述计算机设备包括存储器,处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权1至7中任一项所述的接口性能测试方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710970291.0A CN107832207A (zh) | 2017-10-16 | 2017-10-16 | 接口性能测试方法、装置、存储介质和计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710970291.0A CN107832207A (zh) | 2017-10-16 | 2017-10-16 | 接口性能测试方法、装置、存储介质和计算机设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107832207A true CN107832207A (zh) | 2018-03-23 |
Family
ID=61648297
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710970291.0A Pending CN107832207A (zh) | 2017-10-16 | 2017-10-16 | 接口性能测试方法、装置、存储介质和计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107832207A (zh) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108415847A (zh) * | 2018-05-08 | 2018-08-17 | 平安普惠企业管理有限公司 | 性能测试方法、装置、计算机设备及存储介质 |
CN108540349A (zh) * | 2018-04-18 | 2018-09-14 | 武汉极意网络科技有限公司 | 一种基于Jmeter的自动化性能测试方法及系统 |
CN108650149A (zh) * | 2018-04-24 | 2018-10-12 | 平安科技(深圳)有限公司 | 服务器的测试方法、装置、设备及计算机可读存储介质 |
CN108874680A (zh) * | 2018-07-09 | 2018-11-23 | 上海瀚银信息技术有限公司 | 一种自动化的软件测试方法及系统 |
CN109344053A (zh) * | 2018-09-03 | 2019-02-15 | 平安科技(深圳)有限公司 | 接口覆盖测试方法、系统、计算机设备和存储介质 |
CN109344069A (zh) * | 2018-09-30 | 2019-02-15 | 福建星瑞格软件有限公司 | 一种软件自动化测试的协同办公方法及协同办公平台 |
CN109753438A (zh) * | 2019-01-14 | 2019-05-14 | 上海挚极信息科技有限公司 | 基于jmeter的性能测试平台及方法 |
CN109753432A (zh) * | 2018-12-21 | 2019-05-14 | 瑞庭网络技术(上海)有限公司 | 一种接口性能测试方法、装置、服务器及系统 |
CN110109837A (zh) * | 2019-05-06 | 2019-08-09 | 上海蔚来汽车有限公司 | 集成测试方法、装置以及控制器和介质 |
CN110287070A (zh) * | 2019-05-21 | 2019-09-27 | 平安银行股份有限公司 | Esb专用协议接口测试方法、服务器及计算机可读存储介质 |
CN112115064A (zh) * | 2020-09-29 | 2020-12-22 | 四川长虹电器股份有限公司 | 基于性能测试需求自动配置性能场景的方法 |
CN112306837A (zh) * | 2020-11-10 | 2021-02-02 | 光大兴陇信托有限责任公司 | 一种云压力测试方法及平台、设备及可读存储介质 |
CN112597001A (zh) * | 2020-12-07 | 2021-04-02 | 长沙市到家悠享网络科技有限公司 | 接口测试方法、装置、电子设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101212362A (zh) * | 2006-12-26 | 2008-07-02 | 中兴通讯股份有限公司 | 一种融合多类型测试工具的自动化测试装置及方法 |
CN102819485A (zh) * | 2011-06-09 | 2012-12-12 | 金蝶软件(中国)有限公司 | 一种测试场景生成方法、装置及系统 |
CN106815142A (zh) * | 2015-12-02 | 2017-06-09 | 北京奇虎科技有限公司 | 一种软件测试方法和系统 |
-
2017
- 2017-10-16 CN CN201710970291.0A patent/CN107832207A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101212362A (zh) * | 2006-12-26 | 2008-07-02 | 中兴通讯股份有限公司 | 一种融合多类型测试工具的自动化测试装置及方法 |
CN102819485A (zh) * | 2011-06-09 | 2012-12-12 | 金蝶软件(中国)有限公司 | 一种测试场景生成方法、装置及系统 |
CN106815142A (zh) * | 2015-12-02 | 2017-06-09 | 北京奇虎科技有限公司 | 一种软件测试方法和系统 |
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108540349B (zh) * | 2018-04-18 | 2021-04-23 | 武汉极意网络科技有限公司 | 一种基于Jmeter的自动化性能测试方法及系统 |
CN108540349A (zh) * | 2018-04-18 | 2018-09-14 | 武汉极意网络科技有限公司 | 一种基于Jmeter的自动化性能测试方法及系统 |
CN108650149A (zh) * | 2018-04-24 | 2018-10-12 | 平安科技(深圳)有限公司 | 服务器的测试方法、装置、设备及计算机可读存储介质 |
CN108650149B (zh) * | 2018-04-24 | 2021-10-01 | 平安科技(深圳)有限公司 | 服务器的测试方法、装置、设备及计算机可读存储介质 |
CN108415847A (zh) * | 2018-05-08 | 2018-08-17 | 平安普惠企业管理有限公司 | 性能测试方法、装置、计算机设备及存储介质 |
CN108874680A (zh) * | 2018-07-09 | 2018-11-23 | 上海瀚银信息技术有限公司 | 一种自动化的软件测试方法及系统 |
CN108874680B (zh) * | 2018-07-09 | 2022-06-24 | 上海瀚银信息技术有限公司 | 一种自动化的软件测试方法及系统 |
CN109344053A (zh) * | 2018-09-03 | 2019-02-15 | 平安科技(深圳)有限公司 | 接口覆盖测试方法、系统、计算机设备和存储介质 |
CN109344053B (zh) * | 2018-09-03 | 2023-05-30 | 平安科技(深圳)有限公司 | 接口覆盖测试方法、系统、计算机设备和存储介质 |
CN109344069A (zh) * | 2018-09-30 | 2019-02-15 | 福建星瑞格软件有限公司 | 一种软件自动化测试的协同办公方法及协同办公平台 |
CN109753432A (zh) * | 2018-12-21 | 2019-05-14 | 瑞庭网络技术(上海)有限公司 | 一种接口性能测试方法、装置、服务器及系统 |
CN109753438A (zh) * | 2019-01-14 | 2019-05-14 | 上海挚极信息科技有限公司 | 基于jmeter的性能测试平台及方法 |
CN110109837A (zh) * | 2019-05-06 | 2019-08-09 | 上海蔚来汽车有限公司 | 集成测试方法、装置以及控制器和介质 |
CN110109837B (zh) * | 2019-05-06 | 2023-10-13 | 上海蔚来汽车有限公司 | 集成测试方法、装置以及控制器和介质 |
CN110287070A (zh) * | 2019-05-21 | 2019-09-27 | 平安银行股份有限公司 | Esb专用协议接口测试方法、服务器及计算机可读存储介质 |
CN110287070B (zh) * | 2019-05-21 | 2024-03-19 | 平安银行股份有限公司 | Esb专用协议接口测试方法、服务器及计算机可读存储介质 |
CN112115064A (zh) * | 2020-09-29 | 2020-12-22 | 四川长虹电器股份有限公司 | 基于性能测试需求自动配置性能场景的方法 |
CN112306837A (zh) * | 2020-11-10 | 2021-02-02 | 光大兴陇信托有限责任公司 | 一种云压力测试方法及平台、设备及可读存储介质 |
CN112597001A (zh) * | 2020-12-07 | 2021-04-02 | 长沙市到家悠享网络科技有限公司 | 接口测试方法、装置、电子设备及存储介质 |
CN112597001B (zh) * | 2020-12-07 | 2023-03-28 | 长沙市到家悠享网络科技有限公司 | 接口测试方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107832207A (zh) | 接口性能测试方法、装置、存储介质和计算机设备 | |
CN109302522B (zh) | 测试方法、装置以及计算机系统和介质 | |
US20210311858A1 (en) | System and method for providing a test manager for use with a mainframe rehosting platform | |
US7287190B2 (en) | Simultaneous execution of test suites on different platforms | |
US8141043B2 (en) | Automated business process testing that spans multiple platforms or applications | |
US10956311B2 (en) | White box code concurrency testing for transaction processing | |
CN105446868B (zh) | 系统兼容性测试方法、测试用例管理方法及相关装置 | |
CN108287694A (zh) | 应用程序构建方法、系统、计算机设备和存储介质 | |
US20110047415A1 (en) | Debugging of business flows deployed in production servers | |
US20050144529A1 (en) | Method for defined derivation of software tests from use cases | |
US20080320071A1 (en) | Method, apparatus and program product for creating a test framework for testing operating system components in a cluster system | |
US20060156288A1 (en) | Extensible execution language | |
CN107133174A (zh) | 测试用例代码自动生成装置与方法 | |
CN105426310B (zh) | 一种检测目标进程的性能的方法和装置 | |
US20130298110A1 (en) | Software Visualization Using Code Coverage Information | |
CN109783388A (zh) | Ui自动化测试方法、装置及电子设备 | |
Harrer et al. | BPEL conformance in open source engines | |
US10044630B2 (en) | Systems and/or methods for remote application introspection in cloud-based integration scenarios | |
CN108845940A (zh) | 一种企业级信息系统自动化功能测试方法和系统 | |
CN103246606A (zh) | Esb平台的性能方法和系统 | |
CN103186463B (zh) | 确定软件的测试范围的方法和系统 | |
CN109739704A (zh) | 一种接口测试方法、服务端及计算机可读存储介质 | |
CN109977012A (zh) | 系统的联调测试方法、装置、设备及计算机可读存储介质 | |
CN114168471A (zh) | 测试方法、装置、电子设备及存储介质 | |
CN113535567B (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180323 |
|
RJ01 | Rejection of invention patent application after publication |