CN112597036A - 一种通用测试挡板方法及装置 - Google Patents
一种通用测试挡板方法及装置 Download PDFInfo
- Publication number
- CN112597036A CN112597036A CN202011577391.5A CN202011577391A CN112597036A CN 112597036 A CN112597036 A CN 112597036A CN 202011577391 A CN202011577391 A CN 202011577391A CN 112597036 A CN112597036 A CN 112597036A
- Authority
- CN
- China
- Prior art keywords
- message
- target association
- response message
- association system
- mode
- 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 140
- 230000004044 response Effects 0.000 claims abstract description 173
- 238000000034 method Methods 0.000 claims abstract description 72
- 238000004088 simulation Methods 0.000 claims abstract description 45
- 238000012795 verification Methods 0.000 claims abstract description 11
- 230000008569 process Effects 0.000 claims description 31
- 238000004458 analytical method Methods 0.000 claims description 13
- 230000007246 mechanism Effects 0.000 abstract description 8
- 238000011056 performance test Methods 0.000 abstract description 4
- 238000012545 processing Methods 0.000 description 16
- 238000010586 diagram Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 7
- 230000009471 action Effects 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 2
- 230000004888 barrier function Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000003672 processing method Methods 0.000 description 2
- 230000002411 adverse Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 230000000694 effects Effects 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
- 230000000750 progressive effect Effects 0.000 description 1
- 238000012546 transfer 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
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy 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
本发明提供的通用测试挡板方法及装置,该方法应用于电子银行系统,将关联系统的服务调用抽象为标准调用类、且标准调用类具有相应的模拟类。在测试准备阶段,能够基于目标关联系统对应的标准调用类录制其针对交易的响应报文。在测试执行阶段,能够基于目标关联系统对应的模拟类回放其针对交易的响应报文,从而使得电子银行系统基于回放的响应报文做功能验证。基于本发明,能够实现不同接口类型的测试挡板机制,解除关联系统稳定性和接口格式多样性对于电子银行系统开展诸如单元测试、性能测试、自动化回归测试等自动化测试的影响,消除对关联系统环境的依赖,提高电子银行系统的测试效率和质量。
Description
技术领域
本发明涉及系统测试技术领域,更具体地说,涉及一种通用测试挡板方法及装置。
背景技术
以网上银行、手机银行为代表的电子银行,因提供的服务具有任何时间(Anytime)、任何地点(Anywhere)、任何方式(Anyway)、操作简单便捷等特性,逐渐替代银行网点成为国内外银行服务用户的主要渠道。
随着电子银行产品和功能的不断完善,其关联的系统日益增多,部分电子银行系统存在上百的关联系统,同时关联系统提供的应用程序接口类型差异大,对电子银行系统自身执行单元测试、性能测试造成不利影响,难以满足电子银行产品快速迭代的发展要求。
发明内容
有鉴于此,为解决上述问题,本发明提供一种通用测试挡板方法及装置,技术方案如下:
一种通用测试挡板方法,应用于电子银行系统,所述方法包括:
将关联系统的服务调用抽象为标准调用类,具有相同接口类型的关联系统对应一个标准调用类,且所述标准调用类具有相应的模拟类;
基于目标关联系统对应的标准调用类,录制所述目标关联系统针对交易的响应报文;
基于所述目标关联系统对应的模拟类,回放所述目标关联系统针对所述交易的响应报文;
基于回放的所述响应报文进行功能验证,以屏蔽所述目标关联系统对于测试的影响。
优选的,所述基于目标关联系统对应的标准调用类,录制所述目标关联系统针对交易的响应报文,包括:
获取所述交易的测试用例,并生成所述测试用例对应的请求报文;
确定所述交易对应的所述目标关联系统,并根据所述目标关联系统的接口类型调用相应的标准调用类,以将所述请求报文发送至所述目标关联系统;
接收所述目标关联系统基于所述请求报文所返回的响应报文,并存储所述响应报文。
优选的,所述存储所述响应报文,包括:
获取所述交易的录制规则,所述录制规则包括保存模式、保存路径和动态字段,所述保存模式包括覆盖模式和新增模式;
根据所述请求报文中除所述动态字段以外的其他字段,计算请求报文散列值;
基于所述交易的标识、所述目标关联系统的标识、所述报文散列值确定所述响应报文的第一文件名称;
如果所述保存模式为所述覆盖模式,删除所述保存路径下已有的与所述第一文件名称相同的其它响应报文,并以所述第一文件名称将所述响应报文存储至所述保存路径下;
如果所述保存模式为所述新增模式,确定所述响应报文的索引编号,并在所述第一文件名称中增加所述索引编码获取所述响应报文的第二文件名称;
以所述第二文件名称将所述响应报文存储至所述保存路径下。
优选的,所述基于所述目标关联系统对应的模拟类,回放所述目标关联系统针对所述交易的响应报文,包括:
获取所述交易的测试用例,并生成所述测试用例对应的请求报文;
确定所述交易对应的所述目标关联系统,并根据所述目标关联系统的接口类型确定相应的模拟类;
通过调用所确定的模拟类获取所述请求报文对应的所录制的响应报文,以模拟将所述请求报文发送至所述目标关联系统、以及所述目标关联系统基于所述请求报文返回响应报文的过程。
优选的,所述通过调用所确定的模拟类获取所述请求报文对应的所录制的响应报文,包括:
获取报文使用模式,所述报文使用模式包括基于内容的第一模式和基于规则的第二模式;
如果所述报文使用模式为所述第一模式,根据所述请求报文中除所述动态字段以外的其他字段,计算请求报文散列值;
根据所述请求报文散列值,从所录制的响应报文中选取所述请求报文对应的响应报文;
如果所述报文使用模式为所述第二模式,根据所述第二模式所配置的规则从所录制的响应报文中选取所述请求报文对应的响应报文。
优选的,所述根据所述第二模式所配置的规则从所录制的响应报文中选取所述请求报文对应的响应报文,包括:
根据所述目标关联系统的接口类型调用相应的解析类,以解析所述请求报文中的字段值;
从所录制的响应报文中,确定与所解析的字段值相匹配的响应报文作为所述请求报文对应的响应报文。
一种通用测试挡板装置,所述装置包括:
服务标准化模块,用于将关联系统的服务调用抽象为标准调用类,具有相同接口类型的关联系统对应一个标准调用类,且所述标准调用类具有相应的模拟类;
报文录制模块,用于基于目标关联系统对应的标准调用类,录制所述目标关联系统针对交易的响应报文;
报文回放模块,用于基于所述目标关联系统对应的模拟类,回放所述目标关联系统针对所述交易的响应报文;
功能验证模块,用于基于回放的所述响应报文进行功能验证,以屏蔽所述目标关联系统对于测试的影响。
优选的,所述报文录制模块,具体用于:
获取所述交易的测试用例,并生成所述测试用例对应的请求报文;确定所述交易对应的所述目标关联系统,并根据所述目标关联系统的接口类型调用相应的标准调用类,以将所述请求报文发送至所述目标关联系统;接收所述目标关联系统基于所述请求报文所返回的响应报文,并存储所述响应报文。
优选的,用于存储所述响应报文的所述报文录制模块,具体用于:
获取所述交易的录制规则,所述录制规则包括保存模式、保存路径和动态字段,所述保存模式包括覆盖模式和新增模式;根据所述请求报文中除所述动态字段以外的其他字段,计算请求报文散列值;基于所述交易的标识、所述目标关联系统的标识、所述报文散列值确定所述响应报文的第一文件名称;如果所述保存模式为所述覆盖模式,删除所述保存路径下已有的与所述第一文件名称相同的其它响应报文,并以所述第一文件名称将所述响应报文存储至所述保存路径下;如果所述保存模式为所述新增模式,确定所述响应报文的索引编号,并在所述第一文件名称中增加所述索引编码获取所述响应报文的第二文件名称;以所述第二文件名称将所述响应报文存储至所述保存路径下。
优选的,所述报文回放模块,具体用于:
获取所述交易的测试用例,并生成所述测试用例对应的请求报文;确定所述交易对应的所述目标关联系统,并根据所述目标关联系统的接口类型确定相应的模拟类;通过调用所确定的模拟类获取所述请求报文对应的所录制的响应报文,以模拟将所述请求报文发送至所述目标关联系统、以及所述目标关联系统基于所述请求报文返回响应报文的过程。
本发明提供的通用测试挡板方法及装置,将关联系统的服务调用抽象为标准调用类、且标准调用类具有相应的模拟类。在测试准备阶段,能够基于目标关联系统对应的标准调用类录制其针对交易的响应报文。在测试执行阶段,能够基于目标关联系统对应的模拟类回放其针对交易的响应报文,从而使得电子银行系统基于回放的响应报文做功能验证。基于本发明,能够实现不同接口类型的测试挡板机制,解除关联系统稳定性和接口格式多样性对于电子银行系统开展诸如单元测试、性能测试、自动化回归测试等自动化测试的影响,消除对关联系统环境的依赖,提高电子银行系统的测试效率和质量。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为电子银行系统交易的正常测试流程图;
图2为本发明实施例提供的通用测试挡板方法的方法流程图;
图3为本发明实施例提供的接口调用示意图;
图4为本发明实施例提供的通用测试挡板方法的部分方法流程图;
图5为本发明实施例提供的通用测试挡板方法的另一部分方法流程图;
图6为本发明实施例提供的支持扩展的数据解析模型示意图;
图7为本发明实施例提供的通用测试挡板装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
为方便理解本申请,首先对相关概念进行说明:
交易:指用户为在应用系统中执行的操作,例如查询余额、向他人转账。
测试用例(Test Case):是指对一项特定的软件、系统进行测试任务的描述,包括测试目标、测试数据、预期结果等。在测试一只交易时,通常需要设计和实施正向、反向多个测试用例,确保交易的所有分支的正确性。
API应用程序接口(Application Programming Interface,本文简称接口):是系统之间或者系统内部组成部分之间交互的约定,本质上是一些预先定义的函数。
服务调用:指应用系统为调用关联系统接口实现的方法。
报文(message):是系统之间通过应用程序接口交互的内容,通过包括XML、JSON、字节流等类型。
XML可扩展标记语言:是一种用于标记电子文件使其具有结构性的标记语言。
JSON(JavaScript Object Notation,JS对象标记):是一种轻量级的数据交换格式,采用完全独立于编程语言的文本格式来存储和表示数据。
挡板测试:是指在测试过程中,对于某些不容易构造或不容易获取的对象,用一个虚拟的对象来替代以便测试的方法。
系统运行模式:指在调用关联系统接口时采用何种处理模式,包括正常执行、测试数据录制、测试数据回放三种类型,分别表示正常调用关联系统接口调用、正常调用接口的同时保存数据、不调用接口直接使用测试数据三种处理模式。
Postman:是一款网页调试与发送网页HTTP请求的工具。
散列(hash):是把任意长度的输入通过散列算法变换成固定长度的输出的过程。
申请人发现,现阶段在互联网及金融行业中,有如下几种测试技术:
1)Postman通过创建Mock Server,按照测试请求类型返回响应报文。
2)通过配置正常、异常不同类型的反馈报文对客户端得到的多种处理结果进行模拟。
3)针对微服务接口定义自动化生成返回报文的方法。
上述几种方案主要适用于互联网软件产品,而并不适用于银行电子渠道类交易。
首先,postman支持http类请求协议,不适合在商业银行电子银行关联系统复杂、应用接口类型多样的场景中使用。
再者,现有的提供的测试方法通过配置正常、异常不同类型的反馈报文对客户端得到的多种处理结果进行模拟,不能保证在实施单元测试时其测试反馈报文同测试用例的匹配性。
另外,基于应用程序接口的定义生成测试返回报文,其自动生成的返回报文同实际调用关联系统接口时的得到的返回报文存在不一致的可能性,同时其仅适用于HTTP请求的解决方案,未提供针对不同调用协议不同格式报文的统一处理机制。
参见图1所示电子银行系统交易的正常测试流程。流程说明如下:
1)测试人员通过计算机浏览器或手机APP等客户端发起交易,根据测试用例定义填写/选择交易要素,确认后提交。
2)电子银行系统调用关联系统的服务,向关联系统发送请求报文。
3)关联系统进行业务处理,将处理结果的响应报文返给电子银行系统。
4)电子银行系统对响应报文经过内部处理,将交易结果返回给浏览器或手机APP等客户端。
5)测试人员检查交易结果是否符合测试用例的结果预期,完成交易测试。
在此过程中,如果关联系统出现不稳定的情况或测试数据发生变化,将导致在不同时间执行相同测试用例时,交易结果不符合测试用例的结果预期,造成测试用例执行失败。
为解决上述问题,本发明提供一种通用测试挡板方法,该方法应用于电子银行系统,该方法的方法流程图如图2所示,包括如下步骤:
S10,将关联系统的服务调用抽象为标准调用类,具有相同接口类型的关联系统对应一个标准调用类,且标准调用类具有相应的模拟类。
本发明实施例中,将不同接口类型(报文格式或调用协议)的服务调用抽象为标准调用类,并且,按照标准调用类开发模拟类,来确保关联系统的服务可以被本地模拟服务所替代,同时接口调用和测试处理过程的统一性。
参见图3所示的接口调用示意图。标准调用接口定义了同关联系统交互的标准接口方法,不同标准调用类均需要实现该方法。标准调用模拟接口对标准调用接口进行了扩展,增加了在录制模式、回放模式下的处理接口方法,不同模拟类需要实现上述标准接口方法和处理接口方法,以保证在测试执行过程中可以替换正常的表征调用类,实现在测试过程中将关联系统的接口调用替换为本地模拟服务的方法调用,屏蔽关联系统对测试的影响。
本发明实施例中,配置主要包括系统、服务和交易三个级别的配置。系统级配置主要指定系统运行模式,系统运行模式包括电子银行系统的正常执行、录制和回放三种模式,以及响应报文的保存模式。服务级配置主要指定本地模拟类和响应报文的保存路径。交易级配置主要指定实施测试时如何使用已经保存或编写的响应报文,交易级配置包括基于内容和基于规则的两种模式。
基于内容的第一模式:不需要配置规则模板,解析引擎将根据测试用例的请求报文的内容,自动选择对应的响应报文。
基于规则的第二模式:需要配置规则模板,包括以下两项内容:一是对于请求报文,应根据哪些字段作为选择响应报文的依据;二、如何根据字段取值选择响应报文。以XML格式为例,对第二模式的配置进行说明:
即,当请求报文中字段“/A”为1、且字段“/B/C”为2时,使用文件名称为file1的响应报文;当请求报文中字段“/A”为3、且字段“/B/C”为4时,使用文件名称为file2的响应报文。
需要说明的是“/*”为XML格式中字段“*”的查找路径。相应的,在JSON格式中查找路径为“*.”
S20,基于目标关联系统对应的标准调用类,录制目标关联系统针对交易的响应报文。
本发明实施例中,为获得响应报文,系统运行模式设置为录制模式。进一步,根据交易的类型来确定提供相应服务的目标关联系统,从而结合目标关联系统的接口类型确定其对应的标准调用类,从而通过运行该标准调用类录制目标关联系统针对交易的响应报文。
在具体实现过程中,步骤S20“基于目标关联系统对应的标准调用类,录制目标关联系统针对交易的响应报文”可以采用如下步骤,方法流程图如图4所示,包括如下步骤:
S201,获取交易的测试用例,并生成测试用例对应的请求报文。
本发明实施例中,测试人员通过计算机浏览器、手机APP或自动化测试工具等客户端发起交易测试,根据测试用例定义的流程完成交易要素输入后提交,以此获得交易的测试用例。基于测试用例,电子银行系统内部进行业务逻辑处理,生成与测试用例相对应的请求报文。
S202,确定交易对应的目标关联系统,并根据目标关联系统的接口类型调用相应的标准调用类,以将请求报文发送至目标关联系统。
本发明实施例中,根据关联系统所提供的服务,电子银行系统确定能够提供相应服务的关联系统,即目标关联系统。进而,根据目标关联系统的接口类型,确定相对应的标准调用类,调用该标准调用类将请求报文发送至目标关联系统。
S203,接收目标关联系统基于请求报文所返回的响应报文,并存储响应报文。
本发明实施例中,目标关联系统收到请求报文后,进行业务逻辑处理,根据处理结果生成响应报文,并返回给电子银行系统。由电子银行系统对该响应报文进行存储。
在实际应用中,如果测试人员提前进行系统级配置和服务级配置,则此时可以综合两者的配置内容获取交易的录制规则。录制规则包括保存模式、保存路径和动态字段,保存模式包括覆盖模式和新增模式。
相应的,基于该录制规则存储响应报文的过程如下:
根据请求报文中除动态字段以外的其他字段,计算请求报文散列值;基于交易的标识、目标关联系统的标识、报文散列值确定响应报文的第一文件名称;如果保存模式为覆盖模式,删除保存路径下已有的与第一文件名称相同的其它响应报文,并以第一文件名称将响应报文存储至保存路径下;如果保存模式为新增模式,确定响应报文的索引编号,并在第一文件名称中增加索引编码获取响应报文的第二文件名称;以第二文件名称将响应报文存储至保存路径下。
具体的,可以通过散列运算对请求报文中除动态字段以外的其他字段进行处理,得到该请求报文对应的请求报文散列值。进而,可以将交易的标识、目标关联系统的标识和请求报文散列值组成响应报文的第一文件名称,即交易ID_目标关联系统ID_请求报文散列值.文件格式。这就可以屏蔽动态字段,并且,由于不同测试用例对应的测试数据不同,生成的请求报文内容不同,其请求报文散列值不同,可以实现不同测试用例对应的响应报文不会被其他测试例覆盖的目的。
考虑保存模式的具体类型,如果为覆盖模式,则使用目标关联系统所返回的响应报文替换掉保存路径下与第一文件名称相同、即同名的其他响应报文;如果为新增模式,则在第一文件名称中增加索引编码,比如存储路径下已经有“交易a_目标关联系统b_请求报文散列值(索引编码1).***”的其他响应报文,则将第一文件名称命名为“交易a_目标关联系统b_请求报文散列值(索引编码2).***”,以此作为最终的文件名称将响应报文存储至保存路径下。
当然,为进一步验证测试用例的结果预期,电子银行系统对所存储的响应报文进行内部处理,将交易结果返回给算机浏览器、手机APP或自动化测试工具等客户端。测试人员检查客户端所显示的交易结果是否符合测试用例的结果预期,以此进一步对所存储的响应报文进行进一步筛选。
针对不同的测试用例,电子银行系统可以反复执行上述流程,生成和保存交易所有测试用例的响应报文。
S30,基于目标关联系统对应的模拟类,回放目标关联系统针对交易的响应报文。
本发明实施例中,在上述测试准备阶段完成后,测试人员根据交易级别进行测试挡板数据的交易级别配置。在将系统运行模式配置为回放模式后,实现不连接关联系统的前提下进行自动化功能测试。
结合目标交易系统的接口类型来确定其对应的标准调用类,从而确定该标准调用类所对应的模拟类。当然,如果服务级配置时存在本地模拟类的配置,则可以直接从服务级配置的内容中确定目标关联系统的模拟类。通过运行该模拟类回放目标关联系统针对交易的响应报文。
在具体实现过程中,步骤S30“基于目标关联系统对应的模拟类,回放目标关联系统针对交易的响应报文”可以采用如下步骤,方法流程图如图5所示,包括如下步骤:
S301,获取交易的测试用例,并生成测试用例对应的请求报文。
本发明实施例中,测试人员通过计算机浏览器、手机APP或自动化测试工具等客户端发起交易测试,根据测试用例定义的流程完成交易要素输入后提交,以此获得交易的测试用例。基于测试用例,电子银行系统内部进行业务逻辑处理,生成与测试用例相对应的请求报文。
S302,确定交易对应的目标关联系统,并根据目标关联系统的接口类型确定相应的模拟类。
S303,通过调用所确定的模拟类获取请求报文对应的所录制的响应报文,以模拟将请求报文发送至目标关联系统、以及目标关联系统基于请求报文返回响应报文的过程。
本发明实施例中,电子银行系统调用模拟类,结合交易级配置的内容确定请求报文对应的所录制的响应报文,从而实现电子银行系统自身模拟目标关联系统接收请求报文、并返回响应报文的过程。
具体的,步骤S303中“通过调用所确定的模拟类获取请求报文对应的所录制的响应报文”可以采用如下步骤:
获取报文使用模式,报文使用模式包括基于内容的第一模式和基于规则的第二模式;如果报文使用模式为第一模式,根据请求报文中除动态字段以外的其他字段,计算请求报文散列值;根据请求报文散列值,从所录制的响应报文中选取请求报文对应的响应报文;如果报文使用模式为第二模式,根据第二模式所配置的规则从所录制的响应报文中选取请求报文对应的响应报文。
本发明实施例中,报文使用模式即基于交易级配置的内容所确定的模式,分为基于内容的第一模式和基于规则的第二模式。
如果为第一模式,则可以通过散列运算对请求报文中除动态字段以外的其他字段进行处理,得到该请求报文对应的请求报文散列值。进而从所录制的响应报文中选取文件名称中存在该请求报文散列值的响应报文,当然,如果所选取的响应报文为多个,则向客户端报错,由测试人员从中选择一个。
如果为第二模式,则可以根据第二模式所配置的规则,从所录制的响应报文中选取一个与请求报文的字段取值相对应的一个响应报文。当然,具体实现过程中,还可以基于设计模式策略模型定义标准化、可扩展的数据解析模型,在解析过程中选择解析类处理请求报文,并返回相应的响应报文。
由此,本发明给出不同接口类型的通用测试报文挡板机制,抽象了同关联系统调用的接口方面的标准调用类和对请求报文的解析类,可根据接口类型开发新的标准调用类和解析类,具有良好的可扩展性。
参见图6所示的支持扩展的数据解析模型示意图。请求报文解析接口定义了标准解析方法,不同解析类均需要实现该方法。根据目标关联系统的接口类型可以从中选择相应的解析类,调用该解析类来解析请求报文中的字段值,确定与所解析的字段值相匹配的响应报文作为请求报文对应的响应报文。
S40,基于回放的响应报文进行功能验证,以屏蔽目标关联系统对于测试的影响。
本发明实施例中,电子银行系统加载回放的响应报文,并基于响应报文的内容执行后续业务逻辑的处理,将交易结果返回给客户端。测试人员检查交易结果是否符合测试用例的结果预期,完成交易测试。
综上,本发明适用于解决电子银行系统关联系统众多、接口格式复杂的测试场景,适合在功能测试时需要屏蔽关联系统影响的开发、测试过程或者需要确保测试用例执行稳定的场景中使用。并且,本发明支持基于内容和基于规则的响应报文使用机制,提升了测试用例数据准备的效率,保证了测试用例和关联系统返回响应报文的对应关系,从而保证了测试用例的稳定性。再者,本发明给出了测试用例和响应报文的匹配机制,同时对请求报文中动态字段(如交易日期)设计了屏蔽机制,避免影响测试稳定性。另外,本发明将响应报文保持到文件,便于进行版本管理。最后,本发明具有良好的扩展性、适用性、稳定性。
基于上述实施例提供的通用测试挡板方法,本发明实施例则对应提供执行上述通用测试挡板方法的装置,该装置的结构示意图如图7所示,包括:
服务标准化模块10,用于将关联系统的服务调用抽象为标准调用类,具有相同接口类型的关联系统对应一个标准调用类,且标准调用类具有相应的模拟类;
报文录制模块20,用于基于目标关联系统对应的标准调用类,录制目标关联系统针对交易的响应报文;
报文回放模块30,用于基于目标关联系统对应的模拟类,回放目标关联系统针对交易的响应报文;
功能验证模块40,用于基于回放的响应报文进行功能验证,以屏蔽目标关联系统对于测试的影响。
可选的,报文录制模块20,具体用于:
获取交易的测试用例,并生成测试用例对应的请求报文;确定交易对应的目标关联系统,并根据目标关联系统的接口类型调用相应的标准调用类,以将请求报文发送至目标关联系统;接收目标关联系统基于请求报文所返回的响应报文,并存储响应报文。
可选的,用于存储响应报文的报文录制模块20,具体用于:
获取交易的录制规则,录制规则包括保存模式、保存路径和动态字段,保存模式包括覆盖模式和新增模式;根据请求报文中除动态字段以外的其他字段,计算请求报文散列值;基于交易的标识、目标关联系统的标识、报文散列值确定响应报文的第一文件名称;如果保存模式为覆盖模式,删除保存路径下已有的与第一文件名称相同的其它响应报文,并以第一文件名称将响应报文存储至保存路径下;如果保存模式为新增模式,确定响应报文的索引编号,并在第一文件名称中增加索引编码获取响应报文的第二文件名称;以第二文件名称将响应报文存储至保存路径下。
可选的,报文回放模块30,具体用于:
获取交易的测试用例,并生成测试用例对应的请求报文;确定交易对应的目标关联系统,并根据目标关联系统的接口类型确定相应的模拟类;通过调用所确定的模拟类获取请求报文对应的所录制的响应报文,以模拟将请求报文发送至目标关联系统、以及目标关联系统基于请求报文返回响应报文的过程。
可选的,用于通过调用所确定的模拟类获取请求报文对应的所录制的响应报文的报文回放模块30,具体用于:
获取报文使用模式,报文使用模式包括基于内容的第一模式和基于规则的第二模式;如果报文使用模式为第一模式,根据请求报文中除动态字段以外的其他字段,计算请求报文散列值;根据请求报文散列值,从所录制的响应报文中选取请求报文对应的响应报文;如果报文使用模式为第二模式,根据第二模式所配置的规则从所录制的响应报文中选取请求报文对应的响应报文。
可选的,用于根据第二模式所配置的规则从所录制的响应报文中选取请求报文对应的响应报文的报文回放模块30,具体用于:
根据目标关联系统的接口类型调用相应的解析类,以解析请求报文中的字段值;从所录制的响应报文中,确定与所解析的字段值相匹配的响应报文作为请求报文对应的响应报文。
本发明实施例提供的通用测试挡板装置,能够实现不同接口类型的测试挡板机制,解除关联系统稳定性和接口格式多样性对于电子银行系统开展诸如单元测试、性能测试、自动化回归测试等自动化测试的影响,消除对关联系统环境的依赖,提高电子银行系统的测试效率和质量。
以上对本发明所提供的一种通用测试挡板方法及装置进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备所固有的要素,或者是还包括为这些过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种通用测试挡板方法,其特征在于,应用于电子银行系统,所述方法包括:
将关联系统的服务调用抽象为标准调用类,具有相同接口类型的关联系统对应一个标准调用类,且所述标准调用类具有相应的模拟类;
基于目标关联系统对应的标准调用类,录制所述目标关联系统针对交易的响应报文;
基于所述目标关联系统对应的模拟类,回放所述目标关联系统针对所述交易的响应报文;
基于回放的所述响应报文进行功能验证,以屏蔽所述目标关联系统对于测试的影响。
2.根据权利要求1所述的方法,其特征在于,所述基于目标关联系统对应的标准调用类,录制所述目标关联系统针对交易的响应报文,包括:
获取所述交易的测试用例,并生成所述测试用例对应的请求报文;
确定所述交易对应的所述目标关联系统,并根据所述目标关联系统的接口类型调用相应的标准调用类,以将所述请求报文发送至所述目标关联系统;
接收所述目标关联系统基于所述请求报文所返回的响应报文,并存储所述响应报文。
3.根据权利要求2所述的方法,其特征在于,所述存储所述响应报文,包括:
获取所述交易的录制规则,所述录制规则包括保存模式、保存路径和动态字段,所述保存模式包括覆盖模式和新增模式;
根据所述请求报文中除所述动态字段以外的其他字段,计算请求报文散列值;
基于所述交易的标识、所述目标关联系统的标识、所述报文散列值确定所述响应报文的第一文件名称;
如果所述保存模式为所述覆盖模式,删除所述保存路径下已有的与所述第一文件名称相同的其它响应报文,并以所述第一文件名称将所述响应报文存储至所述保存路径下;
如果所述保存模式为所述新增模式,确定所述响应报文的索引编号,并在所述第一文件名称中增加所述索引编码获取所述响应报文的第二文件名称;
以所述第二文件名称将所述响应报文存储至所述保存路径下。
4.根据权利要求1所述的方法,其特征在于,所述基于所述目标关联系统对应的模拟类,回放所述目标关联系统针对所述交易的响应报文,包括:
获取所述交易的测试用例,并生成所述测试用例对应的请求报文;
确定所述交易对应的所述目标关联系统,并根据所述目标关联系统的接口类型确定相应的模拟类;
通过调用所确定的模拟类获取所述请求报文对应的所录制的响应报文,以模拟将所述请求报文发送至所述目标关联系统、以及所述目标关联系统基于所述请求报文返回响应报文的过程。
5.根据权利要求4所述的方法,其特征在于,所述通过调用所确定的模拟类获取所述请求报文对应的所录制的响应报文,包括:
获取报文使用模式,所述报文使用模式包括基于内容的第一模式和基于规则的第二模式;
如果所述报文使用模式为所述第一模式,根据所述请求报文中除所述动态字段以外的其他字段,计算请求报文散列值;
根据所述请求报文散列值,从所录制的响应报文中选取所述请求报文对应的响应报文;
如果所述报文使用模式为所述第二模式,根据所述第二模式所配置的规则从所录制的响应报文中选取所述请求报文对应的响应报文。
6.根据权利要求5所述的方法,其特征在于,所述根据所述第二模式所配置的规则从所录制的响应报文中选取所述请求报文对应的响应报文,包括:
根据所述目标关联系统的接口类型调用相应的解析类,以解析所述请求报文中的字段值;
从所录制的响应报文中,确定与所解析的字段值相匹配的响应报文作为所述请求报文对应的响应报文。
7.一种通用测试挡板装置,其特征在于,所述装置包括:
服务标准化模块,用于将关联系统的服务调用抽象为标准调用类,具有相同接口类型的关联系统对应一个标准调用类,且所述标准调用类具有相应的模拟类;
报文录制模块,用于基于目标关联系统对应的标准调用类,录制所述目标关联系统针对交易的响应报文;
报文回放模块,用于基于所述目标关联系统对应的模拟类,回放所述目标关联系统针对所述交易的响应报文;
功能验证模块,用于基于回放的所述响应报文进行功能验证,以屏蔽所述目标关联系统对于测试的影响。
8.根据权利要求7所述的装置,其特征在于,所述报文录制模块,具体用于:
获取所述交易的测试用例,并生成所述测试用例对应的请求报文;确定所述交易对应的所述目标关联系统,并根据所述目标关联系统的接口类型调用相应的标准调用类,以将所述请求报文发送至所述目标关联系统;接收所述目标关联系统基于所述请求报文所返回的响应报文,并存储所述响应报文。
9.根据权利要求8所述的装置,其特征在于,用于存储所述响应报文的所述报文录制模块,具体用于:
获取所述交易的录制规则,所述录制规则包括保存模式、保存路径和动态字段,所述保存模式包括覆盖模式和新增模式;根据所述请求报文中除所述动态字段以外的其他字段,计算请求报文散列值;基于所述交易的标识、所述目标关联系统的标识、所述报文散列值确定所述响应报文的第一文件名称;如果所述保存模式为所述覆盖模式,删除所述保存路径下已有的与所述第一文件名称相同的其它响应报文,并以所述第一文件名称将所述响应报文存储至所述保存路径下;如果所述保存模式为所述新增模式,确定所述响应报文的索引编号,并在所述第一文件名称中增加所述索引编码获取所述响应报文的第二文件名称;以所述第二文件名称将所述响应报文存储至所述保存路径下。
10.根据权利要求7所述的装置,其特征在于,所述报文回放模块,具体用于:
获取所述交易的测试用例,并生成所述测试用例对应的请求报文;确定所述交易对应的所述目标关联系统,并根据所述目标关联系统的接口类型确定相应的模拟类;通过调用所确定的模拟类获取所述请求报文对应的所录制的响应报文,以模拟将所述请求报文发送至所述目标关联系统、以及所述目标关联系统基于所述请求报文返回响应报文的过程。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011577391.5A CN112597036B (zh) | 2020-12-28 | 2020-12-28 | 一种通用测试挡板方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011577391.5A CN112597036B (zh) | 2020-12-28 | 2020-12-28 | 一种通用测试挡板方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112597036A true CN112597036A (zh) | 2021-04-02 |
CN112597036B CN112597036B (zh) | 2024-01-16 |
Family
ID=75202806
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011577391.5A Active CN112597036B (zh) | 2020-12-28 | 2020-12-28 | 一种通用测试挡板方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112597036B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114615176A (zh) * | 2022-03-07 | 2022-06-10 | 中银金融科技有限公司 | 一种报文测试方法、装置及电子设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111190827A (zh) * | 2019-12-30 | 2020-05-22 | 航天信息股份有限公司 | 接口自动化测试方法、装置、存储介质及电子设备 |
US10853218B1 (en) * | 2018-12-17 | 2020-12-01 | Shutterstock, Inc. | Recording and playback of a web browser session |
-
2020
- 2020-12-28 CN CN202011577391.5A patent/CN112597036B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10853218B1 (en) * | 2018-12-17 | 2020-12-01 | Shutterstock, Inc. | Recording and playback of a web browser session |
CN111190827A (zh) * | 2019-12-30 | 2020-05-22 | 航天信息股份有限公司 | 接口自动化测试方法、装置、存储介质及电子设备 |
Non-Patent Citations (1)
Title |
---|
周期律等: "商业银行自动化功能测试通用框架及特征建模", 《中国金融电脑》, no. 03, pages 46 - 54 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114615176A (zh) * | 2022-03-07 | 2022-06-10 | 中银金融科技有限公司 | 一种报文测试方法、装置及电子设备 |
CN114615176B (zh) * | 2022-03-07 | 2024-05-24 | 中银金融科技有限公司 | 一种报文测试方法、装置及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN112597036B (zh) | 2024-01-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
USRE49486E1 (en) | System and method for tracking web interactions with real time analytics | |
CN108415832B (zh) | 接口自动化测试方法、装置、设备及存储介质 | |
US11822919B2 (en) | Auto-generation of API documentation via implementation-neutral analysis of API traffic | |
CN107122296B (zh) | 用于测试接口的数据断言的方法及设备 | |
US20200293519A1 (en) | Solution for implementing computing service based on structured query language statement | |
US9239709B2 (en) | Method and system for an interface certification and design tool | |
US20130054792A1 (en) | Cloud-based performance testing of functionality of an application prior to completion of development | |
CN110825618B (zh) | 一种生成测试用例的方法及相关装置 | |
US20080066189A1 (en) | Method and Apparatus for Orchestrating Policies in Service Model of Service-Oriented Architecture System | |
Cortellessa et al. | A model-driven approach for continuous performance engineering in microservice-based systems | |
US10452522B1 (en) | Synthetic data generation from a service description language model | |
CN111597110B (zh) | 页面测试方法、装置、电子设备及存储介质 | |
CN111552633A (zh) | 接口的异常调用测试方法、装置、计算机设备及存储介质 | |
CN101819551A (zh) | 记录企业信息系统的服务交互数据的方法和系统 | |
CN110659870A (zh) | 业务审核测试方法、装置、设备及存储介质 | |
US11237889B1 (en) | Application infrastructure configuration based on annotated API schemas | |
CN112597036B (zh) | 一种通用测试挡板方法及装置 | |
US20130111343A1 (en) | Load balancing of user interface script execution | |
CN117632710A (zh) | 测试代码的生成方法、装置、设备及存储介质 | |
CN116841543A (zh) | 基于Flutter动态生成跨平台多端应用的开发方法 | |
CN115934537A (zh) | 接口测试工具生成方法、装置、设备、介质及产品 | |
CN112202598B (zh) | 一种日志记录方法及装置 | |
US8200713B2 (en) | Database exploration for building wireless component applications | |
US11030082B1 (en) | Application programming interface simulation based on declarative annotations | |
CN115701591A (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 |