CN112069078A - Esa接口压力测试方法、装置、测试设备及存储介质 - Google Patents
Esa接口压力测试方法、装置、测试设备及存储介质 Download PDFInfo
- Publication number
- CN112069078A CN112069078A CN202010967715.XA CN202010967715A CN112069078A CN 112069078 A CN112069078 A CN 112069078A CN 202010967715 A CN202010967715 A CN 202010967715A CN 112069078 A CN112069078 A CN 112069078A
- Authority
- CN
- China
- Prior art keywords
- esa
- interface
- test
- pressure test
- esasample
- 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.)
- Granted
Links
- 238000012360 testing method Methods 0.000 title claims abstract description 320
- 238000000034 method Methods 0.000 claims abstract description 79
- 230000004044 response Effects 0.000 claims abstract description 47
- 230000002452 interceptive effect Effects 0.000 claims abstract description 30
- 238000004806 packaging method and process Methods 0.000 claims abstract description 24
- 230000008569 process Effects 0.000 claims description 16
- 238000004590 computer program Methods 0.000 claims description 13
- 238000005538 encapsulation Methods 0.000 claims description 11
- 238000011161 development Methods 0.000 claims description 7
- 230000003993 interaction Effects 0.000 claims description 7
- 230000005540 biological transmission Effects 0.000 claims description 6
- 238000013522 software testing Methods 0.000 abstract description 2
- 230000006870 function Effects 0.000 description 10
- 238000012545 processing Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 4
- 230000001960 triggered effect Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 238000009662 stress testing Methods 0.000 description 3
- 238000010998 test method Methods 0.000 description 3
- 230000001419 dependent effect Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000009530 blood pressure measurement Methods 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000007599 discharging Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
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
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/02—Banking, e.g. interest calculation or account maintenance
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- Finance (AREA)
- General Engineering & Computer Science (AREA)
- Accounting & Taxation (AREA)
- Development Economics (AREA)
- Quality & Reliability (AREA)
- Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Technology Law (AREA)
- General Business, Economics & Management (AREA)
- Human Computer Interaction (AREA)
- Computer Hardware Design (AREA)
- Debugging And Monitoring (AREA)
- Automatic Analysis And Handling Materials Therefor (AREA)
Abstract
本发明涉及软件测试技术领域,提供一种ESA接口压力测试方法、装置、测试设备及存储介质,包括:对ESA交互界面中输入的测试参数进行封装得到请求参数;在EsaSample类中对请求参数进行封装得到封装请求;响应于封装请求,采用泛化调用方式调用ESA接口进行本轮次的压力测试;在本轮次压力测试结束后,获取ESA接口返回的响应数据,并将响应数据传输到EsaSample类;通过EsaSample类根据响应数据判断本轮次压力测试EsaSample类中的Sample方法执行是否通过;在确定EsaSample类中的Sample方法执行通过后,采用泛化调用方式调用ESA接口进行下一轮次的压力测试。本发明能够直接调用ESA接口进行压力测试。此外,本发明还涉及区块链技术领域,压力测试结束后生成的测试报告存储于区块链中。
Description
技术领域
本发明涉及软件测试技术领域,具体涉及一种ESA接口压力测试方法、装置、测试设备及存储介质。
背景技术
银行ESA接口是基于银行专有框架用于内部***间调用的一种接口协议,是内部***使用最多的接口类型。
测试人员在银行内部压测ESA接口时需要开发一个专门的Http协议转ESA接口,中转服务需要单独开发,成本较大,调用不方便,导致ESA接口测试效率较低;且中转服务的性能可能会导致压测结果不准确,跟真实的测试场景存在偏差。
因此,有必要提供一种能够直接调用ESA接口进行压力测试的方案。
发明内容
鉴于以上内容,有必要提出一种ESA接口压力测试方法、装置、测试设备及存储介质,能够直接调用ESA接口进行压力测试,测试效率高,测试结果准确。
本发明的第一方面提供一种ESA接口压力测试方法,所述方法包括:
获取ESA交互界面中输入的测试参数并对所述测试参数进行封装得到请求参数;
发送所述请求参数至EsaSample类中并在所述EsaSample类中对所述请求参数进行封装得到封装请求;
响应于所述封装请求,采用泛化调用方式调用ESA接口进行本轮次的压力测试;
在本轮次压力测试结束后,获取所述ESA接口返回的响应数据,并将所述响应数据传输到所述EsaSample类;
根据所述响应数据判断所述EsaSample类中的Sample方法执行是否通过;
在确定所述EsaSample类中的Sample方法执行通过后,采用所述泛化调用方式调用所述ESA接口进行下一轮次的压力测试,并当满足预设压力测试结束条件时结束压力测试。
根据本发明的一个可选的实施例,在所述获取ESA交互界面中输入的测试参数之前,所述方法还包括:
接收Jmeter框架的启动指令,运行所述Jmeter框架;
侦测到用户在所述Jmeter框架中对预设ESA接口的Jmeter插件的确定指令时,显示所述ESA交互界面;
在所述ESA交互界面中显示可供选择的注册中心的地址及ESA接口服务的名称。
根据本发明的一个可选的实施例,所述预设ESA接口的Jmeter插件的开发过程包括:
定义一个EsaSample类;
在所述EsaSample类中定义一个sample方法;
通过所述EsaSample类继承所述Jmeter框架中的抽象采样器;
在所述sample方法中实现ESA接口压力测试的调用逻辑。
根据本发明的一个可选的实施例,所述根据所述响应数据判断所述EsaSample类中的Sample方法执行是否通过包括:
获取所述响应数据中的所述ESA接口的指标项;
判断所述指标项是否符合预设压力测试指标;
响应于所述指标项符合所述预设压力测试指标时,确定所述EsaSample类中的Sample方法执行通过;
响应于所述指标项不符合所述预设压力测试指标时,确定所述EsaSample类中的Sample方法执行不通过。
根据本发明的一个可选的实施例,所述判断所述指标项是否符合预设压力测试指标包括:
判断所述指标项是否小于预设指标项阈值;
当所述指标项小于或者等于所述预设指标项阈值时,确定所述指标项符合所述预设压力测试指标;
当所述指标项大于所述预设指标项阈值时,确定所述指标项不符合所述预设压力测试指标。
根据本发明的一个可选的实施例,所述调用所述ESA接口进行下一轮次的压力测试包括:
第一轮测试时模拟第一并发量访问所述ESA接口;
后一轮测试时在前一轮测试的并发量的基础上增加预设并发量得到第二并发量,并模拟所述第二并发量访问所述ESA接口。
根据本发明的一个可选的实施例,所述预设压力测试结束条件包括:执行压力测试的轮次大于预设轮次,任意轮次的压力测试的并发量大于预设并发量,所述方法还包括:
在压力测试结束之后,采用预设格式根据每轮测试的并发量及对应的指标项生成测试报告。
本发明的第二方面提供一种ESA接口压力测试装置,所述装置包括:
第一封装模块,用于获取ESA交互界面中输入的测试参数并对所述测试参数进行封装得到请求参数;
第二封装模块,用于发送所述请求参数至EsaSample类中并在所述EsaSample类中对所述请求参数进行封装得到封装请求;
压力测试模块,用于响应于所述封装请求,采用泛化调用方式调用ESA接口进行本轮次的压力测试;
数据传输模块,用于在本轮次压力测试结束后,获取所述ESA接口返回的响应数据,并将所述响应数据传输到所述EsaSample类;
测试判断模块,用于根据所述响应数据判断所述EsaSample类中的Sample方法执行是否通过;
所述压力测试模块,还用于在确定所述EsaSample类中的Sample方法执行通过后,采用所述泛化调用方式调用所述ESA接口进行下一轮次的压力测试,并当满足预设压力测试结束条件时结束压力测试。
本发明的第三方面提供一种测试设备,所述测试设备包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现所述的ESA接口压力测试方法。
本发明的第四方面提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现所述的ESA接口压力测试方法。
综上所述,本发明所述的ESA接口压力测试方法、装置、测试设备及存储介质,不需要如同现有技术中需要开发专门的HTTP协议进行中转做ESA接口的压力测试,通过开发ESA接口Jmeter插件这个工具并集成到Jmeter框架中,从而去掉了中转服务这个过程。由于本发明所述的方法能够在Jmeter框架中通过ESA接口的Jmeter插件直接调用ESA接口进行压力测试,使得测试过程能够和真实***调用场景保持一致,因而测试效率较高,且测试结果更准确。
附图说明
图1是本发明实施例一提供的ESA接口压力测试方法的流程图。
图2是本发明实施例二提供的ESA接口压力测试装置的结构图。
图3是本发明实施例三提供的测试设备的结构示意图。
具体实施方式
为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施例对本发明进行详细描述。需要说明的是,在不冲突的情况下,本发明的实施例及实施例中的特征可以相互组合。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。
图1是本发明实施例一提供的ESA接口压力测试方法的流程图。所述的ESA接口压力测试方法具体包括以下步骤,根据不同的需求,该流程图中步骤的顺序可以改变,某些可以省略。
S11,获取ESA交互界面中输入的测试参数并对所述测试参数进行封装得到请求参数。
其中,所述测试参数可以包括,但不限于:注册中心的地址及ESA接口服务的名称等。
其中,所述测试参数可以为Json格式。
在一个可选的实施例中,在所述获取ESA交互界面中输入的测试参数之前,所述方法还包括:
接收Jmeter框架的启动指令,运行所述Jmeter框架;
侦测到用户在所述Jmeter框架中对预设ESA接口的Jmeter插件的确定指令时,显示所述ESA交互界面;
在所述ESA交互界面中显示可供选择的注册中心的地址及ESA接口服务的名称。
其中,Jmeter框架是基于java语言开发的主要用来做测试的一种开源测试工具。用户开发定制化的取样器插件,首先需要开发取样器的图形界面,扩展实现JMeter的AbstractSamplerGui类;然后开发取样器的处理逻辑类,扩展实现JMeter的AbstractSampler类,实现协议交互,发送请求报文并处理返回的响应结果;最后将开发调试好的代码编译,与描述了依赖关系的pom.xml一起打成JAR包,拷贝到JMeter的lib\ext目录下,其它相关依赖JAR包拷贝到JMeter的lib目录下。
开发实现定制化的调用ESA接口压力测试的取样器插件,需要扩展实现org.apache.jmeter.samplers.gui.AbstractSamplerGui抽象类创建定制化的ESA接口压力测试取样器界面,并且扩展实现org.apache.jmeter.samplers.AbstractSampler抽象类完成定制化的ESA接口压力测试取样器发送请求和接收响应信息的处理逻辑。
选择指令可由用户点击待测试ESA接口路径而触发,或者由用户在所述ESA交互界面中的特定输入框中输入待测试ESA接口的路径而触发。
示例性的,如在所述ESA交互界面中显示不同的注册中心的地址及ESA接口服务的名称,或者在所述ESA交互界面显示下拉按钮,当用户点击与待测试ESA接口对应的下拉按钮时,在所述ESA交互界面显示出与该待测试ESA接口对应的注册中心的地址及ESA接口服务的名称。
在一个可选的实施例中,所述预设ESA接口的Jmeter插件的开发过程包括:
定义一个EsaSample类;
在所述EsaSample类中定义一个sample方法;
通过所述EsaSample类继承所述Jmeter框架中的抽象采样器;
在所述sample方法中实现ESA接口压力测试的调用逻辑。
其中,EsaSmaple是自定义的一个采样器,sample是EsaSmaple中的一个方法,EsaSample类通过继承所述抽象采样器AbstractSampler,使得Jmeter框架在运行时能够调用EsaSample类中的sample方法,从而在所述sample方法实现ESA接口压力测试的调用逻辑。
S12,发送所述请求参数至EsaSample类中并在所述EsaSample类中对所述请求参数进行封装得到封装请求。
测试设备将所述请求参数作为入参传输给EsaSample类,使得所述EsaSample类将所述请求参数封装成Map类型的封装请求。
S13,响应于所述封装请求,采用泛化调用方式调用ESA接口进行本轮次的压力测试。
其中,泛化调用是指不依赖的应用程序接口(Application ProgrammingInterface,API)包的调用,使得ESA接口的Jmeter插件更具独立性和可用性。
S14,在本轮次压力测试结束后,获取所述ESA接口返回的响应数据,并将所述响应数据传输到所述EsaSample类。
通过所述预设ESA接口的Jmeter插件调用ESA接口时,ESA接口会进行响应,并将响应数据回传给所述预设ESA接口的Jmeter插件,通过所述预设ESA接口的Jmeter插件中的所述EsaSample类获取所述响应数据。
S15,根据所述响应数据判断所述EsaSample类中的Sample方法执行是否通过。
由于ESA接口每次进行响应时,会回传较多的响应数据,但这些响应数据并非全是测试人员所需要的数据,因此,所述EsaSample类从所述响应数据中获取多个关键数据,并对所述多个关键数据进行拼装,通过所述EsaSample类根据拼装后的数据判断所述EsaSample类中的Sample方法执行是否通过。
在一个可选的实施例中,所述根据所述响应数据判断所述EsaSample类中的Sample方法执行是否通过包括:
获取所述响应数据中的所述ESA接口的指标项;
判断所述指标项是否符合预设压力测试指标;
响应于所述指标项符合所述预设压力测试指标时,确定所述EsaSample类中的Sample方法执行通过;
响应于所述指标项不符合所述预设压力测试指标时,确定所述EsaSample类中的Sample方法执行不通过。
在该可选的实施例中,可以进行多轮测试,并在每轮测试时判断ESA接口的指标项是否满足了预设压力测试指标,当确定某一轮测试时ESA接口的指标项符合了预设压力测试指标时,触发本轮次的压力测试结束指令,结束本轮次的ESA接口的压力测试。
在一个可选的实施例中,所述判断所述指标项是否符合预设压力测试指标包括:
判断所述指标项是否小于预设指标项阈值;
当所述指标项小于或者等于所述预设指标项阈值时,确定所述指标项符合所述预设压力测试指标;
当所述指标项大于所述预设指标项阈值时,确定所述指标项不符合所述预设压力测试指标。
所述指标项可以包括:CPU使用率,网络带宽等。当测试节点的CPU使用率超过预设CPU使用率阈值时,或者当网络带宽超过预设网络带宽阈值时,确认所述指标项不符合所述预设压力测试指标。
S16,在确定所述EsaSample类中的Sample方法执行通过后,采用所述泛化调用方式调用所述ESA接口进行下一轮次的压力测试,并当满足预设压力测试结束条件时结束压力测试。
本轮次压力测试所述EsaSample类中的Sample方法执行通过,表明ESA接口还可以接收更多的并发访问量,因此可以继续进行压力测试。
可以预先设置压力测试结束条件,在满足预设压力测试结束条件时结束压力测试的整个过程。其中,所述压力测试结束条件可以包括:执行压力测试的轮次大于预设轮次;或者,压力测试中断;或者,任意轮次的压力测试的并发量大于预设并发量。
在一个可选的实施例中,所述调用所述ESA接口进行下一轮次的压力测试包括:
第一轮测试时模拟第一并发量访问所述ESA接口;
后一轮测试时在前一轮测试的并发量的基础上增加预设并发量得到第二并发量,并模拟所述第二并发量访问所述ESA接口。
示例性的,在第一轮测试时,设置第一并发量为100;在第二轮测试时,增加100个并发量,即以200个并发量模拟访问ESA接口;在第三轮测试时,以300个并发量模拟访问ESA接口。
进一步的,所述方法还包括:
在压力测试结束之后,采用预设格式根据每轮测试的并发量及对应的指标项生成测试报告。
由于自动测试脚本在执行完测试过程后直接生成的测试报告往往不是固定的格式,因而测试报告的可读性差。采用预设格式生成测试报告,有助于增强测试报告的可读性,方便测试人员查看和理解测试报告中的内容。所述预设格式可以是扩展标记语言(XML,Extensible Markup Language)格式。
综上所述,本实施例不需要如同现有技术中需要开发专门的HTTP协议进行中转做ESA接口的压力测试,通过开发ESA接口Jmeter插件这个工具并集成到Jmeter框架中,从而去掉了中转服务这个过程。由于本发明所述的方法能够在Jmeter框架中通过ESA接口的Jmeter插件直接调用ESA接口进行压力测试,使得测试过程能够和真实***调用场景保持一致,因而测试效率较高,且测试结果更准确。
本发明所述的ESA接口的压力测试方法可以应用于银行ESA接口的压力测试场景中,以提高银行ESA接口压力测试的测试效率及提高银行ESA接口压力测试的测试准确率。具体实施时,由测试人员在测试设备中开发银行ESA接口的Jmeter插件以及定制化银行ESA交互界面,使得Jmeter插件中的EsaSample类继承所述Jmeter框架中的抽象采样器,从而在所述EsaSample类的sample方法中实现ESA接口压力测试的调用逻辑,如此能够确保测试过程和真实***调用场景保持一致。
需要强调的是,为进一步保证上述测试报告的私密性和安全性,上述测试报告可存储于区块链的节点中。
图2是本发明实施例二提供的ESA接口压力测试装置的结构图。
在一些实施例中,所述ESA接口压力测试装置20可以包括多个由计算机程序段所组成的功能模块。所述ESA接口压力测试装置20中的各个程序段的计算机程序可以存储于测试设备的存储器中,并由至少一个处理器所执行,以执行(详见图1描述)ESA接口压力测试的功能。
本实施例中,所述ESA接口压力测试装置20根据其所执行的功能,可以被划分为多个功能模块。所述功能模块可以包括:第一封装模块201、界面显示模块202、插件开发模块203、第二封装模块204、压力测试模块205、数据传输模块206、测试判断模块207及报告生成模块208。本发明所称的模块是指一种能够被至少一个处理器所执行并且能够完成固定功能的一系列计算机程序段,其存储在存储器中。在本实施例中,关于各模块的功能将在后续的实施例中详述。
所述第一封装模块201,用于获取ESA交互界面中输入的测试参数并对所述测试参数进行封装得到请求参数。
其中,所述测试参数可以包括,但不限于:注册中心的地址及ESA接口服务的名称等。
其中,所述测试参数可以为Json格式。
所述界面显示模块202,用于在所述获取ESA交互界面中输入的测试参数之前,显示所述ESA交互界面。
在一个可选的实施例中,所述界面显示模块202显示所述ESA交互界面包括:
接收Jmeter框架的启动指令,运行所述Jmeter框架;
侦测到用户在所述Jmeter框架中对预设ESA接口的Jmeter插件的确定指令时,显示所述ESA交互界面;
在所述ESA交互界面中显示可供选择的注册中心的地址及ESA接口服务的名称。
其中,Jmeter框架是基于java语言开发的主要用来做测试的一种开源测试工具。用户开发定制化的取样器插件,首先需要开发取样器的图形界面,扩展实现JMeter的AbstractSamplerGui类;然后开发取样器的处理逻辑类,扩展实现JMeter的AbstractSampler类,实现协议交互,发送请求报文并处理返回的响应结果;最后将开发调试好的代码编译,与描述了依赖关系的pom.xml一起打成JAR包,拷贝到JMeter的lib\ext目录下,其它相关依赖JAR包拷贝到JMeter的lib目录下。
开发实现定制化的调用ESA接口压力测试的取样器插件,需要扩展实现org.apache.jmeter.samplers.gui.AbstractSamplerGui抽象类创建定制化的ESA接口压力测试取样器界面,并且扩展实现org.apache.jmeter.samplers.AbstractSampler抽象类完成定制化的ESA接口压力测试取样器发送请求和接收响应信息的处理逻辑。
选择指令可由用户点击待测试ESA接口路径而触发,或者由用户在所述ESA交互界面中的特定输入框中输入待测试ESA接口的路径而触发。
示例性的,如在所述ESA交互界面中显示不同的注册中心的地址及ESA接口服务的名称,或者在所述ESA交互界面显示下拉按钮,当用户点击与待测试ESA接口对应的下拉按钮时,在所述ESA交互界面显示出与该待测试ESA接口对应的注册中心的地址及ESA接口服务的名称。
所述插件开发模块203,用于开发ESA接口的Jmeter插件。
在一个可选的实施例中,所述插件开发模块203开发预设ESA接口的Jmeter插件的过程包括:
定义一个EsaSample类;
在所述EsaSample类中定义一个sample方法;
通过所述EsaSample类继承所述Jmeter框架中的抽象采样器;
在所述sample方法中实现ESA接口压力测试的调用逻辑。
其中,EsaSmaple是自定义的一个采样器,sample是EsaSmaple中的一个方法,EsaSample类通过继承所述抽象采样器AbstractSampler,使得Jmeter框架在运行时能够调用EsaSample类中的sample方法,从而在所述sample方法实现ESA接口压力测试的调用逻辑。
所述第二封装模块204,用于发送所述请求参数至EsaSample类中并在所述EsaSample类中对所述请求参数进行封装得到封装请求。
测试设备将所述请求参数作为入参传输给EsaSample类,使得所述EsaSample类将所述请求参数封装成Map类型的封装请求。
所述压力测试模块205,用于响应于所述封装请求,采用泛化调用方式调用ESA接口进行本轮次的压力测试。
其中,泛化调用是指不依赖的应用程序接口(Application ProgrammingInterface,API)包的调用,使得ESA接口的Jmeter插件更具独立性和可用性。
所述数据传输模块206,用于在本轮次压力测试结束后,获取所述ESA接口返回的响应数据,并将所述响应数据传输到所述EsaSample类。
通过所述预设ESA接口的Jmeter插件调用ESA接口时,ESA接口会进行响应,并将响应数据回传给所述预设ESA接口的Jmeter插件,通过所述预设ESA接口的Jmeter插件中的所述EsaSample类获取所述响应数据。
所述测试判断模块207,用于根据所述响应数据判断所述EsaSample类中的Sample方法执行是否通过。
由于ESA接口每次进行响应时,会回传较多的响应数据,但这些响应数据并非全是测试人员所需要的数据,因此,所述EsaSample类从所述响应数据中获取多个关键数据,并对所述多个关键数据进行拼装,通过所述EsaSample类根据拼装后的数据判断所述EsaSample类中的Sample方法执行是否通过。
在一个可选的实施例中,所述测试判断模块207根据所述响应数据判断所述EsaSample类中的Sample方法执行是否通过包括:
获取所述响应数据中的所述ESA接口的指标项;
判断所述指标项是否符合预设压力测试指标;
响应于所述指标项符合所述预设压力测试指标时,确定所述EsaSample类中的Sample方法执行通过;
响应于所述指标项不符合所述预设压力测试指标时,确定所述EsaSample类中的Sample方法执行不通过。
在该可选的实施例中,可以进行多轮测试,并在每轮测试时判断ESA接口的指标项是否满足了预设压力测试指标,当确定某一轮测试时ESA接口的指标项符合了预设压力测试指标时,触发本轮次的压力测试结束指令,结束本轮次的ESA接口的压力测试。
在一个可选的实施例中,所述判断所述指标项是否符合预设压力测试指标包括:
判断所述指标项是否小于预设指标项阈值;
当所述指标项小于或者等于所述预设指标项阈值时,确定所述指标项符合所述预设压力测试指标;
当所述指标项大于所述预设指标项阈值时,确定所述指标项不符合所述预设压力测试指标。
所述指标项可以包括:CPU使用率,网络带宽等。当测试节点的CPU使用率超过预设CPU使用率阈值时,或者当网络带宽超过预设网络带宽阈值时,确认所述指标项不符合所述预设压力测试指标。
所述压力测试模块205,还用于在确定所述EsaSample类中的Sample方法执行通过后,采用所述泛化调用方式调用所述ESA接口进行下一轮次的压力测试,并当满足预设压力测试结束条件时结束压力测试。
本轮次压力测试所述EsaSample类中的Sample方法执行通过,表明ESA接口还可以接收更多的并发访问量,因此可以继续进行压力测试。
可以预先设置压力测试结束条件,在满足预设压力测试结束条件时结束压力测试的整个过程。其中,所述压力测试结束条件可以包括:执行压力测试的轮次大于预设轮次;或者,压力测试中断;或者,任意轮次的压力测试的并发量大于预设并发量。
在一个可选的实施例中,所述压力测试模块205调用所述ESA接口进行下一轮次的压力测试包括:
第一轮测试时模拟第一并发量访问所述ESA接口;
后一轮测试时在前一轮测试的并发量的基础上增加预设并发量得到第二并发量,并模拟所述第二并发量访问所述ESA接口。
示例性的,在第一轮测试时,设置第一并发量为100;在第二轮测试时,增加100个并发量,即以200个并发量模拟访问ESA接口;在第三轮测试时,以300个并发量模拟访问ESA接口。
所述报告生成模块208,用于在压力测试结束之后,采用预设格式根据每轮测试的并发量及对应的指标项生成测试报告。
由于自动测试脚本在执行完测试过程后直接生成的测试报告往往不是固定的格式,因而测试报告的可读性差。采用预设格式生成测试报告,有助于增强测试报告的可读性,方便测试人员查看和理解测试报告中的内容。所述预设格式可以是扩展标记语言(XML,Extensible Markup Language)格式。
综上所述,本实施例不需要如同现有技术中需要开发专门的HTTP协议进行中转做ESA接口的压力测试,通过开发ESA接口Jmeter插件这个工具并集成到Jmeter框架中,从而去掉了中转服务这个过程。由于本发明所述的方法能够在Jmeter框架中通过ESA接口的Jmeter插件直接调用ESA接口进行压力测试,使得测试过程能够和真实***调用场景保持一致,因而测试效率较高,且测试结果更准确。
需要强调的是,为进一步保证上述测试报告的私密性和安全性,上述测试报告可存储于区块链的节点中。
参阅图3所示,为本发明实施例三提供的测试设备的结构示意图。在本发明较佳实施例中,所述测试设备3包括存储器31、至少一个处理器32、至少一条通信总线33及收发器34。本发明所述的所述测试设备3能够执行所述的ESA接口的压力测试方法,即,所述测试设备3可以应用于银行ESA接口的压力测试场景中,以提高银行ESA接口压力测试的测试效率及提高银行ESA接口压力测试的测试准确率。具体实施时,由测试人员在所述测试设备3中开发银行ESA接口的Jmeter插件以及定制化银行ESA交互界面,使得Jmeter插件中的EsaSample类继承所述Jmeter框架中的抽象采样器,从而在所述EsaSample类的sample方法中实现ESA接口压力测试的调用逻辑,如此能够确保测试过程和真实***调用场景保持一致。本领域技术人员应该了解,图3示出的测试设备的结构并不构成本发明实施例的限定,既可以是总线型结构,也可以是星形结构,所述测试设备3还可以包括比图示更多或更少的其他硬件或者软件,或者不同的部件布置。
在一些实施例中,所述测试设备3是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的测试设备,其硬件包括但不限于微处理器、专用集成电路、可编程门阵列、数字处理器及嵌入式设备等。所述测试设备3还可包括客户设备,所述客户设备包括但不限于任何一种可与客户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互的电子产品,例如,个人计算机、平板电脑、智能手机、数码相机等。
需要说明的是,所述测试设备3仅为举例,其他现有的或今后可能出现的电子产品如可适应于本发明,也应包含在本发明的保护范围以内,并以引用方式包含于此。
在一些实施例中,所述存储器31中存储有计算机程序,所述计算机程序被所述至少一个处理器32执行时实现如所述的ESA接口压力测试方法中的全部或者部分步骤。所述存储器31包括只读存储器(Read-Only Memory,ROM)、可编程只读存储器(ProgrammableRead-Only Memory,PROM)、可擦除可编程只读存储器(Erasable Programmable Read-OnlyMemory,EPROM)、一次可编程只读存储器(One-time Programmable Read-Only Memory,OTPROM)、电子擦除式可复写只读存储器(Electrically-Erasable Programmable Read-Only Memory,EEPROM)、只读光盘(Compact Disc Read-Only Memory,CD-ROM)或其他光盘存储器、磁盘存储器、磁带存储器、或者能够用于携带或存储数据的计算机可读的任何其他介质。
进一步地,所述计算机可读存储介质可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需的应用程序等;存储数据区可存储根据区块链节点的使用所创建的数据等。
在一个可选的实施例中,所述计算机程序被所述处理器执行时实现以下步骤:
获取ESA交互界面中输入的测试参数并对所述测试参数进行封装得到请求参数;
发送所述请求参数至EsaSample类中并在所述EsaSample类中对所述请求参数进行封装得到封装请求;
响应于所述封装请求,采用泛化调用方式调用ESA接口进行本轮次的压力测试;
在本轮次压力测试结束后,获取所述ESA接口返回的响应数据,并将所述响应数据传输到所述EsaSample类;
根据所述响应数据判断所述EsaSample类中的Sample方法执行是否通过;
在确定所述EsaSample类中的Sample方法执行通过后,采用所述泛化调用方式调用所述ESA接口采用所述泛化调用方式调用所述ESA接口进行下一轮次的压力测试,并当满足预设压力测试结束条件时结束压力测试。
在一个可选的实施例中,所述计算机程序被所述处理器执行时实现以下功能:
所述第一封装模块201,用于获取ESA交互界面中输入的测试参数并对所述测试参数进行封装得到请求参数;
所述界面显示模块202,用于在所述获取ESA交互界面中输入的测试参数之前,显示所述ESA交互界面;
所述插件开发模块203,用于开发ESA接口的Jmeter插件;
所述第二封装模块204,用于发送所述请求参数至EsaSample类中并在所述EsaSample类中对所述请求参数进行封装得到封装请求;
所述压力测试模块205,用于响应于所述封装请求,采用泛化调用方式调用ESA接口进行本轮次的压力测试;
所述数据传输模块206,用于在本轮次压力测试结束后,获取所述ESA接口返回的响应数据,并将所述响应数据传输到所述EsaSample类;
所述测试判断模块207,用于根据所述响应数据判断所述EsaSample类中的Sample方法执行是否通过;
所述报告生成模块208,用于在进行所述预设轮次的压力测试之后,采用预设格式根据每轮测试的并发量及对应的指标项生成测试报告。
本发明所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
在一些实施例中,所述至少一个处理器32是所述测试设备3的控制核心(ControlUnit),利用各种接口和线路连接整个测试设备3的各个部件,通过运行或执行存储在所述存储器31内的程序或者模块,以及调用存储在所述存储器31内的数据,以执行测试设备3的各种功能和处理数据。例如,所述至少一个处理器32执行所述存储器中存储的计算机程序时实现本发明实施例中所述的ESA接口压力测试方法的全部或者部分步骤;或者实现ESA接口压力测试装置的全部或者部分功能。所述至少一个处理器32可以由集成电路组成,例如可以由单个封装的集成电路所组成,也可以是由多个相同功能或不同功能封装的集成电路所组成,包括一个或者多个中央处理器(Central Processing unit,CPU)、微处理器、数字处理芯片、图形处理器及各种控制芯片的组合等。
在一些实施例中,所述至少一条通信总线33被设置为实现所述存储器31以及所述至少一个处理器32等之间的连接通信。
尽管未示出,所述测试设备3还可以包括给各个部件供电的电源(比如电池),优选的,电源可以通过电源管理装置与所述至少一个处理器32逻辑相连,从而通过电源管理装置实现管理充电、放电、以及功耗管理等功能。电源还可以包括一个或一个以上的直流或交流电源、再充电装置、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。所述测试设备3还可以包括多种传感器、蓝牙模块、Wi-Fi模块等,在此不再赘述。
上述以软件功能模块的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台测试设备(可以是个人计算机,测试设备,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或,单数不排除复数。装置权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。
Claims (10)
1.一种ESA接口压力测试方法,其特征在于,所述方法包括:
获取ESA交互界面中输入的测试参数并对所述测试参数进行封装得到请求参数;
发送所述请求参数至EsaSample类中并在所述EsaSample类中对所述请求参数进行封装得到封装请求;
响应于所述封装请求,采用泛化调用方式调用ESA接口进行本轮次的压力测试;
在本轮次压力测试结束后,获取所述ESA接口返回的响应数据,并将所述响应数据传输到所述EsaSample类;
根据所述响应数据判断所述EsaSample类中的Sample方法执行是否通过;
在确定所述EsaSample类中的Sample方法执行通过后,采用所述泛化调用方式调用所述ESA接口进行下一轮次的压力测试,并当满足预设压力测试结束条件时结束压力测试。
2.如权利要求1所述的ESA接口压力测试方法,其特征在于,在所述获取ESA交互界面中输入的测试参数之前,所述方法还包括:
接收Jmeter框架的启动指令,运行所述Jmeter框架;
侦测到用户在所述Jmeter框架中对预设ESA接口的Jmeter插件的确定指令时,显示所述ESA交互界面;
在所述ESA交互界面中显示可供选择的注册中心的地址及ESA接口服务的名称。
3.如权利要求2所述的ESA接口压力测试方法,其特征在于,所述预设ESA接口的Jmeter插件的开发过程包括:
定义一个EsaSample类;
在所述EsaSample类中定义一个sample方法;
通过所述EsaSample类继承所述Jmeter框架中的抽象采样器;
在所述sample方法中实现ESA接口压力测试的调用逻辑。
4.如权利要求1所述的ESA接口压力测试方法,其特征在于,所述根据所述响应数据判断所述EsaSample类中的Sample方法执行是否通过包括:
获取所述响应数据中的所述ESA接口的指标项;
判断所述指标项是否符合预设压力测试指标;
响应于所述指标项符合所述预设压力测试指标时,确定所述EsaSample类中的Sample方法执行通过;
响应于所述指标项不符合所述预设压力测试指标时,确定所述EsaSample类中的Sample方法执行不通过。
5.如权利要求4所述的ESA接口压力测试方法,其特征在于,所述判断所述指标项是否符合预设压力测试指标包括:
判断所述指标项是否小于预设指标项阈值;
当所述指标项小于或者等于所述预设指标项阈值时,确定所述指标项符合所述预设压力测试指标;
当所述指标项大于所述预设指标项阈值时,确定所述指标项不符合所述预设压力测试指标。
6.如权利要求1至5中任意一项所述的ESA接口压力测试方法,其特征在于,所述调用所述ESA接口进行下一轮次的压力测试包括:
第一轮测试时模拟第一并发量访问所述ESA接口;
后一轮测试时在前一轮测试的并发量的基础上增加预设并发量得到第二并发量,并模拟所述第二并发量访问所述ESA接口。
7.如权利要求1至5中任意一项所述的ESA接口压力测试方法,其特征在于,所述预设压力测试结束条件包括:执行压力测试的轮次大于预设轮次,任意轮次的压力测试的并发量大于预设并发量,所述方法还包括:
在压力测试结束之后,采用预设格式根据每轮测试的并发量及对应的指标项生成测试报告。
8.一种ESA接口压力测试装置,其特征在于,所述装置包括:
第一封装模块,用于获取ESA交互界面中输入的测试参数并对所述测试参数进行封装得到请求参数;
第二封装模块,用于发送所述请求参数至EsaSample类中并在所述EsaSample类中对所述请求参数进行封装得到封装请求;
压力测试模块,用于响应于所述封装请求,采用泛化调用方式调用ESA接口进行本轮次的压力测试;
数据传输模块,用于在本轮次压力测试结束后,获取所述ESA接口返回的响应数据,并将所述响应数据传输到所述EsaSample类;
测试判断模块,用于根据所述响应数据判断所述EsaSample类中的Sample方法执行是否通过;
所述压力测试模块,还用于在确定所述EsaSample类中的Sample方法执行通过后,采用所述泛化调用方式调用所述ESA接口进行下一轮次的压力测试,并当满足预设压力测试结束条件时结束压力测试。
9.一种测试设备,其特征在于,所述测试设备包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至7中任意一项所述的ESA接口压力测试方法。
10.一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7中任意一项所述的ESA接口压力测试方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010967715.XA CN112069078B (zh) | 2020-09-15 | 2020-09-15 | Esa接口压力测试方法、装置、测试设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010967715.XA CN112069078B (zh) | 2020-09-15 | 2020-09-15 | Esa接口压力测试方法、装置、测试设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112069078A true CN112069078A (zh) | 2020-12-11 |
CN112069078B CN112069078B (zh) | 2024-03-19 |
Family
ID=73695861
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010967715.XA Active CN112069078B (zh) | 2020-09-15 | 2020-09-15 | Esa接口压力测试方法、装置、测试设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112069078B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112882910A (zh) * | 2021-01-22 | 2021-06-01 | 中国建设银行股份有限公司 | 工作流引擎的接口压力测试方法及装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150113331A1 (en) * | 2013-10-17 | 2015-04-23 | Wipro Limited | Systems and methods for improved software testing project execution |
CN109101415A (zh) * | 2018-06-25 | 2018-12-28 | 平安科技(深圳)有限公司 | 基于数据库比对的接口测试方法、***、设备和存储介质 |
CN109344076A (zh) * | 2018-10-22 | 2019-02-15 | 浙江执御信息技术有限公司 | 一种基于JMeter和Jenkins的接口自动化测试方法及其装置 |
WO2019153472A1 (zh) * | 2018-02-07 | 2019-08-15 | 平安科技(深圳)有限公司 | 接口自动化测试方法、装置、设备及存储介质 |
WO2019178967A1 (zh) * | 2018-03-22 | 2019-09-26 | 平安科技(深圳)有限公司 | 基于Jmeter的压力测试方法、装置、设备及存储介质 |
WO2019196213A1 (zh) * | 2018-04-12 | 2019-10-17 | 平安科技(深圳)有限公司 | 接口测试方法、装置、设备及计算机可读存储介质 |
-
2020
- 2020-09-15 CN CN202010967715.XA patent/CN112069078B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150113331A1 (en) * | 2013-10-17 | 2015-04-23 | Wipro Limited | Systems and methods for improved software testing project execution |
WO2019153472A1 (zh) * | 2018-02-07 | 2019-08-15 | 平安科技(深圳)有限公司 | 接口自动化测试方法、装置、设备及存储介质 |
WO2019178967A1 (zh) * | 2018-03-22 | 2019-09-26 | 平安科技(深圳)有限公司 | 基于Jmeter的压力测试方法、装置、设备及存储介质 |
WO2019196213A1 (zh) * | 2018-04-12 | 2019-10-17 | 平安科技(深圳)有限公司 | 接口测试方法、装置、设备及计算机可读存储介质 |
CN109101415A (zh) * | 2018-06-25 | 2018-12-28 | 平安科技(深圳)有限公司 | 基于数据库比对的接口测试方法、***、设备和存储介质 |
CN109344076A (zh) * | 2018-10-22 | 2019-02-15 | 浙江执御信息技术有限公司 | 一种基于JMeter和Jenkins的接口自动化测试方法及其装置 |
Non-Patent Citations (2)
Title |
---|
IT咖啡馆: "手把手教你基于 JMeter 开发一个自动化测试平台", 《HTTPS://ZHUANLAN.ZHIHU.COM/P/163354573》, pages 1 - 16 * |
吴志刚;: "使用JMeter插件提高性能测试效率", 软件导刊, no. 04, pages 35 - 37 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112882910A (zh) * | 2021-01-22 | 2021-06-01 | 中国建设银行股份有限公司 | 工作流引擎的接口压力测试方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN112069078B (zh) | 2024-03-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109302522B (zh) | 测试方法、装置以及计算机***和介质 | |
CN109933522B (zh) | 一种自动化用例的测试方法、测试***及存储介质 | |
CN110443573A (zh) | 审批管理平台及其审批方法、工作流生成方法 | |
CN112634047B (zh) | 外汇交易模拟测试方法、装置、计算机设备及存储介质 | |
CN107608901B (zh) | 基于Jmeter的测试方法及装置、存储介质、电子设备 | |
CN106170763B (zh) | 一种软件校验方法和装置 | |
CN111858296B (zh) | 接口测试方法、装置、设备和存储介质 | |
CN112256406B (zh) | 作业流程平台化调度方法 | |
CN113672441A (zh) | 对智能设备的测试方法及装置 | |
CN112631924A (zh) | 自动化测试方法、装置、计算机设备及存储介质 | |
CN111666328A (zh) | 实时展示可视化图表的方法、装置、计算机设备及存储介质 | |
CN114448823B (zh) | Nfs服务测试方法、***及电子设备 | |
CN114168471A (zh) | 测试方法、装置、电子设备及存储介质 | |
CN114218072A (zh) | 测试脚本生成方法、装置、存储介质及计算机设备 | |
CN112069078B (zh) | Esa接口压力测试方法、装置、测试设备及存储介质 | |
CN107908565B (zh) | 一种测试方法及设备 | |
CN112181822A (zh) | 一种测试方法和应用程序的启动耗时测试方法 | |
CN114020414B (zh) | Android***与底层Linux共生方法、装置、电子设备及存储介质 | |
CN116483899A (zh) | 融合服务接口的调用方法及其装置、电子设备及存储介质 | |
CN112527668A (zh) | 小程序安全调试方法、装置、移动终端及存储介质 | |
CN114036068A (zh) | 基于隐私安全的更新检测方法、装置、设备及存储介质 | |
CN113505079A (zh) | 应用程序测试方法、装置、设备及介质 | |
CN110083523A (zh) | 接口测试方法、装置、计算机装置、及可读存储介质 | |
CN112905470A (zh) | 接口调用方法、装置、计算机设备及介质 | |
CN117493162B (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 |