CN113505083B - 接口压力性能测试方法、装置、设备及介质 - Google Patents
接口压力性能测试方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN113505083B CN113505083B CN202111055563.7A CN202111055563A CN113505083B CN 113505083 B CN113505083 B CN 113505083B CN 202111055563 A CN202111055563 A CN 202111055563A CN 113505083 B CN113505083 B CN 113505083B
- Authority
- CN
- China
- Prior art keywords
- test
- interface
- testing
- class
- performance
- 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
Images
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/3688—Test management for test execution, e.g. scheduling of test suites
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/36—Software reuse
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种接口压力性能测试方法、装置、设备及介质,方法包括:使用代码编译器作为测试工具,搭建接口压力性能测试环境;基于测试请求从预设代码库中下载性能测试框架至测试环境运行时加载的测试目录;设置待测接口的接口压力性能测试指标;在性能测试框架的接口处通过修改标注入参注解,以指定与修改后的标注入参注解对应的接口测试代码注入测试类;运行搭建的测试环境,利用性能测试框架在性能测试框架的接口处执行抽象类和测试类中的接口测试代码,以对待测接口进行接口压力性能测试,并得到接口压力性能测试指标对应的当前测试结果。本发明的实施能够实现接口测试代码的重复使用,降低测试时间,提升测试效率。
Description
技术领域
本发明涉及软件测试技术领域,特别涉及一种接口压力性能测试方法、装置、设备及介质。
背景技术
相关技术中,在对目标程序中的目标接口进行测试的过程中,通常是由测试人员对目标接口编写测试代码以及测试用例,然后,基于编写的测试代码以及测试用例对对应的目标接口进行接口测试,然而,现有的性能测试要依赖专业的压测工具,接口性能测试的方式对测试人员的能力要求较高,在测试过程中压测工具和终端的配置也需要提前安装和准备,压测代码需根据压测工具指定的格式用户手动为接口编写测试代码,导致无法复用功能测试过程中积累的代码,扩容时又会占用较多资源,完成接口测试所需要的时间较多,影响了接口测试工作的工作效率,也不利于做性能的持续集成。
发明内容
为了解决现有技术中需要对应的压测工具进行编译代码造成的代码重复率低下、测试效率低的计算问题,本发明提供一种接口压力性能测试方法、装置、设备及介质,能够在对接口压力性能测试的过程中,在待测接口更新时仅需要使用代码编译器即可实现接口压力性能测试,并且用户无需重复编写测试代码,可实现测试代码的复用,大大减少了对接口进行测试所需要的测试时间,提高了接口压力性能测试效率,方便了用户对接口进行测试,提高了用户的接口压力性能测试体验。
为了达到上述申请的目的,本申请提供了一种接口压力性能测试方法,所述方法包括:
使用代码编译器作为测试工具,搭建接口压力性能测试环境;
基于测试请求从预设代码库中下载性能测试框架至所述测试环境运行时加载的测试目录,所述性能测试框架包括抽象类和继承所述抽象类的实现类,所述实现类包括多个接口测试代码;
设置待测接口的接口压力性能测试指标;
在所述性能测试框架的接口处通过修改标注入参注解,以指定与修改后的标注入参注解对应的接口测试代码注入测试类;
运行搭建的测试环境,利用所述性能测试框架在所述性能测试框架的接口处执行所述抽象类和所述测试类中的接口测试代码,以对所述待测接口进行接口压力性能测试,并得到所述接口压力性能测试指标对应的当前测试结果。
进一步地、所述在所述性能测试框架的接口处通过修改标注入参注解,以指定与修改后的标注入参注解对应的接口测试代码注入测试类,之前还包括:
对全部所述接口测试代码添加自动扫描注解,以使得所述测试工具在运行时自动扫描添加自动扫描注解的接口测试代码;
相应的,所述在所述性能测试框架的接口处通过修改标注入参注解,以指定与修改后的标注入参注解对应的接口测试代码注入测试类,包括:
在所述性能测试框架的接口处通过修改标注入参注解,以指定与修改后的标注入参注解对应的添加自动扫描注解的接口测试代码。
进一步地、所述使用代码编译器作为测试工具,搭建接口压力性能测试环境,之前包括:
当所述待测接口为多个不同终端的相同待测接口时,分别为每个终端配置节点地址,以使得每个终端基于对应的节点地址,使用代码编译器作为测试工具,搭建接口压力性能测试环境。
进一步地、所述方法还包括:
将所述当前测试结果按照对应的节点地址上传至测试结果数据库,以使得所述测试结果数据库根据接收的所述当前测试结果和对应的历史测试结果生成测试变化趋势图。
进一步地、所述运行搭建的测试环境,利用所述性能测试框架在所述性能测试框架的接口处执行所述抽象类和所述测试类中的接口测试代码,以对所述待测接口进行接口压力性能测试,并得到所述接口压力性能测试指标对应的当前测试结果,之前还包括:
配置所述测试环境的压测配置参数,以使得所述测试环境在所述压测配置参数下运行。
进一步地、所述方法还包括:
将全部接口测试代码执行测试的性能测试框架集成到Jenkins持续集成环境;
设置待测接口代码更新后触发测试任务机制,实现对特定集群的集成接口自动测试。
进一步地、所述从预设代码库中下载性能测试框架至所述测试环境运行时加载的测试目录,之前包括:
创建抽象类与所述实现类的继承关系,以使所述实现类继承所述抽象类;
其中,所述抽象类中封装有与所述接口测试代码对应的方法及与所述接口测试代码对应的抽象方法,
所述与所述接口测试代码对应的方法在所述抽象类中被实现,所述与所述接口测试代码对应的抽象方法在所述抽象类中被声明;
所述实现类用于实现所述抽象类中的各抽象方法。
另一方面,本发明提供一种接口压力性能测试装置,所述装置包括:
测试环境搭建模块,用于使用代码编译器作为测试工具,搭建接口压力性能测试环境;
框架下载模块,用于基于测试请求从预设代码库中下载性能测试框架至所述测试环境运行时加载的测试目录,所述性能测试框架包括抽象类和继承所述抽象类的实现类,所述实现类包括多个接口测试代码;
测试指标设置模块,用于设置待测接口的接口压力性能测试指标;
注入模块,用于在所述性能测试框架的接口处通过修改标注入参注解,以指定与修改后的标注入参注解对应的接口测试代码注入测试类;
测试模块,用于运行搭建的测试环境,利用所述性能测试框架在所述性能测试框架的接口处执行所述抽象类和所述测试类中的接口测试代码,以对所述待测接口进行接口压力性能测试,并得到所述接口压力性能测试指标对应的当前测试结果。
另一方面,本发明提供一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条指令或至少一段程序,所述至少一条指令或至少一段程序由处理器加载并执行以实现如上述所述接口压力性能测试方法。
再一方面,本发明提供一种电子设备,包括至少一个处理器,以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述至少一个处理器通过执行所述存储器存储的指令实现如上述所述接口压力性能测试方法。
本申请的实施,具有如下有益效果:
本申请通过任意代码编译器作为测试工具,并在接口压力性能测试时,通过在预设代码库中下载包含抽象类和继承所述抽象类的实现类的性能测试框架,在实现类中指定出待测接口对应的接口测试代码注入测试类,测试工具在测试时利用性能测试框架执行抽象类和测试类中的接口测试代码,进行接口压力性能测试,并得到当前测试结果,本申请的在待测接口进行测试时,无需对特定的压测工具进行撰写接口测试代码,由于接口测试代码存储在预设代码库中能够实现接口测试代码的重复使用,降低测试时间,提升测试效率。
附图说明
为了更清楚地说明本发明的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它附图。
图1是根据本申请实施例示出的一种接口压力性能测试方法的实施环境架构图;
图2是本申请实施例提供的一种接口压力性能测试方法的流程示意图;
图3是本申请实施例提供的另一种接口压力性能测试方法的流程示意图;
图4是本申请实施例提供的又一种接口压力性能测试方法的流程示意图;
图5是本申请实施例提供的再一种接口压力性能测试方法的流程示意图;
图6是本发明实施例提供的一种接口压力性能测试装置的结构示意图;
图7是本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、装置、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为了实现本申请的技术方案,让更多的工程技术工作者容易了解和应用本申请,将结合具体的实施例,进一步阐述本申请的工作原理。
请参阅图1,图1是根据本申请实施例示出的一种接口压力性能测试方法的实施环境架构图,如图1所示,该应用环境可以包括服务器01和终端02。
在一个可选的实施例中,服务器01可以是一个独立的物理服务器,也可以是多个物理服务器构成的服务器集群、分布式系统或者是一个云计算服务中心,一个物理服务器中可以搭建至少一个虚拟机服务器,每个虚拟机服务器上可以搭建至少一个应用。服务器01可以用于对应用服务资源的控制,还可以提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务等基础服务。
在一个可选的实施例中,终端02可以包括至少一个终端,用户可以通过该至少一个终端访问虚拟服务器中的应用,从而开展业务。具体的,终端02可以包括但不限于智能手机、台式计算机、笔记本电脑、数字助理、智能可穿戴设备等类型的电子设备,本申请实施例对此不进行具体限定。可选的,终端02上运行的操作系统可以包括但不限于Windows、Linux、安卓系统、IOS系统等。
另外,终端02可显示有应用界面,通过该界面可用于接收用户的操作指令以完成测试,还可用于显示接口测试的测试结果。
需要说明的是,本申请中的服务器01可以存储有预设代码库和测试结果数据库等。
终端02与服务器01通过有线或无线网络建立通信连接。
以下介绍本申请一种接口压力性能测试方法的实施例,图2是本申请实施例提供的一种接口压力性能测试方法的流程示意图,本说明书提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。具体的,如图2所示,该方案的执行主体可以是上述终端02或服务器01执行,也可以由二者配合执行,所述方法可以包括:
S102、使用代码编译器作为测试工具,搭建接口压力性能测试环境。
在具体的实施过程中,代码编译器可以是编码IDE (Integrated DevelopmentEnvironment) 集成开发环境,集成开发环境(简称IDE)软件是用于程序开发环境的应用程序,一般包括代码编辑器、编译器、调试器和图形用户界面工具。即集成了代码编写功能、分析功能、编译功能、debug功能等一体化的开发软件套。所有具备这一特性的软件或者软件套(组)都可以叫做IDE。如Visual Studio系列, C++ Builder系列等。该代码编译器可以独立运行,也可以和其它程序并用。可以理解的是,代码编译器具备基本的编码、调试功能。
在一些可能的实施例中,使用代码编译器作为测试工具,搭建接口压力性能测试环境包括:
安装代码编译器的安装包;依据待测接口的接口压力性能测试的功能,安装对应的jar包文件,其中jar包文件为功能插件。
S104、基于测试请求从预设代码库中下载性能测试框架至所述测试环境运行时加载的测试目录,所述性能测试框架包括抽象类和继承所述抽象类的实现类,所述实现类包括多个接口测试代码。
在具体的实施过程中,测试请求可以是用户在测试开始时基于测试工具的应用界面生成的。测试请求可以表征测试的开始。
预设代码库可以是预先构建的,预设代码库中存储有待测接口的开发的代码和用于接口压力性能测试的性能测试框架,性能测试框架可以是基于TestNG框架构建的。性能测试框架中可以包括抽象类和继承抽象类的实现类,实现类包括多个接口测试代码,预设代码库可以存储在终端02或服务器01中。
在一些可能的实施例中,所述从预设代码库中下载性能测试框架至所述测试环境运行时加载的测试目录,之前包括:
创建抽象类与所述实现类的继承关系,以使所述实现类继承所述抽象类;
其中,所述抽象类中封装有与所述接口测试代码对应的方法及与所述接口测试代码对应的抽象方法,
所述与所述接口测试代码对应的方法在所述抽象类中被实现,所述与所述接口测试代码对应的抽象方法在所述抽象类中被声明;
所述实现类用于实现所述抽象类中的各抽象方法。
具体的,继承抽象类的实现类在加载时可以调用抽象类中的与接口测试代码对应的方法和与接口测试代码对应的抽象方法。接口测试代码对应的方法可以包括刷新列表的方法、用于加载列表的方法、用于加载页面的方法或用于展示错误页面的方法中的至少一种。与接口测试代码对应的抽象方法可以包括用于请求数据的方法、用于获取数据类型的方法、用于获取页面标识的方法或用于展示广告的方法中的至少一种。
其中,继承是一个进程,通过继承,一个对象可以获得另一个对象的属性(包括函数),并可向其中加入属于自己的一些特征。用继承的方法可以自动为一个类提供来自另一个类的操作和数据结构,进而使程序设计人员在一个一般的类的基础上很快建立一个新的类,而不必从零开始设计每个类。
在实际测试过程中,性能测试框架可以下载至测试环境运行时加载的测试目录,以保证在测试时测试环境能够加载性能测试框架。
可以理解的是,抽象类中有与每个接口测试代码一一对应的方法和抽象方法。每个接口测试代码可以继承对应抽象类中的方法和抽象方法,以保证在测试时接口测试代码能够准确的加载并执行。
或,实现类中的各个接口测试代码均继承抽象类中的接口测试代码对应的方法和抽象方法,在接口压力性能测试中,各接口测试代码对应的测试具有相同或相似的测试流程,不同的是,不同接口测试代码对应的测试,具有不同的接口压力性能参数。
S106、设置待测接口的接口压力性能测试指标。
在具体的实施过程中,接口压力性能测试指标可以是用户在上述应用界面中录入的。接口压力性能测试指标的具体内容可以待测接口确定,用于验证测试结果是否能够达到预期效果,接口压力性能测试指标可以包括:吞吐量、响应时间、错误率等。
S108、在所述性能测试框架的接口处通过修改标注入参注解,以指定与修改后的标注入参注解对应的接口测试代码注入测试类。
在具体的实施过程中,性能测试框架还可以包括接口,性能测试框架的接口用于与测试工具数据交互。接口中有用于指定Beanid注入测试类的标注入参注解,标注入参注解的修改可以根据对应的接口测试代码确定,标注入参注解可以是@Qualifier。Qualifier的意思是合格者,通过这个注解,表明了实现类中的哪个接口测试代码才是待测接口所需要的,@Qualifier是一种计算机编程语句,在使用Spring框架中@Autowired注解进行自动注入时,Spring 容器中匹配的候选Bean数目必须有且仅有一个,即在实现类中,不同的接口测试代码的名称一定不相同。
可以理解的是,性能测试框架中封装的各个接口测试代码可以是基于Spring进行的,在使用@Autowire自动注入的时候,加上@Qualifier(“test”)可以指定注入哪个对象,其中,Spring是一个开源框架。
示例地、可以将@Qualifier(“test”)中的参数test的部分修改为待测接口对应的接口测试代码的名称,以将测接口对应的接口测试代码注入测试类中,使得性能测试框架的接口在运行时可以调用测试类中的接口测试代码对待测接口进行测试。
需要说明的是,@Qualifier 的标注对象可以是各个接口测试代码的成员变量、方法入参、构造函数入参等。
S110、运行搭建的测试环境,利用所述性能测试框架在所述性能测试框架的接口处执行所述抽象类和所述测试类中的接口测试代码,以对所述待测接口进行接口压力性能测试,并得到所述接口压力性能测试指标对应的当前测试结果。
在具体的实施过程中,在搭建的测试环境中,导入性能测试框架,由性能测试框架和测试环境协同实现待测接口的接口压力性能测试。在测试过程中,通过性能测试框架的接口处通过TestNG的方式执行所述抽象类和所述测试类中的接口测试代码,并得到当前测试结果并存储至相应的路径。当前测试结果与接口压力性能测试指标相互对应。
上述应用界面还可以在测试完成后显示当前测试结果,提高测试效率,提升用户好感度。
在一些可能的实施例中,基于测试请求依赖MySQL数据库,利用SQL语句创建测试日志表,在测试过程中,测试日志表可以用于记录当前测试结果。
本申请通过任意代码编译器作为测试工具,并在接口压力性能测试时,通过在预设代码库中下载包含抽象类和继承所述抽象类的实现类的性能测试框架,在实现类中指定出待测接口对应的接口测试代码注入测试类,测试工具在测试时利用性能测试框架执行抽象类和测试类中的接口测试代码,进行接口压力性能测试,并得到当前测试结果,本申请的在待测接口进行测试时,无需对特定的压测工具进行撰写接口测试代码,在待测接口更新后,仍可使用对应的接口测试代码进行测试,能够实现接口测试代码的重复使用,降低测试时间,提升测试效率。
在上述实施例的基础上,本说明书一个实施例中,图3是本申请实施例提供的另一种接口压力性能测试方法的流程示意图,如图3所示,所述在所述性能测试框架的接口处通过修改标注入参注解,以指定与修改后的标注入参注解对应的接口测试代码注入测试类,之前还包括:
S202、对全部所述接口测试代码添加自动扫描注解,以使得所述测试工具在运行时自动扫描添加自动扫描注解的接口测试代码。
在具体的实施过程中,自动扫描注解可以是Spring中的@Service,通过对全部接口测试代码添加自动扫描注解,可以实现测试工具在运行时自动扫描添加自动扫描注解的接口测试代码。
相应的,所述在所述性能测试框架的接口处通过修改标注入参注解,以指定与修改后的标注入参注解对应的接口测试代码注入测试类,包括:
S1082、在所述性能测试框架的接口处通过修改标注入参注解,以指定与修改后的标注入参注解对应的添加自动扫描注解的接口测试代码。
在具体的实施过程中,当全部接口测试代码均添加自动扫描注解时,修改的标注入参注解的参数名称可以是上述自动扫描注解中的一个。需要说明的是,每个自动扫描注解参数也是不相同的。即,@Qualifier的参数名称为@Service注解的名称之一。通过对每个接口测试代码均添加自动扫描注解,能够在测试时提升测试效率,降低测试时间。
在上述实施例基础上,本说明书一个实施例中,图4是本申请实施例提供的又一种接口压力性能测试方法的流程示意图,如图4所示,所述使用代码编译器作为测试工具,搭建接口压力性能测试环境,之前包括:
S302、当所述待测接口为多个不同终端的相同待测接口时,分别为每个终端配置节点地址,以使得每个终端基于对应的节点地址,使用代码编译器作为测试工具,搭建接口压力性能测试环境。
在上述实施例基础上,本说明书一个实施例中,图5是本申请实施例提供的再一种接口压力性能测试方法的流程示意图,如图5所示,所述方法还包括:
S402、将所述当前测试结果按照对应的节点地址上传至测试结果数据库,以使得所述测试结果数据库根据接收的所述当前测试结果和对应的历史测试结果生成测试变化趋势图。
在具体的实施过程中,当对不同终端的待测接口同时进行测试时,可以预先通过网络代理的方式为每个终端配置节点地址,每个节点地址用于表征对应的终端,在测试时,可以根据测试请求确定每个终端是主机还是从机,主机只有一个,其余为从机。在测试之前,每个终端均需要执行上述S102-S108的步骤,即每个终端的代码编译器同步性能测试框架并设置压力性能测试指标后,同步执行测试,测试完成后,主机可以记录自身的测试结果,并收集全部从机测试结果,而后通过应用界面展示全部的测试结果,主机还可以按照节点地址的将全部测试结果上传至测试结果数据库。测试结果数据库中记录有当前测试结果和历史测试结果,主机可以获取测试结果数据库中记录历史测试结果,并根据当前测试结果生成,每个节点地址对应的测试变化趋势图。以可视化的形式为用户提供测试参考依据。
需要说明的是,上述各个终端可以相互实现信息交互。
可以理解的是,在测试完成后,主机还可以以节点地址为类别,生成每个节点地址的测试报告,根据测试报告分析测试结果,最后提高测试质量和自动化测试覆盖率。测试报告可以以常用的办公格式展现,如word、excel、pdf等。
本说明书实施例提供的接口压力性能测试方法,可以应用在集群模式(多个能够实现信息相互的终端),通过主机控制的方式能够实现全部终端的同步测试,并在测试完成后通过主机收集和展示全部终端的测试结果,提升测试速度,通过可视化的方式便于用户了解测试结果,提升用户好感度。
在上述实施例基础上,本说明书一个实施例中,所述运行搭建的测试环境,利用所述性能测试框架在所述性能测试框架的接口处执行所述抽象类和所述测试类中的接口测试代码,以对所述待测接口进行接口压力性能测试,并得到所述接口压力性能测试指标对应的当前测试结果,之前还包括:
配置所述测试环境的压测配置参数,以使得所述测试环境在所述压测配置参数下运行。
在具体的实施过程中,测试环境的压测配置参数可以是用于支撑测试环境运行的并发线程数、线程启动间隔时间、最大线程数运行时间等参数。可以理解的是,上述参数的具体数值可以根据终端、待测接口等确定。通过配置压测配置参数可以提高本实施例的应用范围,以适应不同配置的终端和待测接口。
在上述实施例基础上,本说明书一个实施例中,所述方法还包括:
将全部接口测试代码执行测试的性能测试框架集成到Jenkins持续集成环境。
设置待测接口代码更新后触发测试任务机制,实现对特定集群的集成接口自动测试。
在具体的实施过程中,在测试完成后可以根据对应的接口测试代码的执行步骤,组合成新的自动化测试用例代码,以TestNG为自动化测试管理框架,把自动化用例代码集成到Jenkins,从而实现对特定集群的集成接口自动测试。
可以理解的是,测试任务机制可以是根据在待测接口的代码更新后执行或预设时间等方式设置。
另一方面,本发明提供一种接口压力性能测试装置,图6是本发明实施例提供的一种接口压力性能测试装置的结构示意图,参照图6,该装置可以包括:
测试环境搭建模块,用于使用代码编译器作为测试工具,搭建接口压力性能测试环境;
框架下载模块,用于基于测试请求从预设代码库中下载性能测试框架至所述测试环境运行时加载的测试目录,所述性能测试框架包括抽象类和继承所述抽象类的实现类,所述实现类包括多个接口测试代码;
测试指标设置模块,用于设置待测接口的接口压力性能测试指标;
注入模块,用于在所述性能测试框架的接口处通过修改标注入参注解,以指定与修改后的标注入参注解对应的接口测试代码注入测试类;
测试模块,用于运行搭建的测试环境,利用所述性能测试框架在所述性能测试框架的接口处执行所述抽象类和所述测试类中的接口测试代码,以对所述待测接口进行接口压力性能测试,并得到所述接口压力性能测试指标对应的当前测试结果。
在上述实施例基础上,本说明书一个实施例中,所述装置还包括:
注解添加模块,用于对全部所述接口测试代码添加自动扫描注解,以使得所述测试工具在运行时自动扫描添加自动扫描注解的接口测试代码;
相应的,注入模块具体用于在所述性能测试框架的接口处通过修改标注入参注解,以指定与修改后的标注入参注解对应的添加自动扫描注解的接口测试代码。
在上述实施例基础上,本说明书一个实施例中,所述装置还包括:
节点配置模块,用于当所述待测接口为多个不同终端的相同待测接口时,分别为每个终端配置节点地址,以使得每个终端基于对应的节点地址,使用代码编译器作为测试工具,搭建接口压力性能测试环境。
在上述实施例基础上,本说明书一个实施例中,所述装置还包括:
上传模块,用于将所述当前测试结果按照对应的节点地址上传至测试结果数据库,以使得所述测试结果数据库根据接收的所述当前测试结果和对应的历史测试结果生成测试变化趋势图。
在上述实施例基础上,本说明书一个实施例中,所述装置还包括:
参数配置模块,用于配置所述测试环境的压测配置参数,以使得所述测试环境在所述压测配置参数下运行。
在上述实施例基础上,本说明书一个实施例中,所述装置还包括:
集成模块,用于将全部接口测试代码执行测试的性能测试框架集成到Jenkins持续集成环境;
自动测试模块,用于设置待测接口代码更新后触发测试任务机制,实现对特定集群的集成接口自动测试。
在上述实施例基础上,本说明书一个实施例中,所述装置还包括:
继承创建模块,用于创建抽象类与所述实现类的继承关系,以使所述实现类继承所述抽象类。
需要说明的是,上述实施例提供的装置,在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
另一方面,图7是本发明实施例提供的一种电子设备的结构示意图,如图7所示,本发明提供一种所述接口压力性能测试方法的电子设备,所述设备包括处理器和存储器,所述存储器中存储有至少一条指令或者至少一段程序,所述至少一条指令或者至少一段程序由所述处理器加载并执行以实现如上述所述的接口压力性能测试方法。
上述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、该至少一段程序、该代码集或指令集可由电子设备的处理器执行以完成上述所述的接口压力性能测试方法。
可选地,在本发明实施例中,上述存储介质可以包括但不限于:U 盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是:上述本发明实施例先后顺序仅仅为了描述,不代表实施例的优劣。且上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(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.根据权利要求2所述接口压力性能测试方法,其特征在于,所述使用代码编译器作为测试工具,搭建接口压力性能测试环境,之前包括:
当所述待测接口为多个不同终端的相同待测接口时,分别为每个终端配置节点地址,以使得每个终端基于对应的节点地址。
4.根据权利要求3所述接口压力性能测试方法,其特征在于,所述方法还包括:
将所述当前测试结果按照对应的节点地址上传至测试结果数据库,以使得所述测试结果数据库根据接收的所述当前测试结果和对应的历史测试结果生成测试变化趋势图。
5.根据权利要求4所述接口压力性能测试方法,其特征在于,所述运行搭建的测试环境,利用所述性能测试框架在所述性能测试框架的接口处执行所述抽象类和所述测试类中的接口测试代码,以对所述待测接口进行接口压力性能测试,并得到所述接口压力性能测试指标对应的当前测试结果,之前还包括:
配置所述测试环境的压测配置参数,以使得所述测试环境在所述压测配置参数下运行。
6.根据权利要求1-5任一项所述接口压力性能测试方法,其特征在于,所述方法还包括:
将全部接口测试代码执行测试的性能测试框架集成到Jenkins持续集成环境;
设置待测接口代码更新后触发测试任务机制,实现对特定集群的集成接口自动测试。
7.根据权利要求1-5任一项所述接口压力性能测试方法,其特征在于,所述从预设代码库中下载性能测试框架至所述测试环境运行时加载的测试目录,之前包括:
创建抽象类与所述实现类的继承关系,以使所述实现类继承所述抽象类;
其中,所述抽象类中封装有与所述接口测试代码对应的方法及与所述接口测试代码对应的抽象方法,
所述与所述接口测试代码对应的方法在所述抽象类中被实现,所述与所述接口测试代码对应的抽象方法在所述抽象类中被声明;
所述实现类用于实现所述抽象类中的各抽象方法。
8.一种接口压力性能测试装置,其特征在于,所述装置包括:
测试环境搭建模块,用于使用代码编译器作为测试工具,搭建接口压力性能测试环境;
框架下载模块,用于基于测试请求从预设代码库中下载性能测试框架至所述测试环境运行时加载的测试目录,所述性能测试框架包括抽象类和继承所述抽象类的实现类,所述实现类包括多个接口测试代码;
测试指标设置模块,用于设置待测接口的接口压力性能测试指标;
注入模块,用于在所述性能测试框架的接口处通过修改标注入参注解,以指定与修改后的标注入参注解对应的接口测试代码注入测试类;
测试模块,用于运行搭建的测试环境,利用所述性能测试框架在所述性能测试框架的接口处执行所述抽象类和所述测试类中的接口测试代码,以对所述待测接口进行接口压力性能测试,并得到所述接口压力性能测试指标对应的当前测试结果。
9.一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条指令或至少一段程序,所述至少一条指令或至少一段程序由处理器加载并执行以实现如权利要求1-7中任一项所述接口压力性能测试方法。
10.一种电子设备,包括至少一个处理器,以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述至少一个处理器通过执行所述存储器存储的指令实现如权利要求1-7中任一项所述接口压力性能测试方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111055563.7A CN113505083B (zh) | 2021-09-09 | 2021-09-09 | 接口压力性能测试方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111055563.7A CN113505083B (zh) | 2021-09-09 | 2021-09-09 | 接口压力性能测试方法、装置、设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113505083A CN113505083A (zh) | 2021-10-15 |
CN113505083B true CN113505083B (zh) | 2021-12-14 |
Family
ID=78016965
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111055563.7A Active CN113505083B (zh) | 2021-09-09 | 2021-09-09 | 接口压力性能测试方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113505083B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106383786A (zh) * | 2016-09-27 | 2017-02-08 | 北京金山安全软件有限公司 | 一种接口压力性能测试方法、装置及电子设备 |
CN110888794A (zh) * | 2018-09-10 | 2020-03-17 | 北京京东尚科信息技术有限公司 | 接口测试方法和装置 |
CN113051163A (zh) * | 2021-03-24 | 2021-06-29 | 中国工商银行股份有限公司 | 单元测试方法、装置、电子设备及存储介质 |
CN113495829A (zh) * | 2020-03-20 | 2021-10-12 | 北京海致星图科技有限公司 | 一种接口自动化测试方法及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20010028359A1 (en) * | 2000-04-11 | 2001-10-11 | Makoto Muraishi | Test support apparatus and test support method for GUI system program |
-
2021
- 2021-09-09 CN CN202111055563.7A patent/CN113505083B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106383786A (zh) * | 2016-09-27 | 2017-02-08 | 北京金山安全软件有限公司 | 一种接口压力性能测试方法、装置及电子设备 |
CN110888794A (zh) * | 2018-09-10 | 2020-03-17 | 北京京东尚科信息技术有限公司 | 接口测试方法和装置 |
CN113495829A (zh) * | 2020-03-20 | 2021-10-12 | 北京海致星图科技有限公司 | 一种接口自动化测试方法及系统 |
CN113051163A (zh) * | 2021-03-24 | 2021-06-29 | 中国工商银行股份有限公司 | 单元测试方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113505083A (zh) | 2021-10-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105094783B (zh) | 安卓应用稳定性测试的方法及装置 | |
CN109901834B (zh) | 文档页面生成方法、装置、计算机设备和存储介质 | |
CN110008113B (zh) | 一种测试方法、装置、电子设备 | |
CN110825619A (zh) | 接口测试用例自动生成方法、装置及存储介质 | |
CN104077140A (zh) | 用于持续集成的自动化编译方法和编译装置 | |
WO2019227708A1 (zh) | 测试案例的在线调试装置、方法及计算机可读存储介质 | |
US10606586B2 (en) | Application architecture generation | |
CN109032631B (zh) | 应用程序补丁包获取方法、装置、计算机设备及存储介质 | |
EP3447635A1 (en) | Application architecture generation | |
CN111897727A (zh) | 软件测试方法、装置、计算机设备及存储介质 | |
CN108595319B (zh) | 函数选取方法和服务器 | |
CN111026647A (zh) | 代码覆盖率的获取方法、装置、计算机设备和存储介质 | |
CN110597710B (zh) | 测试覆盖率统计方法、装置、计算机设备及存储介质 | |
CN116841885A (zh) | 一种基于测试用例库的测试方法、装置及电子设备 | |
Faiz et al. | Flutter Framework Code Portability Measurement on Multiplatform Applications with ISO 9126 | |
CN113094252B (zh) | 测试用例生成方法、装置、计算机设备及存储介质 | |
CN113505083B (zh) | 接口压力性能测试方法、装置、设备及介质 | |
Mobilio et al. | FILO: FIx-LOcus localization for backward incompatibilities caused by Android framework upgrades | |
US11861389B2 (en) | Compiling a specified instruction from a first virtual application to a second virtual application | |
CN114356783A (zh) | 单元测试代码自动生成方法、装置、存储介质及设备 | |
CN113220586A (zh) | 一种自动化的接口压力测试执行方法、装置和系统 | |
CN110928798A (zh) | 一种代码测试方法、装置及设备 | |
CN112052007A (zh) | 源码调试方法、装置、服务器及存储介质 | |
CN112148581A (zh) | 代码规范检查方法、装置、系统及存储介质 | |
CN116594918B (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 |