CN109491891A - 全自动接口压测方法、装置、计算机设备及存储介质 - Google Patents
全自动接口压测方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN109491891A CN109491891A CN201811208301.8A CN201811208301A CN109491891A CN 109491891 A CN109491891 A CN 109491891A CN 201811208301 A CN201811208301 A CN 201811208301A CN 109491891 A CN109491891 A CN 109491891A
- Authority
- CN
- China
- Prior art keywords
- pressure
- survey
- result
- interface
- test
- 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
- 238000000034 method Methods 0.000 title claims abstract description 58
- 238000003860 storage Methods 0.000 title claims abstract description 23
- 238000012360 testing method Methods 0.000 claims abstract description 265
- 238000004458 analytical method Methods 0.000 claims abstract description 158
- 238000011156 evaluation Methods 0.000 claims abstract description 47
- 230000006870 function Effects 0.000 claims description 47
- 238000004590 computer program Methods 0.000 claims description 18
- 235000013399 edible fruits Nutrition 0.000 claims description 14
- 238000003825 pressing Methods 0.000 claims description 13
- 230000007257 malfunction Effects 0.000 claims description 5
- 230000004044 response Effects 0.000 description 17
- 230000008569 process Effects 0.000 description 16
- 238000011056 performance test Methods 0.000 description 14
- 238000004801 process automation Methods 0.000 description 11
- 241000208340 Araliaceae Species 0.000 description 6
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 description 6
- 235000003140 Panax quinquefolius Nutrition 0.000 description 6
- 238000012550 audit Methods 0.000 description 6
- 235000008434 ginseng Nutrition 0.000 description 6
- 238000001514 detection method Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 238000009826 distribution Methods 0.000 description 2
- 230000000750 progressive effect Effects 0.000 description 2
- 239000000700 radioactive tracer Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000007619 statistical method Methods 0.000 description 2
- 241000272183 Geococcyx californianus Species 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000010485 coping Effects 0.000 description 1
- 230000006837 decompression Effects 0.000 description 1
- 238000003745 diagnosis Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000011990 functional testing Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000000007 visual effect Effects 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/3668—Software testing
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)
- Measuring Fluid Pressure (AREA)
Abstract
本发明公开了一种全自动接口压测方法、装置、计算机设备和存储介质,该方法包括调用预先配置好的重启脚本,重启服务器;调用预先配置好的压测脚本,对重启的服务器的服务性能和压测接口性能进行性能测试,获取目标压测结果;采用与服务性能和压测接口性能相对应的性能分析规则,对目标压测结果进行分析,获取目标分析结果;对目标分析结果为测试失败的压测接口进行出错定位,获取测试失败模块;将目标压测结果、目标分析结果和测试失败模块填充至对应的测试报告模板中,获取测试报告,以解决人工分析压测结果耗时长的问题。
Description
技术领域
本发明涉及功能测试领域,尤其涉及一种全自动接口压测方法、装置、计算机设备及存储介质。
背景技术
目前,传统的压测手段主要是通过运用一些专业压测工具(如JMeter或者Roadrunner)进行压测,以得到压测结果。例如,在设定量级的并发量下,测出***的接口错误率和TPS的大小等。但压测工具只进行压测的执行及结果的输出,还有很多地方需要大量的人机交互,例如,需要开启压测工具进行压测、收集所有相关的测试结果、对压测结果进行分析和输出压测报告等。当前人工对压测工具测出的压测结果进行分析,分析过程复杂且耗时。
发明内容
本发明实施例提供一种全自动接口压测方法、装置、计算机设备及存储介质,以解决人工分析压测结果耗时长的问题。
一种全自动接口压测方法,包括:
调用预先配置好的重启脚本,重启服务器;
调用预先配置好的压测脚本,对重启的服务器的服务性能和压测接口性能进行性能测试,获取目标压测结果;
采用与所述服务性能和所述压测接口性能相对应的性能分析规则,对所述目标压测结果进行分析,获取目标分析结果;
对所述目标分析结果为测试失败的压测接口进行出错定位,获取测试失败模块;
将所述目标压测结果、所述目标分析结果和所述测试失败模块填充至对应的测试报告模板中,获取测试报告。
一种全自动接口压测装置,包括:
重启模块,用于调用预先配置好的重启脚本,重启服务器;
测试模块,用于调用预先配置好的压测脚本,对重启的服务器的服务性能和压测接口性能进行性能测试,获取目标压测结果;
分析模块,用于采用与所述服务性能和所述压测接口性能相对应的性能分析规则,对所述目标压测结果进行分析,获取目标分析结果;
出错定位模块,用于对所述目标分析结果为测试失败的压测接口进行出错定位,获取测试失败模块;
报告生成模块,用于将所述目标压测结果、所述目标分析结果和所述测试失败模块填充至对应的测试报告模板中,获取测试报告。
一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述全自动接口压测方法的步骤。
一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述全自动接口压测方法的步骤。
上述全自动接口压测方法、装置、计算机设备及存储介质,通过调用预先配置好的重启脚本,重启服务器,使得服务器处于全新启动状态下进行压测,以保证后续性能测试过程中获取的目标压测结果的客观性。通过调用预先配置好的压测脚本,对重启的服务器的服务性能和压测接口性能进行性能测试,以快速获取到目标压测结果,不需人工开启压测工具进行压测,实现自动化压测,且压测过程简单快速。采用与服务性能和压测接口性能相对应的性能分析规则,对目标压测结果进行分析,获取目标分析结果,通过对目标分析结果为测试失败的压测接口进行出错定位,获取测试失败模块,以实现对测试失败的压测接口进行出错定位,以便后续对测试失败模块进行优化,使得该压测接口能够测试成功。最后,通过将目标压测结果、目标分析结果和测试失败模块填充至对应的测试报告模板中,快速获取测试报告,实现全自动接口压测,提高测试报告的获取效率。该全自动接口压测方法、装置、计算机设备及存储介质,可实现性能测试过程自动化、结果分析过程自动化、出错定位过程自动化和报告生成过程自动化等全流程自动化,无需人工介入,简化压测流程,节省压测时间。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例中全自动接口压测方法的应用环境示意图;
图2是本发明一实施例中全自动接口压测方法的流程图;
图3是本发明一实施例中全自动接口压测方法的流程图;
图4是本发明一实施例中全自动接口压测方法的流程图;
图5是本发明一实施例中全自动接口压测方法的流程图;
图6是本发明一实施例中全自动接口压测装置的原理框图;
图7是本发明一实施例中计算机设备的一示意图。
具体实施方式
下面将结和本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供的全自动接口压测方法,可应用在如图1的应用环境中,该全自动接口压测方法应用在自动化监控工具的服务端和客户端,其中,客户端通过网络与服务端进行通信。该全自动接口压测方法应用在自动化监控工具的服务端上,对需要进行压测的服务器进行重启,并调用预先配置好的压测脚本对服务器的服务性能和压测接口性能进行压测,并进行自动分析,生成测试报告,以实现全自动化压测,不需人工对压测结果进行分析,提高压测结果分析效率。其中,客户端可以但不限于各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备。服务端可以用独立的服务端或者是多个服务端组成的服务端集群来实现。
在一实施例中,如图2所示,提供一种全自动接口压测方法,以该方法应用在图1中的服务端为例进行说明,具体包括如下步骤:
S10:调用预先配置好的重启脚本,重启服务器。
其中,重启脚本可以是shell脚本,shell脚本是开发人员预先配置好的脚本,开发人员主要是利用shell的功能预先编写的一个脚本。开发人员通过用正规表示法,将一些shell的语法与指令写在脚本中,以实现管线命令以及数据流重导向等功能。本实施例中,通过预先配置好的shell脚本来重启需要进行压测的服务器,该shell脚本上编写有可实现服务器重启功能的shell语法和指令。
具体地,服务器中包含有至少一种功能模块,该功能模块是指在服务器中可实现某种功能的功能模块。例如,实现登录功能的功能模块,或者,实现在线支付功能的功能模块。本实施例中,在对服务器进行压测之前,调用预先配置好的shell脚本,重启服务器,该重启服务器的过程可实现重启服务器中所有功能模块的目的。可以理解地,通过对服务器进行重启,使得不同版本的服务器进行压测时,服务器与服务器中的功能模块处于全新启动状态下,以便在全新启动状态下进行压测,提高获取到的压测结果的准确性,避免压测过程中受重启前开启的功能模块的影响。可以理解地,首先,客户端发送给服务端的重启服务器的重启请求,该重启请求中携带用于唯一识别需要重启的服务器的服务器标识。服务端在接收到该重启请求之后,会根据重启请求中的服务器标识,通过调用预先配置好的与服务器标识相对应的shell脚本,通过执行shell脚本实现对服务器重启。其中,服务器可以是Linux服务器。
进一步地,预先将配置好的shell脚本存储在自动化监控工具的服务端中,基于自动化监控工具,进行全自动化压测。客户端向自动化监控工具的服务端发送重启服务器的重启请求,当自动化监控工具的服务端检测到客户端发送的重启请求,调用预先配置好的shell脚本,重启服务器。其中,自动化监控工具具体可以是Jenkins工具,该Jenkins工具是一个持续集成的Web项目,自动获取每一预先配置好的脚本,编译并进行构建,并且在设置的时间持续执行。
S20:调用预先配置好的压测脚本,对重启的服务器的服务性能和压测接口性能进行性能测试,获取目标压测结果。
其中,压测脚本是开发人员预先配置好的用于进行压力测试的脚本。具体地,开发人员主要是根据服务器的服务性能和压测接口性能进行配置的,预先在压测脚本中配置一些压测函数,以使得该压测脚本执行时,可实现对服务性能和压测接口性能进行性能测试。目标压测结果是指通过压测脚本对服务器的服务性能和压测接口性能进行性能测试所获得的结果。服务性能是指对压测接口进行压测时,服务器的性能,例如,服务器的CPU、内存和Load Average等。压测接口性能是指对压测接口进行压测时,压测接口的性能,例如,压测接口的响应时间、TPS和错误率等。
具体地,进行压测之前,预先对服务器配置有压测接口,并在压测工具中配置需要进行压测的压测接口的地址。在进行压测过程中,服务器采用压测工具,调用预先配置好的压测脚本,对预先配置的压测接口进行压力测试,以实现对重启的服务器的服务性能和压测接口性能进行性能测试,获取目标压测结果。其中,压测工具可以是JMeter工具,JMeter工具可以用于对静态和动态的资源的性能进行测试。可以理解地,采用JMeter工具,调用预先配置好的的压测脚本,基于预先配置的压测接口,对服务器模拟繁重的负载来测试在不同压力类型下的性能,即对重启的服务器的服务性能和压测接口进行性能测试,获取目标压测结果。例如,基于预先配置的压测接口,在10万级的并发量下,采用JMeter工具,对重启的服务器的服务性能和压测接口进行性能测试。
进一步地,自动化监控工具的服务端检测到服务器重启后,生成压测开始指令,采用JMeter工具,调用预先配置好的压测脚本,对重启的服务器的服务性能和压测接口性能进行性能测试,获取每一服务性能的目标压测结果和压测接口性能的目标压测结果,不需人工开启压测工具进行压测,简化压测流程,提高压测效率。其中,服务性能的目标压测结果可以是在一定量级的并发量下,服务器的CPU、内存和Load Average等目标压测结果。压测接口性能的目标压测结果可以是在一定量级的并发量下,压测接口的响应时间、TPS和错误率等目标压测结果。其中,服务端采用JMeter工具进行性能测试时,获取测试结果,该测试结果是以文件的形式进行保存;然后,服务端可通过解析工具对该测试结果对应的文件进行解析,获取目标压测结果。其中,并发量是服务器同时处理的事务数。CPU即在某一个时间段内CPU被占用的情况。内存是指检测服务器是否发生内存泄漏或内存溢出。LoadAverage是在一段时间内CPU使用队列的长度的统计信息。响应时间是处理一次事务的处理时间。TPS为固定时间间隔内的处理完毕事务个数。错误率是指压测失败次数占总的压测次数的比值。
进一步地,将每一服务性能和压测接口性能对应的目标压测结果保存至关系型数据库中,以便提高后续在关系型数据库中快速查询到服务性能的目标压测结果和压测接口性能的目标压测结果,提高查询效率,并有助于提高对目标压测结果进行分析的效率。
S30:采用与服务性能和压测接口性能相对应的性能分析规则,对目标压测结果进行分析,获取目标分析结果。
其中,性能分析规则是指开发人员预先配置在压测脚本中的与服务性能和压测接口性能相对应的规则。该性能分析规则包括与服务性能相对应的性能分析规则和与压测接口性能相对应的性能分析规则,该与服务性能相对应的性能分析规则和与压测接口性能相对应的性能分析规则可相同,也可不同。
具体地,服务端根据服务性能调用压测脚本,获取与服务性能相对应的性能分析规则,采用该与服务性能对应的性能分析规则,对与服务性能对应的目标压测结果进行分析,获取与服务性能对应的目标分析结果。相应地,服务端根据压测接口性能调用压测脚本,获取与压测接口性能相对应的性能分析规则,采用该与压测接口性能相对应的性能分析规则,对与压测接口性能对应的目标压测结果进行分析,获取与压测接口性能对应的目标分析结果。其中,目标分析结果可以为测试成功和测试失败。
更进一步地,当自动化监控工具的服务端检测到目标压测结果后,生成分析指令,根据分析指令,通过服务性能和压测接口性能,调用压测脚本,采用与服务性能和压测接口性能相对应的性能分析规则对目标压测结果进行分析,获取目标分析结果,其过程自动化实现,有利于提高分析效率,并降低分析时长。
本实施例中,若服务性能的目标压测结果为CPU、内存和Load Average等目标压测结果,从压测脚本中获取与CPU、内存和Load Average等目标压测结果对应的性能分析规则,其性能分析规则可以是将CPU、内存和Load Average等目标压测结果与预设的期望值进行对比,根据对比结果获取测试成功或测试失败的目标分析结果。例如,CPU的预设期望值为80%,而CPU对应的目标压测结果为75%,由于压测过程中,CPU越低越好,而目标压测结果低于预设期望值,则服务性能CPU对应的目标分析结果为测试成功。
相应地,若压测接口性能的目标压测结果为响应时间、TPS和错误率等目标压测结果,从压测脚本中获取与响应时间、TPS和错误率等目标压测结果对应的性能分析规则,其性能分析规则可以是将响应时间、TPS和错误率等目标压测结果与历史压测结果进行对比,获取根据对比结果获取测试成功或测试失败的目标分析结果。例如,响应时间对应的历史压测结果为2秒,而响应时间对应的目标压测结果为3秒,由于压测过程中,响应时间越小越好,将目标压测结果与历史压测结果进行对比,目标压测结果大于历史压测结果,则压测接口性能响应时间对应的目标分析结果为测试失败。反之,若响应时间对应的目标压测结果为1.5秒,则压测接口性能响应时间对应的目标分析结果为测试成功。
更进一步地,将每一服务性能和压测接口性能对应的目标分析结果关联存储至关系型数据库中,以便后续进行查询等操作,有助于提高后续进行分析的效率。
S40:对目标分析结果为测试失败的压测接口进行出错定位,获取测试失败模块。
其中,测试失败模块是指导致压测接口测试失败的模块。具体地,服务端根据获取到的每一压测接口性能的目标分析结果,确定目标分析结果为测试失败的压测接口,需要说明的是,对压测接口进行压测时,需要多个测试模块或者子***进行协作完成一个请求任务,对目标分析结果为测试失败的压测接口进行出错定位,即对测试模块或者子***进行出错定位。可以理解地,服务端通过预先为压测接口配置的测试标识调用对该压测接口进行压测时,所用到的测试模块,或者是所用到的子***的信息,并通过预先设置的定位工具对该测试失败的压测接口中出错的模块进行定位,获取测试失败模块。其中,定位工具可采用ELK和Metricbeat,即可采用ELK和Metricbeat来对目标分析结果为测试失败的压测接口进行出错定位,获取测试失败模块。
进一步地,当自动化监控工具的服务端检测到目标分析结果后,基于测试失败的目标分析结果生成出错定位指令,根据出错定位指令,对目标分析结果为测试失败的压测接口进行出错定位,获取测试失败模块,其过程可实现自动化对测试失败的压测接口进行定位分析,从而确定测试失败模块,以实现自动化分析,提高分析效率,并降低分析时长。
更进一步地,将压测接口性能与测试失败模块关联存储至关系型数据库中,以便后续进行查询等操作,有利于提高测试报告的获取效率。
S50:将目标压测结果、目标分析结果和测试失败模块填充至对应的测试报告模板中,获取测试报告。
其中,测试报告是指根据目标压测结果、目标分析结果和测试失败模块生成的报告。
具体地,可通过预先配置测试报告模板,将目标压测结果、目标分析结果和测试失败模块填充到测试报告模板中,即可自动生成测试报告,其过程无需人工干预,有利于提高测试报告的获取效率。其中,测试报告中还包括一些可自定义生成的表头,例如,项目名称、版本号、测试时间和测试环境等。
进一步地,当自动化监控工具的服务端检测到测试失败模块后,生成测试报告指令,基于测试报告指令,将目标压测结果、目标分析结果和测试失败模块填充至测试报告模板中,获取测试报告,并可根据预设的审核接口对测试报告进行发送,使得该测试报告的获取过程自动化实现,无需人工干预,有利于提高测试报告获取效率,并降低获取时长。
步骤S10-S50中,通过调用预先配置好的重启脚本,重启服务器,使得服务器处于全新启动状态下进行压测,以保证后续性能测试过程中获取的目标压测结果的客观性。通过调用预先配置好的压测脚本,对重启的服务器的服务性能和压测接口性能进行性能测试,以快速获取到目标压测结果,不需人工开启压测工具进行压测,实现自动化压测,且压测过程简单快速。采用与服务性能相对应的性能分析规则对目标压测结果进行分析,以获取目标分析结果,使得快速判断出服务器的服务性能是否达到预设的要求;而采用与压测接口性能相对应的性能分析规则,获取目标分析结果,以便客户根据目标分析结果判断该压测接口性能相较与其他几个版本的历史压测结果是否优化,不需人工收集相关压测结果进行分析,实现自动化分析提高分析效率,节省时间。服务端通过对目标分析结果为测试失败的压测接口进行出错定位,获取测试失败模块,以实现对测试失败的压测接口进行出错定位,以便后续客户对测试失败模块进行优化,使得该压测接口能够测试成功。最后,将目标压测结果、目标分析结果和测试失败模块填充至对应的测试报告模板中,快速获取测试报告,实现全自动接口压测,提高测试报告的获取效率。并且,本实施例所提供的全自动接口压测方法,可实现性能测试过程自动化、结果分析过程自动化、出错定位过程自动化和报告生成过程自动化等全流程自动化,无需人工介入,简化压测流程,节省压测时间。
在一实施例中,重启脚本包括与服务器相对应的重启函数,重启函数包括形式参数;压测脚本包括与每一压测接口相对应的压测函数,压测函数包括形式参数。具体地,在服务端执行该全自动接口压测方法之前,需预先在重启脚本中设定重启函数,重启函数可用来对服务器进行重启。并需预先在压测压脚本中设定每一压测接口对应的压测函数,压测函数可用来对压测接口进行性能测试。因此,如图2所示,在步骤S10之前,即在调用预先配置好的重启脚本,重启服务器的步骤之前,该全自动接口压测方法还包括如下步骤:
S101:获取脚本配置请求,脚本配置请求包括脚本类型。
其中,脚本配置请求是用于触发服务端进行脚本配置的请求。脚本类型是指脚本所属的类型,本实施例中,脚本类型具体包括重启(shell)脚本类型和压测脚本类型两种。具体地,开发人员根据需要配置重启脚本和压测脚本的需要,通过客户端向服务端发送脚本配置请求,脚本配置请求中包含有脚本类型,以使服务端根据该脚本类型确定其需要配置哪种脚本类型对应的脚本。
S102:若脚本类型为重启脚本,获取与服务器相对应的实际参数;将实际参数传递给与服务器相对应的重启函数中的形式参数,获取配置好的重启脚本。
具体地,当脚本配置请求中的脚本类型为重启脚本时,获取与服务器对应的实际参数,即服务器标识,其中,服务器标识是指预先为服务器配置的标识,将服务器的实际参数(即服务器标识)传递给重启脚本的重启函数的形式参数,以获取到配置好的重启脚本,以便后续根据服务器标识,调用相对应的重启脚本,执行该重启脚本中重启函数对该服务器标识对应的服务器进行重启。
S103:若脚本类型为压测脚本,获取与每一压测接口相对应的实际参数;将实际参数传递给与压测接口相对应的压测函数中的形式参数,获取配置好的压测脚本。
具体地,当脚本配置请求中的脚本类型为压测脚本时,获取与每一压测接口对应的实际参数,该实际参数可以是压测接口地址、并发量和测试时长等。然后,服务端将实际参数传递给与压测接口相对应的压测函数的形式参数,以获取到配置好的压测脚本,以便后续调用压测脚本,根据压测脚本中的压测函数对服务器的服务性能和压测接口性能进行性能测试。
步骤S101-S103中,获取脚本配置请求,脚本配置请求包括脚本类型,以便根据脚本类型进行脚本配置。若脚本类型为重启脚本,获取与服务器相对应的实际参数;将实际参数传递给与服务器相对应的重启函数中的形式参数,获取配置好的重启脚本,实现重启脚本的配置,为后续重启服务器提供技术支持。若脚本类型为压测脚本,获取与每一压测接口相对应的实际参数;将实际参数传递给与压测接口相对应的压测函数中的形式参数,获取配置好的压测脚本,实现压测脚本的配置,为后续对服务器的服务性能和压测接口性能进行性能测试提供技术支持。
在一实施例中,如图3所示,步骤S20中,即调用预先配置好的压测脚本,对重启的服务器的服务性能和压测接口性能进行性能测试,获取目标压测结果,包括:
S21:采用自动化监控工具检测服务器的启动状态,当服务器重启完成后,生成压测开始指令。
其中,压测开始指令是指可以进行性能测试的指令。
具体地,自动化监控工具为Jenkins工具,当Jenkins工具检测到服务器重启完成后,生成压测开始指令,以便后续服务端根据该压测开始指令进行性能测试。
S22:基于压测开始指令,采用压测工具调用预先配置好的压测脚本,对重启的服务器的服务性能和压测接口性能进行性能测试,获取测试结果文件。
其中,压测工具可以是,但不限于JMeter工具。测试结果文件是指JMeter工具根据压测脚本对重启的服务器的服务性能和压测接口性能进行性能测试所获得的文件。测试结果文件中包含每一服务性能对应目标压测结果和每一压测接口性能对应的目标压测结果。
进一步地,服务端基于压测开始指令,采用JMeter工具,调用预先配置好的压测脚本对重启的服务器的服务性能和压测接口性能进行性能测试,包括:依据压测脚本中压测接口的先后顺序,获取压测脚本中每一压测接口对应的实际参数;根据每一压测接口预先设定的实际参数,调用压测函数对压测接口进行性能测试;获取每一压测接口对应的压测接口性能的测试结果文件,并同时获取服务器的服务性能的测试结果文件。可以理解地,根据压测脚本对服务器的压测接口进行压测时,获取到压测接口性能对应的测试结果文件,此时,服务器的服务性能也随之变化,从而可获取服务性能的测试结果文件。其中,测试结果文件可以是CSV文件。CSV(Comma-Separated Values,逗号分隔值),有时也称为字符分隔值,CSV文件由任意数目的记录组成,记录间以某种换行符分隔,每条记录由字段组成,字段间的分隔符是其它字符或字符串,最常见的是逗号或制表符。
S23:采用解析工具对测试结果文件进行解析,获取目标压测结果。
具体地,解析工具可以是,但不限于是JAVA CSV解析工具。服务端通过JAVA CSV解析工具对测试结果文件进行解析,即对CSV文件进行解析,获取每一服务性能对应的目标压测结果和每一压测接口性能对应的目标压测结果,并将目标压测结果、服务性能、压测接口性能关联存储至关系型数据库中。
步骤S21-S23中,采用自动化监控工具检测服务器的启动状态,当服务器重启完成后,实现通过自动化监控工具自动生成压测开始指令,以便后续根据压测开始指令进行性能测试,以实现性能测试过程自动化开始。采用压测工具调用预先配置好的压测脚本,对重启的服务器的服务性能和压测接口性能进行性能测试,获取测试结果文件,实现性能测试过程自动化,使得性能测试过程无需人工干预,可提高测试结果文件的获取效率。采用解析工具对测试结果文件进行解析,以快速获取到目标压测结果,提高压测效率。
在一实施例中,压测脚本包括与服务性能相对应的性能分析规则和与压测接口性能相对应的性能分析规则。其中,性能分析规则是预先配置好的规则,与服务性能相对应的性能分析规则和与压测接口性能相对应的性能分析规则可相同,也可不同。
步骤S30中,即采用与服务性能和压测接口性能相对应的性能分析规则对目标压测结果进行分析,获取目标分析结果,具体包括如下步骤:
(1)基于与服务性能相对应的性能分析规则,获取与服务性能相对应的目标期望值,将与服务性能相对应的目标压测结果和目标期望值进行对比,基于对比结果获取目标分析结果。
其中,对比结果可以是与服务性能相对应的目标压测结果高于目标期望值,还可以是与服务性能相对应的目标压测结果低于目标期望值。目标分析结果可以是测试成功,还可以是测试失败。具体地,与服务性能相对应的性能分析规则可以是将服务性能对应的目标压测结果与预设的期望值进行对比分析的规则。而且,服务性能包括至少一个。服务端在根据服务性能调用压测脚本,获取与服务性能相对应的性能分析规则之后,可根据性能分析规则,获取与每一服务性能相对应的目标期望值,将服务性能对应的目标压测结果和该服务性能对应的目标期望值进行对比,基于对比结果获取目标分析结果。具体地,若服务器性能越高越好,则若目标压测结果高于目标期望值,则服务性能对应的目标分析结果为测试成功;相应地,若目标压测结果低于目标期望值,则服务性能对应的目标分析结果为测试失败,反之,若服务器性能越低越好,则若目标压测结果高于目标期望值,则服务性能对应的目标分析结果为测试失败。本实施例中,通过将服务器的服务性能与其对应的预设的目标期望值进行对比,获取目标分析结果,以便客户根据目标分析结果判断服务器是否达到设定的要求。进一步地,将服务性能与对应的目标分析结果关联存储至关系型数据库中,以便后续进行查找等操作。
具体地,若服务性能为CPU、内存和Load Average等,根据CPU、内存和LoadAverage等调用压测脚本,获取到对应的性能分析指标,若压测脚本中包含与CPU对应的目标期望值时,将CPU对应的目标压测结果与目标期望值进行对比分析,以获取目标分析结果。例如,服务性能为CPU,通常希望在某一个时间段内CPU被占用的的越少越好,若目标期望值为80%,而目标压测结果为75%,则目标压测结果低于目标期望值,目标分析结果为测试成功。
(2)基于与压测接口性能相对应的性能分析规则,获取与压测接口性能相对应的历史压测结果,将与压测接口性能相对应的目标压测结果与历史压测结果进行对比,基于对比结果获取目标分析结果。
其中,对比结果可以是与压测接口性能相对应的目标压测结果高于历史压测结果,还可以是与压测接口性能相对应的目标压测结果低于历史压测结果。目标分析结果可以是测试成功,还可以是测试失败。具体地,与压测接口性能相对应的性能分析规则可以是将压测接口性能对应的目标压测结果与历史压测结果进行对比分析的规则。该压测接口性能至少为一个。历史压测结果是指与该版本相同条件下,对前几个版本的服务器的压测接口性能进行性能测试的压测结果。
具体地,服务端根据压测接口性能调用压测脚本,获取与压测接口性能相对应的性能分析规则,根据性能分析规则,查找关系型数据库,获取与压测接口性能相对应的历史压测结果,将压测接口性能对应的目标压测结果和压测接口性能对应的历史压测结果进行对比,根据对比结果获取目标分析结果。本实施例中,压测接口性能越高越好,则目标压测结果高于历史压测结果,则压测接口性能对应的目标分析结果为测试成功;若目标压测结果低于历史期望结果,则压测接口性能对应的目标分析结果为测试失败,反之,压测接口性能越低越好,则目标压测结果高于历史压测结果,则压测接口性能对应的目标分析结果为测试失败。其中,历史压测结果可以是前几个版本,在相同条件下对压测接口进行性能测试的压测结果。关系型数据库中存储有每一版本与压测接口性能对应的历史压测结果。通过将压测接口性能对应的目标压测结果与前几个版本的历史压测结果进行对比分析,获得目标分析结果,以便客户根据该目标分析结果判断该压测接口性能是否相较与其他几个版本是否优化,还可根据该目标分析结果对测试失败的压测接口进行性能优化。
例如,若该版本为第二版本时,则将第二版本的压测接口性能对应的目标压测结果与第一版本的压测接口性能对应的历史压测结果进行比较,获取目标分析结果。例如,压测接口性能为响应时间,通常响应时间越短越好,若第二版本的压测接口性能响应时间的目标压测结果低于于第一版本的压测接口性能的历史压测结果,则目标分析结果为测试成功。若该版本为第三版本时,则将第三版本的压测接口性能对应的目标分析结果与第一版本该压测接口性能对应的历史压测结果和第二版本该压测接口性能对应的历史压测结果进行比较,获取目标分析结果。例如,若第三版本响应时间的目标压测结果均低于第一版本和第二版本的历史压测结果时,则目标分析结果为测试成功”。或者,若第三版本响应时间的目标压测结果低于第一版本历史压测结果,高于第二版本历史压测结果时,则目标压测结果为与第一版本相比,该压测接口性能测试成功,与第二版本相比,该压测接口性能测试失败。
进一步地,将压测接口性能与对应的目标分析结果关联存储至关系型数据库中,以便后续进行查找等操作,有利于提高测试报告的获取效率。
在一实施例中,每一压测接口对应一测试标识。其中,预先对每一压测接口配置一个独一无二的测试标识。
如图4所示,步骤S40中,即对目标分析结果为测试失败的压测接口进行出错定位,获取测试失败模块,包括:
S41:基于目标分析结果为测试失败的压测接口,获取与压测接口相对应的测试标识。
具体地,服务端获取每一压测接口性能的目标分析结果,根据目标分析结果,确定目标分析结果为测试失败的压测接口,获取与该压测接口对应测试标识,例如,该测试标识可为TraceId,TraceId应当保证全局唯一,可以是服务器IP+产生ID时候的时间+自增序列+当前进程号等组成。
S42:基于测试标识,采用链路追踪工具调用对压测接口进行性能测试时,各个测试模块的接口链信息,接口链信息包括至少一个测试模块。
其中,链路追踪工具可以是SOFARPC和zipkin等工具。链路追踪技术主要是收集、存储和分析分布式***中的调用事件数据,协助开发运营人员进行故障诊断、容量预估、性能瓶颈定位以及调用链路梳理。
具体地,服务端通过该测试标识进行链路跟踪,可获取到测试接口中与该测试标识相对应的各个测试模块或者各个子***的接口链信息,对压测接口进行性能测试时,通过接口链信息,获取到性能测试所访问的每一个测试模块,并获取到每一测试模块的类型和执行时间等信息。可以理解地,采用链路追踪工具,基于测试标识将一个调用过程构建成一棵调用树(称为Tracer),Tracer树中的每个节点表示链路调用中的一个测试模块或子***。通过一个全局唯一的TraceId来标识一个请求调用链。服务端通过接口链信息还可了解各个测试模块的执行情况,比如是否执行成功、是否进行了重试和失败是否对整个性能测试造成影响等。
S43:采用定位工具,对接口链信息中测试失败的测试模块进行出错定位,获取测试失败模块。
其中,定位工具可以是,但不局限于ELK和Metricbeat工具,通过ELK和Metricbeat工具对步骤S42中获得的接口链信息进行分析,并对测试失败的测试模块或子***进行出错定位,ELK是一个开源实时日志分析平台,由ElasticSearch、Logstash和Kiabana三个开源***组成。ElasticSearch是一个分布式的搜索引擎,Logstash用于内容的转存***,通过灵活的插件可以做到很多种类数据的读取和很多种类数据的写入,Kiabana是一个数据展示的客户端,提供对ElasticSearch中数据的可视化搜索和展示功能。Metricbeat用于统计分析接口链信息。
具体地,通过测试标识获取到所有接口链信息,通过Metricbeat对接口链信息进行统计分析,并通过ELK中Kiabanaa展示Metricbeat进行统计的数据,确定测试失败模块。
步骤S41-S43中,基于目标分析结果为测试失败的压测接口,获取与压测接口相对应的测试标识,为后续根据测试标识获取到对应的接口链信息提供技术支持。基于测试标识,采用链路追踪工具调用对压测接口进行性能测试时,各个测试模块的接口链信息,接口链信息包括至少一个测试模块,实现快速获取到接口链信息,以便后续对接口链信息中的每一测试模块进行统计分析,以便实现快速对测试失败模块出错定位。具体地,采用定位工具,对接口链信息中测试失败的测试模块进行出错定位,快速获取测试失败模块,相比人工对测试失败模块进行定位分析,可提高测试失败模块定位效率。
在一实施例中,如图5所示,步骤S50中,即基于目标压测结果、目标分析结果和测试失败模块,获取测试报告,具体包括如下步骤:
S51:获取测试报告生成请求,测试报告生成请求中包含模板标识。
其中,模板标识是指预先配置好的测试报告模板的标识,通过该模板标识可查找到对应的测试报告模板。具体地,当自动化监控工具检测到对压测接口进行出错定位完成后,生成测试报告生成请求,该测试报告请求中包含模板标识,以便后续根据模板标识查找到测试报告模板。
S52:根据模板标识查找数据库,获取与模板标识对应的测试报告模板,测试报告模板包括至少一个分析字段和对应的填充区域。
具体地,数据库中存储有预先配置好的测试报告模板,测试模板中含有至少一个分析字段和对应的填充区域。其中,每一版本的测试报告模板可相同。分析字段是在测试报告模板中预先配置好的字段,通过分析字段可获取到对应的字段内容。填充区域是用来填充与分析字段对应的字段内容的区域。服务端通过模板标识查找数据库,获取与模板标识对应的测试报告模板,以便后续基于测试报告模板生成测试报告。
S53:根据分析字段获取相对应的目标压测结果、目标分析结果和测试失败模块,并将目标压测结果、目标分析结果和测试失败模块填充在与分析字段相对应的填充区域上,生成测试报告。
具体地,预先将目标压测结果、目标分析结果和测试失败模块关联存储在关系型数据库中。分析字段可以是压测结果、分析结果和测试失败模块,分析字段还可以包括服务性能和压测接口性能。服务端预先设定每一服务性能和压测接口性能,将服务性能和压测接口性能作为分析字段,并获取每一服务性能和压测接口性能对应的目标压测结果、目标分析结果和测试失败模块,并将目标压测结果、目标分析结果和测试失败模块填充至与分析字段相对应的填充区域,生成测试报告。
例如,服务性能包括CPU,通过CPU查找对应的目标压测结果“75%”、目标分析结果“测试成功”和测试失败模块“XX1”,将目标压测结果“75%”、目标分析结果“测试成功”和测试失败模块“XX1”填充至与分析字段相对应的填充区域上,生成测试报告。
步骤S51-S53中,获取测试报告生成请求,测试报告生成请求中模板标识查找数据库,获取与模板标识对应的测试报告模板,实现自动获取到测试报告模板,为后续生成测试报告更加便捷。根据分析字段获取相对应的目标压测结果、目标分析结果和测试失败模块,并将目标压测结果、目标分析结果和测试失败模块填充在与分析字段相对应的填充区域上,快速生成测试报告,生成方法简单快速。
进一步地,由于目标分析结果包括测试失败和测试成功,在测试报告中,对目标分析结果为测试失败的服务性能和压测接口性能进行突出显示。具体地,每一服务性能和压测接口性能对应的目标分析结果可为测试成功,也可为测试失败。根据每一服务性能和压测接口性能对应的目标分析结果,对目标分析结果为测试失败的服务性能和压测接口性能进行突出显示,例如,进行标红加粗等处理,以便后续客户根据测试报告,快速查看到测试失败的服务性能和压测接口性能。
进一步地,在自动化监控工具中还可预先设定审核接口,服务端在获取到测试报告之后,可根据预先设定的审核接口,将该测试报告发送给审核接口,以使审核接口对应的审核人员(或者开发人员)可查阅该测试报告,了解压测情况。可以理解地,通过预先设置审核接口,可将测试报告自动发送给相应的审核接口,以使审核人员可快速查阅相应的测试报告,无需人工发送,提高发送效率。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
在一实施例中,提供一种全自动接口压测装置,该全自动接口压测装置与上述实施例中全自动接口压测方法一一对应。如图6所示,该全自动接口压测装置包括重启模块10、结果获取模块20、分析模块30、出错定位模块40和报告生成模块50。各功能模块详细说明如下:
重启模块10,用于调用预先配置好的重启脚本,重启服务器。
结果获取模块20,用于调用预先配置好的压测脚本,对重启的服务器的服务性能和压测接口性能进行性能测试,获取目标压测结果。
分析模块30,用于采用与服务性能和压测接口性能相对应的性能分析规则,对目标压测结果进行分析,获取目标分析结果。
出错定位模块40,用于对目标分析结果为测试失败的压测接口进行出错定位,获取测试失败模块。
报告生成模块50,用于将目标压测结果、目标分析结果和测试失败模块填充至测试报告模板中,获取测试报告。
在一实施例中,重启脚本包括与服务器相对应的重启函数,重启函数包括形式参数。压测脚本包括与每一压测接口相对应的压测函数,压测函数包括形式参数。
在重启模块10之前,全自动接口压测装置还包括脚本配置请求单元、重启脚本配置单元和压测脚本配置单元。
脚本配置请求单元,用于获取脚本配置请求,脚本配置请求包括脚本类型。
重启脚本配置单元,用于若脚本类型为重启脚本,获取与服务器相对应的实际参数,将实际参数传递给与服务器相对应的重启函数中的形式参数,获取配置好的重启脚本。
压测脚本配置单元,用于若脚本类型为压测脚本,获取与每一压测接口相对应的实际参数,将实际参数传递给与压测接口相对应的压测函数中的形式参数,获取配置好的压测脚本。
在一实施例中,结果获取模块20包括指令生成单元21、文件获取单元22和压测结果获取单元23。
指令生成单元21,用于采用自动化监控工具检测服务器的启动状态,当服务器重启完成后,生成压测开始指令。
文件获取单元22,用于基于压测开始指令,采用压测工具调用预先配置好的压测脚本对重启的服务器的服务性能和压测接口性能进行性能测试,获取测试结果文件。
压测结果获取单元23,用于采用解析工具对测试结果文件进行解析,获取目标压测结果。
在一实施例中,结果获取模块20包括压测开始指令获取单元、测试结果文件获取单元和测试结果文件解析单元。
压测开始指令获取单元,用于采用自动化监控工具检测服务器的启动状态,当服务器重启完成后,生成压测开始指令。
测试结果文件获取单元,用于基于压测开始指令,采用压测工具调用预先配置好的压测脚本对重启的服务器的服务性能和压测接口性能进行性能测试,获取测试结果文件。
测试结果文件解析单元,用于采用解析工具对测试结果文件进行解析,获取目标压测结果。
在一实施例中,压测脚本包括与服务性能相对应的性能分析规则和与压测接口性能相对应的性能分析规则。
分析模块30包括第一分析结果获取单元和第二分析结果获取单元。
第一分析结果获取单元,用于基于与服务性能相对应的性能分析规则,获取与服务性能相对应的目标期望值,将与服务性能相对应的目标压测结果和目标期望值进行对比,基于对比结果获取目标分析结果。
第二分析结果获取单元,用于基于与压测接口性能相对应的性能分析规则,获取与压测接口性能相对应的历史压测结果,将与压测接口性能相对应的目标压测结果与历史压测结果进行对比,基于对比结果获取目标分析结果。
在一实施例中,每一压测接口对应一测试标识。
出错定位模块40包括测试标识获取单元、接口链信息获取单元和测试失败模块获取单元。
测试标识获取单元,用于基于目标分析结果为测试失败的压测接口,获取与压测接口相对应的测试标识。
接口链信息获取单元,用于基于测试标识,采用链路追踪工具调用对压测接口进行性能测试时,各个测试模块的接口链信息,接口链信息包括至少一个测试模块。
测试失败模块获取单元,用于采用定位工具,对接口链信息中测试失败的测试模块进行出错定位,获取测试失败模块。
在一实施例中,报告生成模块50包括请求获取单元、报告模板获取单元和测试报告获取单元。
请求获取单元,用于获取测试报告生成请求,测试报告生成请求中包含模板标识。
报告模板获取单元,用于根据模板标识查找数据库,获取与模板标识对应的测试报告模板,测试报告模板包括至少一个分析字段和对应的填充区域。
测试报告获取单元,用于根据分析字段获取相对应的目标压测结果、目标分析结果和测试失败模块,并将目标压测结果、目标分析结果和测试失败模块填充在与分析字段相对应的填充区域上,生成测试报告。
关于全自动接口压测装置的具体限定可以参见上文中对于全自动接口压测方法的限定,在此不再赘述。上述全自动接口压测装置中的各个模块可全部或部分通过软件、硬件及其组和来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务端,其内部结构图可以如图7所示。该计算机设备包括通过***总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作***、计算机程序和数据库。该内存储器为非易失性存储介质中的操作***和计算机程序的运行提供环境。该计算机设备的数据库用于存储测试报告模板等。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种全自动接口压测方法。
在一实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述实施例中全自动接口压测方法的步骤,例如,图2所示的步骤S10至步骤S50。或者,处理器执行计算机程序时实现上述实施例中全自动接口压测装置中的各模块/单元的功能,例如,图6所示模块10至模块50的功能。为避免重复,此处不再赘述。
在一实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述方法实施例中全自动接口压测方法,例如,图2所示的步骤S10至步骤S50。或者,该计算机程序被处理器执行时实现上述实施例中全自动接口压测装置中各模块/单元的功能,例如,图6所示模块10至模块50的功能。为避免重复,此处不再赘述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(RambuS)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。
以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。
Claims (10)
1.一种全自动接口压测方法,其特征在于,包括:
调用预先配置好的重启脚本,重启服务器;
调用预先配置好的压测脚本,对重启的服务器的服务性能和压测接口性能进行性能测试,获取目标压测结果;
采用与所述服务性能和所述压测接口性能相对应的性能分析规则,对所述目标压测结果进行分析,获取目标分析结果;
对所述目标分析结果为测试失败的压测接口进行出错定位,获取测试失败模块;
将所述目标压测结果、所述目标分析结果和所述测试失败模块填充至对应的测试报告模板中,获取测试报告。
2.如权利要求1所述的全自动接口压测方法,其特征在于,所述重启脚本包括与所述服务器相对应的重启函数,所述重启函数包括形式参数;所述压测脚本包括与每一所述压测接口相对应的压测函数,所述压测函数包括形式参数;
在所述调用预先配置好的重启脚本的步骤之前,所述全自动接口压测方法还包括:
获取脚本配置请求,所述脚本配置请求包括脚本类型;
若所述脚本类型为重启脚本,获取与服务器相对应的实际参数;将所述实际参数传递给与所述服务器相对应的重启函数中的形式参数,获取配置好的重启脚本;
若所述脚本类型为压测脚本,获取与每一所述压测接口相对应的实际参数;将所述实际参数传递给与所述压测接口相对应的压测函数中的形式参数,获取配置好的压测脚本。
3.如权利要求1所述的全自动接口压测方法,其特征在于,所述调用预先配置好的压测脚本,对重启的服务器的服务性能和压测接口性能进行性能测试,获取目标压测结果,包括:
采用自动化监控工具检测所述服务器的启动状态,当所述服务器重启完成后,生成压测开始指令;
基于所述压测开始指令,采用压测工具调用预先配置好的压测脚本,对重启的服务器的服务性能和压测接口性能进行性能测试,获取测试结果文件;
采用解析工具对所述测试结果文件进行解析,获取目标压测结果。
4.如权利要求1所述的全自动接口压测方法,其特征在于,所述压测脚本包括与所述服务性能相对应的性能分析规则和与所述压测接口性能相对应的性能分析规则;
采用与所述服务性能和所述压测接口性能相对应的性能分析规则,对所述目标压测结果进行分析,获取目标分析结果,包括:
基于与所述服务性能相对应的性能分析规则,获取与所述服务性能相对应的目标期望值,将与所述服务性能相对应的目标压测结果和所述目标期望值进行对比,基于对比结果获取目标分析结果;
基于与所述压测接口性能相对应的性能分析规则,获取与所述压测接口性能相对应的历史压测结果,将与所述压测接口性能相对应的目标压测结果与所述历史压测结果进行对比,基于对比结果获取目标分析结果。
5.如权利要求1所述的全自动接口压测方法,其特征在于,每一所述压测接口对应一测试标识;
所述对所述目标分析结果为测试失败的压测接口进行出错定位,获取测试失败模块,包括:
基于所述目标分析结果为测试失败的压测接口,获取与所述压测接口相对应的测试标识;
基于所述测试标识,采用链路追踪工具调用对所述压测接口进行性能测试时,各个测试模块的接口链信息,所述接口链信息包括至少一个测试模块;
采用定位工具,对所述接口链信息中测试失败的测试模块进行出错定位,获取测试失败模块。
6.如权利要求1所述的全自动接口压测方法,其特征在于,所述基于所述目标压测结果、所述目标分析结果和所述测试失败模块,获取测试报告,包括:
获取测试报告生成请求,所述测试报告生成请求中包含模板标识;
根据所述模板标识查找数据库,获取与所述模板标识对应的测试报告模板,所述测试报告模板包括至少一个分析字段和对应的填充区域;
根据所述分析字段获取相对应的所述目标压测结果、所述目标分析结果和所述测试失败模块,并将所述目标压测结果、所述目标分析结果和所述测试失败模块填充在与所述分析字段相对应的填充区域上,生成测试报告。
7.一种全自动接口压测装置,其特征在于,包括:
重启模块,用于调用预先配置好的重启脚本,重启服务器;
结果获取模块,用于调用预先配置好的压测脚本,对重启的服务器的服务性能和压测接口性能进行性能测试,获取目标压测结果;
分析模块,用于采用与所述服务性能和所述压测接口性能相对应的性能分析规则,对所述目标压测结果进行分析,获取目标分析结果;
出错定位模块,用于对所述目标分析结果为测试失败的压测接口进行出错定位,获取测试失败模块;
报告生成模块,用于将所述目标压测结果、所述目标分析结果和所述测试失败模块填充至对应的测试报告模板中,获取测试报告。
8.如权利要求7所述的全自动接口压测装置,其特征在于,所述测试模块,包括:
指令生成单元,用于采用自动化监控工具检测所述服务器的启动状态,当所述服务器重启完成后,生成压测开始指令;
文件获取单元,用于基于所述压测开始指令,采用压测工具调用预先配置好的压测脚本对重启的服务器的服务性能和压测接口性能进行性能测试,获取测试结果文件;
压测结果获取单元,用于采用解析工具对所述测试结果文件进行解析,获取目标压测结果。
9.一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至6任一项所述全自动接口压测方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述全自动接口压测方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811208301.8A CN109491891A (zh) | 2018-10-17 | 2018-10-17 | 全自动接口压测方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811208301.8A CN109491891A (zh) | 2018-10-17 | 2018-10-17 | 全自动接口压测方法、装置、计算机设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109491891A true CN109491891A (zh) | 2019-03-19 |
Family
ID=65691360
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811208301.8A Pending CN109491891A (zh) | 2018-10-17 | 2018-10-17 | 全自动接口压测方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109491891A (zh) |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110083540A (zh) * | 2019-04-29 | 2019-08-02 | 北京口袋时尚科技有限公司 | 接口测试方法及装置 |
CN110532168A (zh) * | 2019-07-05 | 2019-12-03 | 中国平安财产保险股份有限公司 | 全链路接口压测方法、装置、计算机设备及存储介质 |
CN110704312A (zh) * | 2019-09-25 | 2020-01-17 | 浙江大搜车软件技术有限公司 | 压力测试的方法、装置、计算机设备和存储介质 |
CN110798445A (zh) * | 2019-09-12 | 2020-02-14 | 中国平安财产保险股份有限公司 | 公共网关接口测试方法、装置、计算机设备及存储介质 |
CN110807043A (zh) * | 2019-10-28 | 2020-02-18 | 中冶赛迪重庆信息技术有限公司 | 诊断报告生成方法、***、设备及介质 |
CN111190827A (zh) * | 2019-12-30 | 2020-05-22 | 航天信息股份有限公司 | 接口自动化测试方法、装置、存储介质及电子设备 |
CN111338956A (zh) * | 2020-02-27 | 2020-06-26 | 广州市百果园信息技术有限公司 | 一种自动化的压测方法、装置、设备和存储介质 |
CN111382075A (zh) * | 2020-03-10 | 2020-07-07 | 北京同邦卓益科技有限公司 | 一种自动化测试的数据处理方法及装置 |
CN111858304A (zh) * | 2020-06-10 | 2020-10-30 | 南京领行科技股份有限公司 | 一种接口性能测试的方法及装置 |
CN112491622A (zh) * | 2020-11-30 | 2021-03-12 | 苏宁金融科技(南京)有限公司 | 定位业务***故障根因的方法和*** |
CN112835792A (zh) * | 2021-01-27 | 2021-05-25 | 湖南快乐阳光互动娱乐传媒有限公司 | 一种压力测试***及方法 |
CN113220586A (zh) * | 2021-05-31 | 2021-08-06 | 五八到家有限公司 | 一种自动化的接口压力测试执行方法、装置和*** |
CN113392000A (zh) * | 2021-06-10 | 2021-09-14 | 卫宁健康科技集团股份有限公司 | 测试用例执行结果分析方法、装置、设备及存储介质 |
CN113778847A (zh) * | 2020-12-03 | 2021-12-10 | 北京沃东天骏信息技术有限公司 | 测试报告生成方法和装置 |
CN114968829A (zh) * | 2022-08-02 | 2022-08-30 | 平安银行股份有限公司 | 全链路压力测试方法、电子设备和存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101090295A (zh) * | 2007-07-25 | 2007-12-19 | 中兴通讯股份有限公司 | 一种ason网络的测试***及方法 |
CN103984627A (zh) * | 2014-05-15 | 2014-08-13 | 浪潮电子信息产业股份有限公司 | 一种Linux服务器的内存压力测试方法 |
CN108446195A (zh) * | 2018-05-30 | 2018-08-24 | 郑州云海信息技术有限公司 | 一种服务器内存性能测试方法和装置 |
-
2018
- 2018-10-17 CN CN201811208301.8A patent/CN109491891A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101090295A (zh) * | 2007-07-25 | 2007-12-19 | 中兴通讯股份有限公司 | 一种ason网络的测试***及方法 |
CN103984627A (zh) * | 2014-05-15 | 2014-08-13 | 浪潮电子信息产业股份有限公司 | 一种Linux服务器的内存压力测试方法 |
CN108446195A (zh) * | 2018-05-30 | 2018-08-24 | 郑州云海信息技术有限公司 | 一种服务器内存性能测试方法和装置 |
Cited By (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110083540A (zh) * | 2019-04-29 | 2019-08-02 | 北京口袋时尚科技有限公司 | 接口测试方法及装置 |
CN110083540B (zh) * | 2019-04-29 | 2023-04-28 | 北京口袋时尚科技有限公司 | 接口测试方法及装置 |
CN110532168A (zh) * | 2019-07-05 | 2019-12-03 | 中国平安财产保险股份有限公司 | 全链路接口压测方法、装置、计算机设备及存储介质 |
CN110532168B (zh) * | 2019-07-05 | 2024-03-29 | 中国平安财产保险股份有限公司 | 全链路接口压测方法、装置、计算机设备及存储介质 |
CN110798445B (zh) * | 2019-09-12 | 2022-06-10 | 中国平安财产保险股份有限公司 | 公共网关接口测试方法、装置、计算机设备及存储介质 |
CN110798445A (zh) * | 2019-09-12 | 2020-02-14 | 中国平安财产保险股份有限公司 | 公共网关接口测试方法、装置、计算机设备及存储介质 |
CN110704312A (zh) * | 2019-09-25 | 2020-01-17 | 浙江大搜车软件技术有限公司 | 压力测试的方法、装置、计算机设备和存储介质 |
CN110704312B (zh) * | 2019-09-25 | 2023-09-12 | 浙江大搜车软件技术有限公司 | 压力测试的方法、装置、计算机设备和存储介质 |
CN110807043A (zh) * | 2019-10-28 | 2020-02-18 | 中冶赛迪重庆信息技术有限公司 | 诊断报告生成方法、***、设备及介质 |
CN111190827A (zh) * | 2019-12-30 | 2020-05-22 | 航天信息股份有限公司 | 接口自动化测试方法、装置、存储介质及电子设备 |
CN111338956A (zh) * | 2020-02-27 | 2020-06-26 | 广州市百果园信息技术有限公司 | 一种自动化的压测方法、装置、设备和存储介质 |
CN111382075B (zh) * | 2020-03-10 | 2023-09-26 | 北京同邦卓益科技有限公司 | 一种自动化测试的数据处理方法及装置 |
CN111382075A (zh) * | 2020-03-10 | 2020-07-07 | 北京同邦卓益科技有限公司 | 一种自动化测试的数据处理方法及装置 |
CN111858304A (zh) * | 2020-06-10 | 2020-10-30 | 南京领行科技股份有限公司 | 一种接口性能测试的方法及装置 |
CN111858304B (zh) * | 2020-06-10 | 2022-06-07 | 南京领行科技股份有限公司 | 一种接口性能测试的方法及装置 |
CN112491622A (zh) * | 2020-11-30 | 2021-03-12 | 苏宁金融科技(南京)有限公司 | 定位业务***故障根因的方法和*** |
CN113778847A (zh) * | 2020-12-03 | 2021-12-10 | 北京沃东天骏信息技术有限公司 | 测试报告生成方法和装置 |
CN112835792B (zh) * | 2021-01-27 | 2023-03-03 | 湖南快乐阳光互动娱乐传媒有限公司 | 一种压力测试***及方法 |
CN112835792A (zh) * | 2021-01-27 | 2021-05-25 | 湖南快乐阳光互动娱乐传媒有限公司 | 一种压力测试***及方法 |
CN113220586A (zh) * | 2021-05-31 | 2021-08-06 | 五八到家有限公司 | 一种自动化的接口压力测试执行方法、装置和*** |
CN113392000A (zh) * | 2021-06-10 | 2021-09-14 | 卫宁健康科技集团股份有限公司 | 测试用例执行结果分析方法、装置、设备及存储介质 |
CN113392000B (zh) * | 2021-06-10 | 2024-01-30 | 卫宁健康科技集团股份有限公司 | 测试用例执行结果分析方法、装置、设备及存储介质 |
CN114968829A (zh) * | 2022-08-02 | 2022-08-30 | 平安银行股份有限公司 | 全链路压力测试方法、电子设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109491891A (zh) | 全自动接口压测方法、装置、计算机设备及存储介质 | |
CN109302522B (zh) | 测试方法、装置以及计算机***和介质 | |
CN110399293B (zh) | ***测试方法、装置、计算机设备和存储介质 | |
US8701092B1 (en) | System and method for testing applications | |
CN107688530B (zh) | 软件测试方法及装置 | |
US7890814B2 (en) | Software error report analysis | |
CN108509344B (zh) | 日切跑批测试方法、设备及可读存储介质 | |
WO2021218178A1 (zh) | 报表自动生成方法、装置、计算机设备及存储介质 | |
CN109766263A (zh) | 自动化测试分析处理方法、装置、计算机设备及存储介质 | |
CN109683982B (zh) | Mes***控制方法、装置、计算机设备和存储介质 | |
CN109766261B (zh) | 覆盖测试方法、装置、计算机设备和存储介质 | |
CN112631926B (zh) | 代码测试覆盖率显示方法、装置、计算机设备及存储介质 | |
CN111897727A (zh) | 软件测试方法、装置、计算机设备及存储介质 | |
US9213543B2 (en) | Software internationalization estimation model | |
CN111797026A (zh) | 测试用例生成方法、装置、计算机设备及存储介质 | |
CN113778898A (zh) | 用户界面自动化测试方法、装置、电子设备及存储介质 | |
CN110750443A (zh) | 网页测试的方法、装置、计算机设备及存储介质 | |
CN111667231A (zh) | 自动化报税方法、装置、***、计算机设备和存储介质 | |
CN110597710A (zh) | 测试覆盖率统计方法、装置、计算机设备及存储介质 | |
CN113900962A (zh) | 代码差异检测方法及装置 | |
CN113220566A (zh) | 接口性能测试脚本的生成方法、装置和计算机设备 | |
CN115248782B (zh) | 一种自动化测试方法、装置及计算机设备 | |
CN116383025A (zh) | 基于Jmeter的性能测试方法、装置、设备及介质 | |
CN116340159A (zh) | 回归测试用例推荐方法、***、设备及存储介质 | |
CN110515829A (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 |