CN111881060B - 一种接口性能测试方法、装置及电子设备 - Google Patents

一种接口性能测试方法、装置及电子设备 Download PDF

Info

Publication number
CN111881060B
CN111881060B CN202011036729.6A CN202011036729A CN111881060B CN 111881060 B CN111881060 B CN 111881060B CN 202011036729 A CN202011036729 A CN 202011036729A CN 111881060 B CN111881060 B CN 111881060B
Authority
CN
China
Prior art keywords
preset
thread
server
client
time
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
Application number
CN202011036729.6A
Other languages
English (en)
Other versions
CN111881060A (zh
Inventor
张欢
李智
钱泓锦
刘占亮
窦志成
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Zhiyuan Artificial Intelligence Research Institute
Original Assignee
Beijing Zhiyuan Artificial Intelligence Research Institute
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Zhiyuan Artificial Intelligence Research Institute filed Critical Beijing Zhiyuan Artificial Intelligence Research Institute
Priority to CN202011036729.6A priority Critical patent/CN111881060B/zh
Publication of CN111881060A publication Critical patent/CN111881060A/zh
Application granted granted Critical
Publication of CN111881060B publication Critical patent/CN111881060B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases

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

本发明公开了一种接口性能测试方法、装置及电子设备,其中方法包括:在预设开发环境下,通过客户端接收预设参数,并将所述预设参数发送至服务端;所述服务端根据所述预设参数进行线程管理,并返回线程的数据信息至所述客户端;所述客户端根据所述数据信息计算在预设参数下当前接口的每秒查询率值,并将所述每秒查询率值进行输出;该方法能够实现在接口开发过程中测试接口性能,提高软件的稳定性。

Description

一种接口性能测试方法、装置及电子设备
技术领域
本发明涉及计算机技术领域,尤其涉及一种接口性能测试方法、装置及电子设备。
背景技术
在软件***开发中,需要通过定义“接口”实现功能之间的关联和调用。但开发人员在例如IntelliJ IDEA的开发环境上进行接口开发的过程中,难以对开发的接口性能方面做到深入了解,以至于功能上线后常常会出现一系列并发请求引发的问题,使软件的可用度严重下降,极大的影响了用户对软件的体验度。
发明内容
本发明提供了一种接口性能测试方法、装置及电子设备,以实现对接口开发过程中的性能测试,提高软件的稳定性。
一种接口性能测试方法,包括:
在预设开发环境下,通过客户端接收预设参数,并将所述预设参数发送至服务端;
所述服务端根据所述预设参数进行线程管理,并返回线程的数据信息至所述客户端;
所述客户端根据所述数据信息计算在预设参数下当前接口的每秒查询率值,并将所述每秒查询率值进行输出。
进一步地,所述预设开发环境包括IntelliJ IDEA开发环境。
进一步地,所述预设参数包括预设线程数、预设连接数和预设时长。
进一步地,所述服务端包括选择器;
所述服务端根据所述预设参数进行线程管理,包括:
预设时长内,通过所述选择器记录按照预设线程数的线程中,每个线程内执行预设连接数的关联事件的耗时时长。
进一步地,所述数据信息为每个线程内执行预设连接数的关联事件的耗时时长;
所述客户端根据所述数据信息计算在预设参数下当前接口的每秒查询率值,包括:
在预设时长内,检测是否接收到服务端发送的预设线程数的每个线程内执行预设连接数的关联事件的耗时时长;
如果是,则计算所述耗时时长的平均值,获得所述每秒查询率值。
一种接口性能测试装置,包括服务端和客户端;
在预设开发环境下,所述客户端用于接收预设参数,并将所述预设参数发送至服务端;
所述服务端用于根据所述预设参数进行线程管理,并返回线程的数据信息至所述客户端;
所述客户端还用于根据所述数据信息计算在预设参数下当前接口的每秒查询率值,并将所述每秒查询率值进行输出。
进一步地,所述预设参数包括预设线程数、预设连接数和预设时长;所述服务端包括选择器;
所述服务端还用于在预设时长内,通过所述选择器记录按照预设线程数的线程中,每个线程内执行预设连接数的关联事件的耗时时长。
进一步地,所述数据信息为每个线程内执行预设连接数的关联事件的耗时时长;
所述客户端还用于在预设时长内,检测是否接收到服务端发送的预设线程数的每个线程内执行预设连接数的关联事件的耗时时长;如果是,则计算所述耗时时长的平均值,获得所述每秒查询率值。
一种电子设备,包括处理器和存储器,所述存储器存储有多条指令,所述处理器用于读取所述多条指令并执行上述的接口性能测试方法。
一种计算机可读存储介质,所述计算机存储介质存储有多条指令,所述多条指令可被处理器读取并执行上述的接口性能测试方法。
本发明提供的接口性能测试方法、装置及电子设备,至少包括如下有益效果:
(1)实现接口开发过程中的性能测试,提高软件的稳定性;
(2)能够提前预知接口潜在的缺陷,以便及时修复和优化;
(3)可以直接在IntelliJ IDEA环境中对本地开发完成的接口或远程接口测试,无需依附其他第三方接口性能测试软件,方便性高。
附图说明
图1为本发明提供的接口性能测试方法一种实施例的流程图。
图2为本发明提供的接口性能测试装置一种实施例的结构示意图。
图3为本发明提供的电子设备一种实施例的结构示意图。
具体实施方式
为了更好的理解上述技术方案,下面将结合说明书附图以及具体的实施方式对上述技术方案做详细的说明。
参考图1,本实施例提供一种接口性能测试方法,包括:
步骤S101,在预设开发环境下,通过客户端接收预设参数,并将所述预设参数发送至服务端;
步骤S102,所述服务端根据所述预设参数进行线程管理,并返回线程的数据信息至所述客户端;
步骤S103,所述客户端根据所述数据信息计算在预设参数下当前接口的每秒查询率值,并将所述每秒查询率值进行输出。
其中,所述客户端和服务端是在所述预设开发环境下预先创建的。在一些实施例中,在步骤S101之前,在预设开发环境下,接收用户(例如开发者)发送的服务端创建请求,根据该服务端创建请求创建服务(server)端;接收用户发送的客户端创建请求,根据该客户端创建请求创建客户(client)端。
在一些实施例中,所述预设开发环境包括IntelliJ IDEA开发环境,IntelliJIDEA开发环境提供自定义插件开发的功能,可利用该功能开发插件来实施上述方法。
在一些实施例中,所述预设参数包括预设线程数(thread)、预设连接数(connection)和预设时长(time)。所述预设参数可选地由用户输入。
执行步骤S101,通过客户端接收预设参数:预设线程数(thread)、预设连接数(connection)和预设时长(time),并将预设线程数(thread)、预设连接数(connection)和预设时长(time)传递到服务端。
步骤S102中,服务端调用所测试的接口,以按照预设线程数创建线程并按照预设连接数在线程内执行关联事件。该关联事件包括通道(channel)的建立、数据到达等,该关联事件的执行主体为所测试的接口,一个线程可包括预设连接数(connection)个关联事件。在一些实施例中,服务端包括选择器(selector)。在预设时长内,服务端通过选择器监控预设线程数(thread)下每个线程内的关联事件,记录每个线程内执行预设连接数的关联事件的耗时时长,每个线程均返回该耗时时长至客户端。
进一步地,执行步骤S103,客户端在预设时长内,检测是否接收到服务端发送的预设线程数的每个线程内执行预设连接数的关联事件的耗时时长;如果是,则计算在预设线程数下所述耗时时长的平均值,获得所述每秒查询率值(QPS)。
如果预设时长内,接收到耗时时长的线程数少于预设线程数,则不进行计算。
客户端统计出预设线程数和预设连接数条件下当前接口的每秒查询率(QPS)值,由此实现了对接口的性能测试。
在另一些实施例中,上述预设参数还包括URL,格式例如为ip+port+contextPath+interfaceName,客户端将包括URL的预设参数传递至服务端。与上述实施例不同的是,在执行步骤S102之前,服务端以所述URL作为目标地址调用接口,在步骤S102中由所调用的接口按照预设线程数创建线程并按照预设连接数在线程内执行关联事件。由此,可以针对远程接口进行性能测试。其它测试过程参照上述实施例,在此不再赘述。
本实施例提供的接口性能测试方法,至少包括如下有益效果:
(1)实现对接口开发过程中的性能测试,提高软件的稳定性;
(2)能够提前预知接口潜在的缺陷,以便及时修复和优化;
(3)可以直接在IntelliJ IDEA对本地开发完成的接口或远程接口测试,无需依附其他第三方接口性能测试软件,方便性高。
参考图2,本实施例提供一种接口性能测试装置,包括服务端201和客户端202;
在预设开发环境下,客户端202用于接收预设参数,并将所述预设参数发送至服务端201;
服务端201用于根据所述预设参数进行线程管理,并返回线程的数据信息至客户端202;
客户端202还用于根据所述数据信息计算在预设参数下当前接口的每秒查询率值,并将所述每秒查询率值进行输出。
在一些实施例中,所述预设参数包括预设线程数、预设连接数和预设时长;客户端202接收预设参数:预设线程数(thread)、预设连接数(connection)和预设时长(time),并将预设线程数(thread)、预设连接数(connection)和预设时长(time)传递到服务端。
服务端调用所测试的接口,以按照预设线程数创建线程并按照预设连接数在线程内执行关联事件。该关联事件包括通道(channel)的建立、数据到达等,该关联事件的执行主体为所测试的接口,一个线程可包括预设连接数(connection)个关联事件。在一些实施例中,服务端包括选择器(selector)。在预设时长内,服务端通过选择器监控预设线程数(thread)下每个线程内的关联事件,记录每个线程内执行预设连接数的关联事件的耗时时长,每个线程均返回该耗时时长至客户端。
客户端201还用于在预设时长内,检测是否接收到服务端发送的预设线程数的每个线程在预设连接数下的关联事件的耗时时长;如果是,则计算在预设线程数下所述耗时时长的平均值,获得所述每秒查询率值(QPS)。
如果预设时长内,接收到耗时时长的线程数少于预设线程数,则不进行计算。
客户端201统计出预设线程数和预设连接数条件下当前接口的每秒查询率(QPS)值,由此实现了对接口的性能测试。
可选地,所述预设开发环境包括IntelliJ IDEA开发环境,利用IntelliJ IDEA开发环境提供自定义插件开发的功能实现上述接口性能测试装置。上述装置作为插件直接在IntelliJ IDEA开发环境中对本地开发完成的接口进行性能测试,用户利用插件提供的界面输入所述预设参数。
在另一些实施例中,上述预设参数还包括URL,格式例如为ip+port+contextPath+interfaceName,客户端将包括URL的预设参数传递至服务端。与上述实施例不同的是,在执行步骤S102之前,服务端以所述URL作为目标地址调用接口,在步骤S102中由所调用的接口按照预设线程数创建线程并按照预设连接数在线程内执行关联事件。由此,可以针对远程接口进行性能测试。其它测试过程参照上述实施例,在此不再赘述。
本实施例提供的接口性能测试装置,至少包括如下有益效果:
(1)实现对接口开发过程中的性能测试,提高软件的稳定性;
(2)能够提前预知接口潜在的缺陷,以便及时修复和优化;
(3)可以直接在IntelliJ IDEA环境中对本地开发完成的接口或远程接口测试,无需依附其他第三方接口性能测试软件,方便性高。
参考图3,本实施例还提供一种电子设备,包括处理器301和存储器302,存储器302存储有多条指令,处理器301用于读取所述多条指令并执行上述的接口性能测试方法,例如包括:在预设开发环境下,通过客户端接收预设参数,并将所述预设参数发送至服务端;所述服务端根据所述预设参数进行线程管理,并返回线程的数据信息至所述客户端;所述客户端根据所述数据信息计算在预设参数下当前接口的每秒查询率值,并将所述每秒查询率值进行输出。
本实施例还提供一种计算机可读存储介质,所述计算机存储介质存储有多条指令,所述多条指令可被处理器读取并执行上述的接口性能测试方法,例如包括:在预设开发环境下,通过客户端接收预设参数,并将所述预设参数发送至服务端;所述服务端根据所述预设参数进行线程管理,并返回线程的数据信息至所述客户端;所述客户端根据所述数据信息计算在预设参数下当前接口的每秒查询率值,并将所述每秒查询率值进行输出。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (4)

1.一种接口性能测试方法,其特征在于,包括:
在预设开发环境下,通过客户端接收预设参数,并将所述预设参数发送至服务端,所述预设参数包括预设线程数、预设连接数和预设时长;
所述服务端根据所述预设参数进行线程管理,并返回线程的数据信息至所述客户端;
所述客户端根据所述数据信息计算在预设参数下当前接口的每秒查询率值,并将所述每秒查询率值进行输出;
所述服务端包括选择器,所述数据信息为每个线程内执行预设连接数的关联事件的耗时时长;
所述服务端根据所述预设参数进行线程管理包括:
所述服务端调用所测试的接口,以按照预设线程数创建线程并按照预设连接数在线程内执行关联事件,在预设时长内,通过所述选择器监控预设线程数下每个线程内的关联事件,记录每个线程内执行预设连接数的关联事件的耗时时长;
所述客户端根据所述数据信息计算在预设参数下当前接口的每秒查询率值,包括:
在预设时长内,检测是否接收到服务端发送的预设线程数的每个线程内执行预设连接数的关联事件的耗时时长;
如果是,则计算所述耗时时长的平均值,获得所述每秒查询率值;
其中,所述客户端和服务端是在所述预设开发环境下预先创建的,所述预设开发环境包括IntelliJ IDEA开发环境。
2.一种接口性能测试装置,其特征在于,包括服务端和客户端;
在预设开发环境下,所述客户端用于接收预设参数,并将所述预设参数发送至服务端,所述预设参数包括预设线程数、预设连接数和预设时长;
所述服务端包括选择器,所述服务端用于调用所测试的接口,以按照预设线程数创建线程并按照预设连接数在线程内执行关联事件,在预设时长内,通过所述选择器监控预设线程数下每个线程内的关联事件,记录每个线程内执行预设连接数的关联事件的耗时时长,返回该耗时时长至客户端;
所述客户端用于在预设时长内,检测是否接收到服务端发送的预设线程数的每个线程内执行预设连接数的关联事件的耗时时长;如果是,则计算所述耗时时长的平均值,获得每秒查询率值;
其中,所述客户端和服务端是在所述预设开发环境下预先创建的,所述预设开发环境包括IntelliJ IDEA开发环境。
3.一种电子设备,其特征在于,包括处理器和存储器,所述存储器存储有多条指令,所述处理器用于读取所述多条指令并执行如权利要求1所述的接口性能测试方法。
4.一种计算机可读存储介质,其特征在于,所述计算机存储介质存储有多条指令,所述多条指令可被处理器读取并执行如权利要求1所述的接口性能测试方法。
CN202011036729.6A 2020-09-28 2020-09-28 一种接口性能测试方法、装置及电子设备 Active CN111881060B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011036729.6A CN111881060B (zh) 2020-09-28 2020-09-28 一种接口性能测试方法、装置及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011036729.6A CN111881060B (zh) 2020-09-28 2020-09-28 一种接口性能测试方法、装置及电子设备

Publications (2)

Publication Number Publication Date
CN111881060A CN111881060A (zh) 2020-11-03
CN111881060B true CN111881060B (zh) 2021-01-15

Family

ID=73199174

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011036729.6A Active CN111881060B (zh) 2020-09-28 2020-09-28 一种接口性能测试方法、装置及电子设备

Country Status (1)

Country Link
CN (1) CN111881060B (zh)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102833125A (zh) * 2011-06-17 2012-12-19 腾讯科技(深圳)有限公司 测试服务器、采用该测试服务器的测试***及其测试方法
CN108512710B (zh) * 2017-02-24 2022-05-24 腾讯科技(深圳)有限公司 基于测试工具的测试方法和测试工具
CN111026636A (zh) * 2019-09-27 2020-04-17 珠海随变科技有限公司 一种软件项目的测试方法、装置、设备及存储介质
CN110750458A (zh) * 2019-10-22 2020-02-04 恩亿科(北京)数据科技有限公司 大数据平台测试方法、装置、可读存储介质及电子设备

Also Published As

Publication number Publication date
CN111881060A (zh) 2020-11-03

Similar Documents

Publication Publication Date Title
CN106681811B (zh) 基于线程池的多线程调度方法及装置
CN110471749B (zh) 任务处理方法、装置、计算机可读存储介质和计算机设备
CN110708212B (zh) 分布式***中调用链路的追踪方法及装置
CN109344066B (zh) 一种浏览器页面的测试方法、***及终端
CN104683181B (zh) 一种性能监控方法、设备和***
CN111694748B (zh) 压力测试方法及装置
CN112631879A (zh) 数据采集方法、装置、计算机可读介质及电子设备
CN103218295A (zh) Esb消息处理能力的测试方法和***
CN107102937B (zh) 一种用户界面测试方法和装置
US10432490B2 (en) Monitoring single content page application transitions
US10191844B2 (en) Automatic garbage collection thrashing monitoring
CN111881060B (zh) 一种接口性能测试方法、装置及电子设备
CN112363980A (zh) 一种分布式***的数据处理方法及装置
CN108280024A (zh) 流量分配策略测试方法、装置及电子设备
CN114077540A (zh) 一种接口测试***及接口测试方法
CN110298001B (zh) 日志数据包的获取方法和装置及计算机可读存储介质
CN110162982B (zh) 检测非法权限的方法及装置、存储介质、电子设备
CN110851688A (zh) 页面请求方法、装置和设备
CN114465919B (zh) 一种网络服务测试方法、***、电子设备及存储介质
CN111506422B (zh) 事件分析方法及***
US20180063005A1 (en) Non-blocking request processing method and device
CN112866431A (zh) 一种ip地址的分配方法、装置及计算机设备
CN112416763A (zh) 一种自动化测试接口的方法、装置、设备及存储介质
CN110908886A (zh) 一种数据发送方法、装置、电子设备和存储介质
CN116578631B (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