CN116680165B - 一种接口性能测试方法、装置以及设备 - Google Patents

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

Info

Publication number
CN116680165B
CN116680165B CN202310452923.XA CN202310452923A CN116680165B CN 116680165 B CN116680165 B CN 116680165B CN 202310452923 A CN202310452923 A CN 202310452923A CN 116680165 B CN116680165 B CN 116680165B
Authority
CN
China
Prior art keywords
interface
debugging
test
tps
concurrency
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
CN202310452923.XA
Other languages
English (en)
Other versions
CN116680165A (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.)
Xiamen International Bank Co ltd
Original Assignee
Xiamen International Bank Co ltd
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 Xiamen International Bank Co ltd filed Critical Xiamen International Bank Co ltd
Priority to CN202310452923.XA priority Critical patent/CN116680165B/zh
Publication of CN116680165A publication Critical patent/CN116680165A/zh
Application granted granted Critical
Publication of CN116680165B publication Critical patent/CN116680165B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/362Software debugging
    • 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
    • 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

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

本发明公开了一种接口性能测试方法、装置、设备及存储介质,其包括:通过所述调试工具将获取的http接口信息进行组装,得到调试接口信息;通过所述调试工具将所述调试接口信息发送至被测服务器进行接口调试,以及接收所述被测服务器返回的响应报文并基于预设的断言条件对所述响应报文进行判断;通过所述调试工具接收压测结果,所述压测结果为通过所述压测服务器根据所接收的所述调试接口信息自动生成的压测脚本以及编排的测试场景以执行所有调试接口的性能测试所得到的。能够持续地、自动地完成对开发接口的性能测试,及时有效的抓出系统的设计缺陷,提高系统的质量。

Description

一种接口性能测试方法、装置以及设备
技术领域
本发明涉及性能测试技术领域,尤其涉及接口性能测试方法、装置以及设备。
背景技术
性能测试作为测试环节的一个重要组成部分,能有效的评估出软件系统的性能缺陷,对软件系统的质量发挥重要作用。随着DevOps及敏捷开发模式的推行,需要将部分性能评估前移到开发阶段,及早的发现性能缺陷,降低问题修复成本,提高软件系统的健壮性。尤其是模块间的接口性能测试,更应该在开发环节持续对其进行性能测试。然而,传统的性能测试需要在独立的性能测试环境中,由专职的性能测试人员编写测试脚本,使用测试工具(如jmeter、LoadRunner等)进行测试后给出评估报告。因此传统的性能测试需要专业人员来编写性能测试脚本,若整体前移到开发环节,会消耗开发人员大量的精力。
发明内容
有鉴于此,本发明的目的在于提出一种接口性能测试方法、装置以及设备,旨在解决上述问题。
为实现上述目的,本发明提供一种接口性能测试方法,所述方法基于调试工具实现;所述方法包括:
通过所述调试工具将获取的http接口信息进行组装,得到调试接口信息;
通过所述调试工具将所述调试接口信息发送至被测服务器进行接口调试,以及接收所述被测服务器返回的响应报文并基于预设的断言条件对所述响应报文进行判断;
通过所述调试工具接收压测结果,所述压测结果为通过所述压测服务器根据所接收的所述调试接口信息自动生成的压测脚本以及编排的测试场景以执行所有调试接口的性能测试所得到的。
优选的,所述调试工具进一步将所述调试接口信息发送至压测服务器,;该步骤包括:
完成一次接口调试操作后,根据调试接口的URL所对应的所述调试接口信息确定对应调试接口是否为新增接口或者更新接口,若是,将对应调试接口的所述调试接口信息发送至压测服务器。
优选的,所述新增接口或者更新接口包括:
以所述被调试接口的URL作为检索条件,检索是否存在匹配的所述调试接口信息,若否,确定为所述新增接口;
若是,通过比较调试接口的数据字段,当数据字段不相同时,确定为更新接口。
优选的,所述通过所述调试工具接收压测结果,包括:
将所述压测结果与对应调试接口的历史压测结果进行对比,当所述压测结果低于历史平均值或低于预设定的基线值时,发出告警信息。
优选的,所述通过所述压测服务器根据所述调试接口信息自动生成的压测脚本以及编排的测试场景以执行所有调试接口的性能测试,包括:
通过并发步进增长阶段和二分法探寻阶段测试每一调试接口的最高TPS值。
优选的,所述通过并发步进增长阶段和二分法探寻阶段测试每一调试接口的最高TPS值,包括:
以初始并发量以及通过预设步进调整后的调整并发量分别对每一调试接口进行性能测试,得到对应调试接口的初始测试结果以及调整测试结果;
对比所述初始测试结果以及所述调整测试结果是否出现TPS下降或出现报错,若否,则进入循环测试阶段;若是,则进入所述二分法探寻阶段;其中,
所述循环测试阶段包括循环通过第三并发量继续进行性能测试,直到判断所得到的第三测试结果出现TPS下降或出现报错时,则进入所述二分法探寻阶段,其中,所述第三并发量为根据所述预设步进以及测试总次数进行调整得到的;
将进入所述二分法探寻阶段的最后两次性能测试所对应的两组数据作为判断每一调试接口的最高TPS值的数据,其中,所述两组数据包括第一并发量和第一TPS,以及第二并发量和第二TPS。
优选的,所述二分法探寻阶段包括:
判断第四并发量的调整值是否小于预设值,若是,则将所述第一TPS作为所述最高TPS值,否则,进入循环调整阶段;其中,
所述循环调整阶段包括通过所述第四并发量进行对应调试接口的性能测试,得到第四测试结果;以及,
判断所述第四测试结果是否达到预设结果,若是,则将所述第一并发量更新为所述第四并发量以及将所述第一TPS更新为所述第四测试结果中的TPS,若否,将所述第二并发量更新为所述第四并发量以及将所述第二TPS更新为所述第四测试结果中的TPS;其中,所述第四并发量为根据所述第一并发量与所述第二并发量进行调整。
为实现上述目的,本发明还提供一种接口性能测试装置,所述装置基于调试工具实现;所述装置包括:
组装单元,用于通过所述调试工具将获取的http接口信息进行组装,得到调试接口信息;
接口调试单元,用于通过所述调试工具将所述调试接口信息发送至被测服务器进行接口调试,以及接收所述被测服务器返回的响应报文并基于预设的断言条件对所述响应报文进行判断;
压测分析单元,用于通过所述调试工具接收压测结果,所述压测结果为通过所述压测服务器根据所接收的所述调试接口信息自动生成的压测脚本以及编排的测试场景以执行所有调试接口的性能测试所得到的。
为了实现上述目的,本发明还提出一种接口性能测试设备,包括处理器、存储器以及存储在所述存储器内的计算机程序,所述计算机程序被所述处理器执行以实现如上述实施例所述的一种接口性能测试方法的步骤。
为了实现上述目的,本发明还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行以实现如上述实施例所述的一种接口性能测试方法的步骤。
有益效果:
以上方案,通过调试工具对获取的http接口信息进行组装后发送http报文至被测服务器进行接口调试,以及发送至压测服务器进行自动生成性能测试脚本以完成性能测试,该过程对开发人员完全透明,无需增加开发人员工作量,减小性能测试前移的阻力。
以上方案,通过将性能测试前移到开发环节,能够持续地、自动地完成对开发接口的性能测试,及时有效的抓出系统的设计缺陷,提高系统的质量。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一实施例提供的一种接口性能测试方法的流程示意图。
图2为本发明一实施例提供的性能测试整体结构示意图。
图3为本发明一实施例提供的调试工具的结构示意图。
图4为本发明一实施例提供的调试工具中的对接压测服务单元的逻辑流程示意图。
图5为本发明一实施例提供的调试工具从压测服务器接收的压测结果的流程示意图。
图6为本发明一实施例提供的压测服务器的结构示意图。
图7为本发明一实施例提供的并发步进增长阶段的逻辑流程示意图。
图8为本发明一实施例提供的二分法探寻阶段的逻辑流程示意图。
图9为本发明一实施例提供的一种接口性能测试装置的结构示意图。
发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
为使本发明实施方式的目的、技术方案和优点更加清楚,下面将结合本发明实施方式中的附图,对本发明实施方式中的技术方案进行清楚、完整地描述,显然,所描述的实施方式是本发明一部分实施方式,而不是全部的实施方式。基于本发明中的实施方式,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施方式,都属于本发明保护的范围。因此,以下对在附图中提供的本发明的实施方式的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施方式。基于本发明中的实施方式,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施方式,都属于本发明保护的范围。
在本发明的描述中,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。
以下结合实施例详细阐述本发明的内容。
传统的性能测试还存在以下问题:传统的性能测试需要人工执行,无法充分利用环境的空闲时间,若不解决则无法实现测试前移;再有,传统的性能测试均是单次的,无法针对一些被测对象持续跟踪,及时跟踪给出每次代码变更后的性能表现,无法实现问题快速解决。
基于此,本发明提出一种接口性能测试方法,根据开发调试过程中的报文自动生成性能测试脚本,利用开发环境的空闲时间段自动完成性能测试,并持续跟踪调试接口的性能表现给出优化预警。
参照图1所示为本发明一实施例提供的一种接口性能测试方法的流程示意图。
本实施例中,该方法基于调试工具实现;该方法包括:
S11,通过所述调试工具将获取的http接口信息进行组装,得到调试接口信息;
S12,通过所述调试工具将所述调试接口信息发送至被测服务器进行接口调试,以及接收所述被测服务器返回的响应报文并基于预设的断言条件对所述响应报文进行判断;
S13,通过所述调试工具接收压测结果,所述压测结果为通过所述压测服务器根据所接收的所述调试接口信息自动生成的压测脚本以及编排的测试场景以执行所有调试接口的性能测试所得到的。
其中,在步骤S13中,压测服务器通过监测到开发环境处于空闲时间时,根据所述调试接口信息自动生成的压测脚本以及编排的测试场景以自动执行所有调试接口的性能测试。该空闲时间可在压测服务器进行自定义,如每天的0时到6时。通过在空闲时间完成对所有调试接口的性能测试评估,有效的利用了开发环境资源。
如图2所示。在本实施例中,调试工具是一个独立安装程序,通过在开发人员的终端上安装部署的,用于代替开发人员进行接口调试。调试工具的主要功能包括:
(1)实现接口调试,调试工具通过将开发人员输入的http接口信息(包括协议、URL、请求参数、http头信息、http body信息)组装成完整的http报文(调试接口信息)发送到被测服务器,并捕获被测服务器的响应并根据预设的断言条件判断响应的正确性。
(2)将上述调试接口信息及断言条件提交到压测服务器,供压测服务器自动生成压测脚本和测试场景;并接受压测服务器反馈的压测结果。
如图3所示。该调试工具主要包括前端的输入单元、报文处理单元、报文收发单元、存储单元以及对接压测服务单元。其中,前端的输入单元为UI输入层,开发人员通过该单元将待调试接口的http接口信息进行录入;报文处理单元根据http报文的结构将输入的http接口信息组装成一个完整的http报文;报文收发单元是接口调试的主要部分,将组装好的http报文发送到被测服务器端,并收集被测服务器端返回的响应报文;存储单元记录了调试工具中输入的调试接口信息、接口调试记录信息以及压测服务器返回的压测结果记录;对接压测服务单元是调试工具和压测服务器间的交互单元,主要工作过程包括:在开发人员进行开发接口调试时,调试工具自动将调试接口信息提交给压测服务器,具体逻辑流程如图4所示。开发完成一次接口调试操作后,以被调试接口的url为检索条件,检索存储单元中已提交的调试接口信息。若未提交过此url的报文,则此调试接口为“新增接口”;若已针对此url提交过调试接口信息,则继续比较调试接口的数据字段(包括HTTP协议的报文头和报文体),数据字段不相同时为“更新接口”,数据字段也相同的则为“重复调试的接口”。对于“新增接口”和“更新接口”调试工具使用HTTP协议将调试接口信息提交给压测服务器。
进一步的,如图5所示,调试工具打开后会定期给压测服务器上报自身的在线状态,上报的信息包括自身的唯一标识id,接收压测结果的调试接口信息。当收到压测服务器发送的压测结果后,以被测接口的URL为标识将压测结果进行存储,并检索历史测试结果,对比历史平均值、最近一次测试结果值等,生成展示数据条目及告警通知(接口性能低于历史平均值,或低于开发人员设定的基线值时进行告警),通知开发人员查看。
在本实施例中,通过压测服务器接收调试工具提供的调试接口信息,自动生成压测脚本、编排测试场景,并在执行压测后将测试结果传输到对应调试终端的调试工具上。如图6所示,压测服务器包括对接模块以及测试模块。其中,对接模块主要包括收集报文信息单元、调试端保活检查单元、发送测试结果单元;调试端保活检查单元为调试工具定期、主动调用状态更新接口向压测服务器提交自己的状态,压测服务器根据调试工具上报的信息进行保活处理。收集报文信息单元:调试工具调用压测服务器开放的HTTP接口,将调试接口信息提交给压测服务器,压测服务器通过收集报文信息单元以调试接口信息的URL为唯一标识,将调试接口信息存入存储单元,存储接口信息时标识了调试接口所属的调试工具,且在存储时对新增或有变更的调试接口进行标识,用于压测时重新生成新的压测脚本。推发送测试结果单元用于当自动调用测试结束后,压测服务器根据记录的调试工具地址,将各调试接口的测试结果分别推送至对应的调试工具,若调试工具当前不在线,则推送任务进入等待状态,当对应调试工具上线后压测服务器主动推送未推送的结果数据。
进一步的,压测服务器的测试模块主要包含脚本生成单元、场景编排单元、测试执行单元三个功能模块。此测试模块主要通过对接第三方性能测试工具或平台来实现(包含但不限于:jmeter等开源软件、自建的性能测试执行平台等)。对接的方式主要包括:开源代码的整合调用、第三方SDK的调用、第三方平台的openapi调用。通过第三方性能测试工具或平台,实现脚本的生成、场景的编排、测试的执行,以测试出每个调试接口的最高TPS(随着并发的增加TPS未同步增加甚至会出现下降的情况,或随着并发的增加TPS虽然一直处于增加的状态但调试接口开始出现失败的情况,将未出现失败的最高TPS定为接口的最高TPS)。
其中,所述通过所述压测服务器根据所述调试接口信息自动生成的压测脚本以及编排的测试场景以执行所有调试接口的性能测试,包括:
通过并发步进增长阶段和二分法探寻阶段测试每一调试接口的最高TPS。
进一步的,所述通过并发步进增长阶段和二分法探寻阶段测试每一调试接口的最高TPS,包括:
以初始并发量以及通过预设步进调整后的调整并发量分别对每一调试接口进行性能测试,得到对应调试接口的初始测试结果以及调整测试结果;
对比所述初始测试结果以及所述调整测试结果是否出现TPS下降或出现报错,若否,则进入循环测试阶段;若是,则进入所述二分法探寻阶段;其中,
所述循环测试阶段包括循环通过第三并发量继续进行性能测试,直到判断所得到的第三测试结果出现TPS下降或出现报错时,则进入所述二分法探寻阶段,其中,所述第三并发量为根据所述预设步进以及测试总次数进行调整得到的;
将进入所述二分法探寻阶段的最后两次性能测试所对应的两组数据作为判断每一调试接口的最高TPS值的数据,其中,所述两组数据包括第一并发量和第一TPS,以及第二并发量和第二TPS。
所述二分法探寻阶段包括:
判断第四并发量的调整值是否小于预设值,若是,则将所述第一TPS作为所述最高TPS值,否则,进入循环调整阶段;其中,
所述循环调整阶段包括通过所述第四并发量进行对应调试接口的性能测试,得到第四测试结果;以及,
判断所述第四测试结果是否达到预设结果,若是,则将所述第一并发量更新为所述第四并发量以及将所述第一TPS更新为所述第四测试结果中的TPS,若否,将所述第二并发量更新为所述第四并发量以及将所述第二TPS更新为所述第四测试结果中的TPS;其中,所述第四并发量为根据所述第一并发量与所述第二并发量进行调整。
在本实施例中,该第四并发量的调整值是指将第四并发量与第一并发量、第二并发量的差值中较小的值称为第四并发量的调整值。由于对接的第三方工具或平台一次仅可进行一个并发场景的性能测试,如N并发下的性能测试,但一次并发测试无法测出调试接口的最高TPS值,故在压测服务器端实现测试接口最高TPS的逻辑。测试接口最高TPS包括:并发步进增长阶段和二分法探寻阶段。通过该方式能较快、较准确的测试出对应测试接口的性能峰值。其中,通过并发步进增长阶段探索出峰值的大致位置,然后使用二分法探索出更精确的位置点,具体的,并发步进增长阶段的逻辑如图7所示,测试从1并发开始,并发增长的初始步进定为n(步进为每次并发数增加的量,默认值为5),测试总次数为m。两次测试结束后对比测试结果查看是否出现TPS下降或报错,若未出现TPS或请求报错则调整并发增长步进为(m-1)*n,然后按新步进增加并发量再进行测试;直到出现TPS或请求报错则进入二分法探索阶段。
如图8所示的二分法探寻阶段逻辑示意图,经过上述并发步进增长阶段结束后会有两组并发和TPS数据,该两组数据是最后两次进行性能测试所对应的并发量和TPS,一组为预测最大TPS和并发量记为(x,y),一组为最后一次测试的TPS和并发量记为(a,b)。最大TPS会在并发量y和并发量b之间产生,因此使用二分法,在y和b之间找到TPS最大且测试不报错的并发点,将并发量设置为(y+b)/2,测试性能查看是否结果更优(也就是,在测试不报错的前提下,通过比较TPS,TPS若大则更优),若更优则更新y=(y+b)/2,x=并发量为(y+b)/2下的TPS;若没有更优则更新b=(y+b)/2,a=并发量为(y+b)/2下的TPS,然后再循环调整直到(y+b)/2与y和b的差值中较小的值小于预设的最小值(默认为5)停止测试。此时,调试接口对应的最大TPS及对应的并发量会作为调试接口的性能数据结果被推送至调试工具。
参照图9所示为本发明一实施例提供的一种接口性能测试装置的结构示意图。
在本实施例中,该装置基于调试工具实现;该装置90包括:
组装单元91,用于通过所述调试工具将获取的http接口信息进行组装,得到调试接口信息;
接口调试单元92,用于通过所述调试工具将所述调试接口信息发送至被测服务器进行接口调试,以及接收所述被测服务器返回的响应报文并基于预设的断言条件对所述响应报文进行判断;
压测单元9394,用于通过所述调试工具接收压测结果,所述压测结果为通过所述压测服务器根据所接收的所述调试接口信息自动生成的压测脚本以及编排的测试场景以执行所有调试接口的性能测试所得到的。
该装置90的各个单元模块可分别执行上述方法实施例中对应步骤,故在此不对各单元模块进行赘述,详细请参见以上对应步骤的说明。
本发明实施例还提供一种设备,该设备包括如上所述的接口性能测试装置,其中,接口性能测试装置可以采用图9实施例的结构,其对应地,可以执行图1所示方法实施例的技术方案,其实现原理和技术效果类似,详细可以参见上述实施例中的相关记载,此处不再赘述。
所述设备包括:手机、数码相机或平板电脑等具有拍照功能的设备,或者具有图像处理功能的设备,或者具有图像显示功能的设备。所述设备可包括存储器、处理器、输入单元、显示单元、电源等部件。
其中,存储器可用于存储软件程序以及模块,处理器通过运行存储在存储器的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(例如图像播放功能等)等;存储数据区可存储根据设备的使用所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器还可以包括存储器控制器,以提供处理器和输入单元对存储器的访问。
输入单元可用于接收输入的数字或字符或图像信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。具体地,本实施例的输入单元除了包括摄像头,还可包括触敏表面(例如触摸显示屏)以及其他输入设备。
显示单元可用于显示由用户输入的信息或提供给用户的信息以及设备的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。显示单元可包括显示面板,可选的,可以采用LCD(Liquid Crystal Display,液晶显示器)、OLED(Organic Light-Emitting Diode,有机发光二极管)等形式来配置显示面板。进一步的,触敏表面可覆盖显示面板,当触敏表面检测到在其上或附近的触摸操作后,传送给处理器以确定触摸事件的类型,随后处理器根据触摸事件的类型在显示面板上提供相应的视觉输出。
本发明实施例还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中的存储器中所包含的计算机可读存储介质;也可以是单独存在,未装配入设备中的计算机可读存储介质。该计算机可读存储介质中存储有至少一条指令,所述指令由处理器加载并执行以实现图1所示的接口性能测试方法。所述计算机可读存储介质可以是只读存储器,磁盘或光盘等。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置实施例、设备实施例及存储介质实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
并且,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
上述说明示出并描述了本发明的优选实施例,应当理解本发明并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文发明构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求的保护范围内。

Claims (7)

1.一种接口性能测试方法,其特征在于,所述方法基于调试工具实现;所述方法包括:
通过所述调试工具将获取的http接口信息进行组装,得到调试接口信息;
通过所述调试工具将所述调试接口信息发送至被测服务器进行接口调试,以及接收所述被测服务器返回的响应报文并基于预设的断言条件对所述响应报文进行判断;
通过所述调试工具接收压测结果,所述压测结果为通过压测服务器根据所接收的所述调试接口信息自动生成的压测脚本以及编排的测试场景以执行所有调试接口的性能测试所得到的;其中,所述通过压测服务器根据所述调试接口信息自动生成的压测脚本以及编排的测试场景以执行所有调试接口的性能测试,包括:
通过并发步进增长阶段和二分法探寻阶段测试每一调试接口的最高TPS值;该步骤包括:
以初始并发量以及通过预设步进调整后的调整并发量分别对每一调试接口进行性能测试,得到对应调试接口的初始测试结果以及调整测试结果;
对比所述初始测试结果以及所述调整测试结果是否出现TPS下降或出现报错,若否,则进入循环测试阶段;若是,则进入所述二分法探寻阶段;其中,
所述循环测试阶段包括循环通过第三并发量继续进行性能测试,直到判断所得到的第三测试结果出现TPS下降或出现报错时,则进入所述二分法探寻阶段,其中,所述第三并发量为根据所述预设步进以及测试总次数进行调整得到的;
将进入所述二分法探寻阶段的最后两次性能测试所对应的两组数据作为判断每一调试接口的最高TPS值的数据,其中,所述两组数据包括第一并发量和第一TPS,以及第二并发量和第二TPS;其中,所述二分法探寻阶段包括:
判断第四并发量的调整值是否小于预设值,若是,则将所述第一TPS作为所述最高TPS值,否则,进入循环调整阶段;其中,
所述循环调整阶段包括通过所述第四并发量进行对应调试接口的性能测试,得到第四测试结果;以及,
判断所述第四测试结果是否达到预设结果,若是,则将所述第一并发量更新为所述第四并发量以及将所述第一TPS更新为所述第四测试结果中的TPS,若否,将所述第二并发量更新为所述第四并发量以及将所述第二TPS更新为所述第四测试结果中的TPS;其中,所述第四并发量为根据所述第一并发量与所述第二并发量进行调整。
2.根据权利要求1所述的一种接口性能测试方法,其特征在于,所述调试工具进一步将所述调试接口信息发送至压测服务器;该步骤包括:
完成一次接口调试操作后,根据调试接口的URL所对应的所述调试接口信息确定对应调试接口是否为新增接口或者更新接口,若是,将对应调试接口的所述调试接口信息发送至压测服务器。
3.根据权利要求2所述的一种接口性能测试方法,其特征在于,所述新增接口或者更新接口包括:
以所述调试接口的URL作为检索条件,检索是否存在匹配的所述调试接口信息,若否,确定为所述新增接口;
若是,通过比较调试接口的数据字段,当数据字段不相同时,确定为更新接口。
4.根据权利要求1所述的一种接口性能测试方法,其特征在于,所述通过所述调试工具接收压测结果,包括:
将所述压测结果与对应调试接口的历史压测结果进行对比,当所述压测结果低于历史平均值或低于预设定的基线值时,发出告警信息。
5.一种接口性能测试装置,其特征在于,所述装置基于调试工具实现;所述装置包括:
组装单元,用于通过所述调试工具将获取的http接口信息进行组装,得到调试接口信息;
接口调试单元,用于通过所述调试工具将所述调试接口信息发送至被测服务器进行接口调试,以及接收被测服务器返回的响应报文并基于预设的断言条件对所述响应报文进行判断;
压测分析单元,用于通过所述调试工具接收压测结果,所述压测结果为通过压测服务器根据所接收的所述调试接口信息自动生成的压测脚本以及编排的测试场景以执行所有调试接口的性能测试所得到的;其中,所述通过压测服务器根据所述调试接口信息自动生成的压测脚本以及编排的测试场景以执行所有调试接口的性能测试,包括:
通过并发步进增长阶段和二分法探寻阶段测试每一调试接口的最高TPS值;该步骤包括:
以初始并发量以及通过预设步进调整后的调整并发量分别对每一调试接口进行性能测试,得到对应调试接口的初始测试结果以及调整测试结果;
对比所述初始测试结果以及所述调整测试结果是否出现TPS下降或出现报错,若否,则进入循环测试阶段;若是,则进入所述二分法探寻阶段;其中,
所述循环测试阶段包括循环通过第三并发量继续进行性能测试,直到判断所得到的第三测试结果出现TPS下降或出现报错时,则进入所述二分法探寻阶段,其中,所述第三并发量为根据所述预设步进以及测试总次数进行调整得到的;
将进入所述二分法探寻阶段的最后两次性能测试所对应的两组数据作为判断每一调试接口的最高TPS值的数据,其中,所述两组数据包括第一并发量和第一TPS,以及第二并发量和第二TPS;其中,所述二分法探寻阶段包括:
判断第四并发量的调整值是否小于预设值,若是,则将所述第一TPS作为所述最高TPS值,否则,进入循环调整阶段;其中,
所述循环调整阶段包括通过所述第四并发量进行对应调试接口的性能测试,得到第四测试结果;以及,
判断所述第四测试结果是否达到预设结果,若是,则将所述第一并发量更新为所述第四并发量以及将所述第一TPS更新为所述第四测试结果中的TPS,若否,将所述第二并发量更新为所述第四并发量以及将所述第二TPS更新为所述第四测试结果中的TPS;其中,所述第四并发量为根据所述第一并发量与所述第二并发量进行调整。
6.一种接口性能测试设备,其特征在于,包括处理器、存储器以及存储在所述存储器内的计算机程序,所述计算机程序被所述处理器执行以实现如权利要求1至4任意一项所述的一种接口性能测试方法的步骤。
7.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行以实现如权利要求1至4任意一项所述的一种接口性能测试方法的步骤。
CN202310452923.XA 2023-04-25 2023-04-25 一种接口性能测试方法、装置以及设备 Active CN116680165B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310452923.XA CN116680165B (zh) 2023-04-25 2023-04-25 一种接口性能测试方法、装置以及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310452923.XA CN116680165B (zh) 2023-04-25 2023-04-25 一种接口性能测试方法、装置以及设备

Publications (2)

Publication Number Publication Date
CN116680165A CN116680165A (zh) 2023-09-01
CN116680165B true CN116680165B (zh) 2024-01-23

Family

ID=87779876

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310452923.XA Active CN116680165B (zh) 2023-04-25 2023-04-25 一种接口性能测试方法、装置以及设备

Country Status (1)

Country Link
CN (1) CN116680165B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117389873A (zh) * 2023-10-12 2024-01-12 厦门国际银行股份有限公司 一种接口服务自动化测试方法、装置及设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107547309A (zh) * 2017-08-21 2018-01-05 北京奇安信科技有限公司 一种安全网关性能的自动化测试方法及装置
WO2020238066A1 (zh) * 2019-05-24 2020-12-03 平安国际智慧城市科技股份有限公司 一种软件的压力测试方法、装置、存储介质和服务器
CN114490290A (zh) * 2022-01-21 2022-05-13 杭州笨马网络技术有限公司 一种提高压力测试效率的方法及系统
CN115562978A (zh) * 2022-09-26 2023-01-03 四川启睿克科技有限公司 基于业务场景的性能测试系统及方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107547309A (zh) * 2017-08-21 2018-01-05 北京奇安信科技有限公司 一种安全网关性能的自动化测试方法及装置
WO2020238066A1 (zh) * 2019-05-24 2020-12-03 平安国际智慧城市科技股份有限公司 一种软件的压力测试方法、装置、存储介质和服务器
CN114490290A (zh) * 2022-01-21 2022-05-13 杭州笨马网络技术有限公司 一种提高压力测试效率的方法及系统
CN115562978A (zh) * 2022-09-26 2023-01-03 四川启睿克科技有限公司 基于业务场景的性能测试系统及方法

Also Published As

Publication number Publication date
CN116680165A (zh) 2023-09-01

Similar Documents

Publication Publication Date Title
US9824002B2 (en) Tracking of code base and defect diagnostic coupling with automated triage
US7788540B2 (en) Tracking down elusive intermittent failures
US20080141221A1 (en) Using recorder technology to find defects in software applications
US9372781B2 (en) Program subset execution and debug
CN116680165B (zh) 一种接口性能测试方法、装置以及设备
US6944849B1 (en) System and method for storing and reporting information associated with asserts
US20050102569A1 (en) Performing diagnosis in a computer system
CN110502366B (zh) 案例执行方法、装置、设备及计算机可读存储介质
CN110784374A (zh) 业务系统运行状态的监控方法、装置、设备和系统
US20070079290A1 (en) System and method for dimensional explorer for performance test
US20190079854A1 (en) Systems and methods for executing tests
WO2018171195A1 (zh) 一种基于依赖注入的安卓应用半自动化测试方法
CN110879781A (zh) 程序调试方法、装置、电子设备及计算机可读存储介质
CN110740071A (zh) 一种网络接口监控的方法、装置及系统
CN107451056B (zh) 监听接口测试结果的方法及装置
US20050091003A1 (en) Computer system diagnostic procedures performed in specified order
US7263634B2 (en) Failures of computer system diagnostic procedures addressed in specified order
US7260744B2 (en) Computer system diagnosis with user-developed procedure
US11341022B2 (en) Runtime performance introspection
US8024301B2 (en) Automatic database diagnostic usage models
KR102109536B1 (ko) 장애 유형 기반의 서버 장애 진단 및 대응 방법
US20160275002A1 (en) Image capture in application lifecycle management for documentation and support
CN113377468A (zh) 一种脚本执行方法、装置、电子设备及存储介质
Oppenheimer et al. Practical issues in dependability benchmarking
CN112231202A (zh) 一种基于日志监控和被测模块监控的自动提Bug方法

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