CN112799713B - 一种通用可配置测试桩平台 - Google Patents

一种通用可配置测试桩平台 Download PDF

Info

Publication number
CN112799713B
CN112799713B CN202011632016.6A CN202011632016A CN112799713B CN 112799713 B CN112799713 B CN 112799713B CN 202011632016 A CN202011632016 A CN 202011632016A CN 112799713 B CN112799713 B CN 112799713B
Authority
CN
China
Prior art keywords
parameter
project
matching
rule
test pile
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
CN202011632016.6A
Other languages
English (en)
Other versions
CN112799713A (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.)
Jiangsu Suning Bank Co Ltd
Original Assignee
Jiangsu Suning 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 Jiangsu Suning Bank Co Ltd filed Critical Jiangsu Suning Bank Co Ltd
Priority to CN202011632016.6A priority Critical patent/CN112799713B/zh
Publication of CN112799713A publication Critical patent/CN112799713A/zh
Application granted granted Critical
Publication of CN112799713B publication Critical patent/CN112799713B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/18Multiprotocol handlers, e.g. single devices capable of handling multiple protocols

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Human Computer Interaction (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种通用可配置测试桩平台。它包括数据接收模块,用以接收被测系统发出的往调交易报文;前端展示与配置服务模块用以进行项目配置,并在项目维度动态管理后端系统及对应的JAR包,JAR包内具有项目分类规则、入参匹配规则和出参规则代码;入参解析模块用以基于入参匹配规则对往调交易报文进行解析;出参模块用以匹配不同的出参规则输出出参信息。本发明由java整合web前端及后台相关开放框架及工具库,支持多协议可伸缩轻量级开发,解耦银行交易系统,在框架结构设计上严格分层,保证结构清晰层次分明,代码可读性可维护性强。并提供可视化配置界面,可由测试人员轻松完成项目及出入参各项配置,大大提高测试效率。

Description

一种通用可配置测试桩平台
技术领域
本发明涉及测试桩平台技术领域,具体涉及一种通用可配置测试桩平台。
背景技术
随着银行业务持续增长,新业务、新需求不断增加,版本开发迭代频繁,交付周期持续缩短,交付质量要求越来越高。
目前银行各版本的测试工作依旧采用手工测试的方式,传统手工测试的方式受项目成本及交付周期影响,具有项目回归测试范围小,回归测试效率低,持续多次重复回归测试等问题。
为了解决上述问题,需要引入测试自动化能力,保障在频繁迭代交付的过程中,持续守护已投产上线的项目质量,不因新业务的开展而影响老业务的正常运营。考虑到中间服务/接口层的自动化无论从测试效果还是成本上都是性价比较高的方式,也是当前互联网公司的主要自动化测试方式。
当前市场中有多种类型的接口测试桩解决方案,如Easymock、Moco、mockserver等等,这些产品要么比较适合单元测试,要么无法支持银行自定义协议,要么没有可交互前端系统,加上外部依赖较多,和银行交易系统集成时需要额外的学习使用时间,无法很好适配银行当前对可交互、多协议、高性能测试桩平台的需求。有些大中银行也有自建的测试桩方案,但这些方案与银行交易系统业务逻辑耦合较深,其测试桩返参数据基本以实际交易脱敏化报文为主,造成每一个新业务接口的模拟返参,都需要测试桩专门维护人员进行配置,这样一来随着业务发展越来越多,测试桩系统复杂度越来越高,可维护性越来越差,给整体接口测试带来很大的风险和成本投入。
鉴于银行交易系统的业务场景越来越多,各业务系统提供的接口呈现不断增长趋势,为了降低测试桩系统开发与维护成本,提升测试效率,本发明提供一种通用可配置测试桩系统,提供可视化配置界面,多协议可伸缩轻量级开发,而且测试人员即可轻松完成项目及出入参各项配置,具备可轻松交互、多协议定制、高并发性能、解耦银行交易系统等优点。
发明内容
本发明的目的是针对现有技术存在的不足,提供一种通用可配置测试桩平台。
为实现上述目的,本发明提供了一种通用可配置测试桩平台,包括:
数据接收模块,用以在被测系统往调服务需要访问测试桩平台时,接收被测系统发出的往调交易报文;
前端展示与配置服务模块,用以进行项目配置,并在项目维度动态管理后端系统及对应的JAR包,所述JAR包内具有项目分类规则、入参匹配规则和出参规则代码,从而实现项目级的测试桩分类,并根据不同的项目对应不同的测试桩协议入口,以便测试桩数据的分开管理,前端采用thymeleaf/js模板引擎,提供spring标准方言和一个集成SpringMVC的可选模块,可以快速实现表单绑定和属性编辑器功能,以便于对测试桩的系统、版本、协议以及路由规则进行快速配置;
入参解析模块,用以装载配置过程中事先添加的JAR包,并基于入参匹配规则以对接收的往调交易报文进行解析,从而获取入参关键值;
出参模块,用以装载配置过程中事先添加的JAR包,并初始化路由标识中给定的类,进而根据不同的入参关键值匹配不同的出参规则,从而输出相应的出参信息。
进一步的,所述被测系统通过事先配置好的rsf-consumer.xml文件进行匹配,该xml文件中指明了测试桩平台的ip地址和服务端口,以将往调交易报文发送至目标测试桩平台。
进一步的,所述项目配置包括项目所涉及系统相关配置、后端被调系统协议相关配置和协议下路由规则相关配置,且其包括以下步骤:
1)项目管理:系统管理员新建项目,并分配项目对应的管理员账户,各个项目管理员数据隔离,互不可见;
2)下游依赖系统管理:通过系统管理集中维护本项目涉及的所有预模拟的下游系统;
3)RSF契约包管理:下游系统接口若为RSF协议,则需要通过“jar包管理”集中维护;
4)添加下游接口版本;
5)在特定版本下添加协议:所述协议包括RSF、HTTP和TCP;
6)设置接口路由:路由地址参考下游服务提供地址,用于被测对象实际调用;
7)设置接口入参匹配规则与出参规则,所述入参匹配规则与出参规则一一对应,用于实现不同入参,返回不同的出参,测试单个接口不同返回场景。
进一步的,所述入参匹配规则包括如下方式:
1)单条件字符匹配
入参字段值解析为字符串时,匹配条件有等于、包含、不包含、正则匹配;
入参字段值解析为数字是,匹配条件有等于,大于,小于,大于等于,小于等于,不等于;
2)组合条件匹配
多个单条件组合是支持与、或关系,条件个数没有限制;
3)括号优先级
正常组合解析顺序为从左到右,含有“()”时会优先解析“()”内的表达式,再从左到右进行解析。
进一步的,所述出参规则包括以下方式:
1)从入参关键值直接获取字段值;
2)入参字段值简单逻辑处理后设定;
3)硬编码设定;
4)内置方法动态生成,包括获取当前日期、指定长度的随机数值、指定长度随机字符串、指定上下限的随机数值,字符串的截取和/或拼接。
有益效果:本发明由java整合web前端及后台相关开放框架及工具库,支持多协议可伸缩轻量级开发,解耦银行交易系统,在框架结构设计上严格分层,保证结构清晰层次分明,代码可读性可维护性强。并提供可视化配置界面,可由测试人员轻松完成项目及出入参各项配置,大大提高测试效率,并具有以下优点:
可轻松交互:项目、系统、版本、协议、出入参规则五个层级的可视化配置界面,层次分明,简洁易懂;
多协议定制:根据约定的接口可以轻松衍生开发多种协议,支持当前主流通用协议及银行定制化协议;
高并发性能:从web前端到后台数据库,均采用业界优秀的通用框架,可支持大并发量;
解耦银行交易:所有出入参均在前台界面自由录入,无需引入脱敏化原始交易报文入参数据,因此无银行业务相关硬编码。
附图说明
图1是本发明实施例的通用可配置测试桩平台的结构示意图;
图2是后端被调系统协议相关配置的界面图;
图3是后端被调系统协议相关配置的界面图;
图4是协议下路由规则相关配置界面图;
图5是RSF与HTTP信息根据IP、端口、路由标识信息动态注册的地址的示意图。
具体实施方式
下面结合附图和具体实施例,进一步阐明本发明,本实施例在以本发明技术方案为前提下进行实施,应理解这些实施例仅用于说明本发明而不用于限制本发明的范围。
如图1所示,本发明实施例提供了一种通用可配置测试桩平台,包括数据接收模块1、前端展示与配置服务模块2、入参解析模块3和出参模块4。
其中,数据接收模块1用以在被测系统往调服务需要访问测试桩平台时,接收被测系统发出的往调交易报文。具体的,被测系统通过事先配置好的rsf-consumer.xml文件进行匹配,该xml文件中指明了测试桩平台的ip地址和服务端口,以将往调交易报文发送至目标测试桩平台。
前端展示与配置服务模块2用以进行项目配置,并在项目维度动态管理后端系统及对应的JAR包,JAR包内具有项目分类规则、入参匹配规则和出参规则代码,从而实现项目级的测试桩分类,并根据不同的项目对应不同的测试桩协议入口,以便测试桩数据的分开管理,前端采用thymeleaf/js模板引擎,提供spring标准方言和一个集成SpringMVC的可选模块,可以快速实现表单绑定和属性编辑器功能,以便于对测试桩的系统、版本、协议以及路由规则进行快速配置。
入参解析模块3用以装载配置过程中事先添加的JAR包,并基于入参匹配规则以对接收的往调交易报文进行解析,从而获取入参关键值;
出参模块4用以装载配置过程中事先添加的JAR包,并初始化路由标识中给定的类,进而根据不同的入参关键值匹配不同的出参规则,从而输出相应的出参信息。
项目配置包括项目所涉及系统相关配置、后端被调系统协议相关配置和协议下路由规则相关配置,项目即被测系统,其后端调用的系统不尽相同。该测试桩平台可以在项目维度动态管理后端系统及对应的JAR包,包括添加、删除、更新等操作。为兼容不同版本的后端系统,该平台支持为后端系统设置不同的版本。图2和图3是后端被调系统协议相关配置的界面图,每个系统支持多种协议,该平台当前支持RSF、HTTP、TCP等三种常见协议。每种协议均支持添加、删除、启动、停止等操作。图4是协议下路由规则相关配置界面图,这里,路由是一个通用的说法:对RSF协议,路由就是契约名,往调服务通过契约名匹配对应的规则;对HTTP协议,路由就是URI,往调服务通过URI来匹配对应的规则;对TCP协议,路由为空,往调服务直接通过入参解析来匹配规则。路由规则,主要包括入参匹配规则、出参规则、响应时延、异步响应状态等设置,支持添加、删除、修改等操作。
当被测系统往调服务需要访问测试桩平台时,会通过事先配置好的rsf-consumer.xml文件进行匹配,该xml文件中指明了测试桩平台的ip地址和服务端口。
项目配置具体包括以下步骤:
1)项目管理:系统管理员新建项目,并分配项目对应的管理员账户,各个项目管理员数据隔离,互不可见。
2)下游依赖系统管理:通过系统管理集中维护本项目涉及的所有预模拟的下游系统。
3)RSF契约包管理:下游系统接口若为RSF协议,则需要通过“jar包管理”集中维护。HTTP、TCP协议无须此步骤。
4)添加下游接口版本。:比如2.3.6。
5)在特定版本下添加协议:协议包括RSF、HTTP和TCP。
6)设置接口路由:路由名称为路由别名,便于管理;路由地址参考下游服务提供地址,用于被测对象实际调用。
7)设置接口入参匹配规则与出参规则,所述入参匹配规则与出参规则一一对应,用于实现不同入参,返回不同的出参,测试单个接口不同返回场景。
入参匹配规则包括如下方式:
1)单条件字符匹配
入参字段值解析为字符串时,匹配条件有等于、包含、不包含、正则匹配。
入参字段值解析为数字是,匹配条件有等于,大于,小于,大于等于,小于等于,不等于。
2)组合条件匹配
多个单条件组合是支持与、或关系,条件个数没有限制。
3)括号优先级
正常组合解析顺序为从左到右,含有“()”时会优先解析“()”内的表达式,再从左到右进行解析。
上游系统请求测试桩时,测试桩通过前置切面方法将请求入参与“匹配规则”进行匹配,若有规则匹配中则根据对应“出参规则”组织响应。若匹配到多个规则,则根据规则定义时间先后顺序,匹配最新规则;如没有匹配到任何已定义的规则,则返回默认出参。
出参规则包括以下方式:
1)从入参关键值直接获取字段值。
例如:output.test=input.test,将出参中”test”值设置为入参中“test”字段值。
2)入参字段值简单逻辑处理后设定。
例如:output.test=input.test1+input.test2,将出参中”test”值设置为入参中“test1”字段与“test2”字段的值(字符串)相加。
3)硬编码设定。例如:output.test=set.123,将出参中”test”值设置为“123”。
4)内置方法动态生成。内置方法包括获取当前日期(不同格式)、指定长度的随机数值、指定长度随机字符串、指定上下限的随机数值,字符串的截取/拼接等。
“出参规则”就是利用上面几种方式对出参字段值进行定义,根据入参“匹配规则”来唯一确定测试桩响应报文。默认出参可以理解为一种特殊的“出参规则”,其不可定义入参“匹配规则”,用于既定的入参“匹配规则”均不匹配时确定返回报文,其设置方式与正常的“出参规则”一致。
通过以上方式,本平台支持如下四种隔离:项目隔离、版本隔离、下游系统隔离、协议隔离。
1)项目隔离
不同的项目间,配置数据互不可见,接口请求互不影响,独立配置版本、下游系统、协议、接口出人参规则等信息。不同项目,后管页面账户数据隔离,不同账户数据互不可见。
2)下游系统隔离
不同下游系统隔离是指不同的下游系统间接口请求互不影响,独立配置协议、接口出入参规则等信息。
3)版本隔离
同下游依赖系统不同版本隔离是指不同的版本间接口请求互不影响,独立配置下游系统、协议、接口出入参规则等信息。
4)协议隔离
同系统不同协议隔离是指不同的协议间接口请求互不影响,独立配置协议、接口出入参规则等信息。
根据上述的隔离机制,在后管完成配置时,就已经动态分配IP地址与端口信息。RSF与HTTP信息根据IP、端口、路由标识信息动态注册地址,并在对应地址启动服务。地址生成规则为:协议固定前缀+IP地址:端口+路由标识。以HTTP为例,图5中地址为:http://[IP地址:端口]/epps-pag/apiGateway/merchantOrder/queryMerchantOrder.do
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,其它未具体描述的部分,属于现有技术或公知常识。在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (5)

1.一种通用可配置测试桩平台,其特征在于,包括:
数据接收模块,用以在被测系统往调服务需要访问测试桩平台时,接收被测系统发出的往调交易报文;
前端展示与配置服务模块,用以进行项目配置,并在项目维度动态管理后端系统及对应的JAR包,所述JAR包内具有项目分类规则、入参匹配规则和出参规则代码,从而实现项目级的测试桩分类,并根据不同的项目对应不同的测试桩协议入口,以便测试桩数据的分开管理,前端采用thymeleaf/js模板引擎,提供spring标准方言和一个集成SpringMVC的可选模块,可以快速实现表单绑定和属性编辑器功能,以便于对测试桩的系统、版本、协议以及路由规则进行快速配置;
入参解析模块,用以装载配置过程中事先添加的JAR包,并基于入参匹配规则以对接收的往调交易报文进行解析,从而获取入参关键值;
出参模块,用以装载配置过程中事先添加的JAR包,并初始化路由标识中给定的类,进而根据不同的入参关键值匹配不同的出参规则,从而输出相应的出参信息。
2.根据权利要求1所述的通用可配置测试桩平台,其特征在于,所述被测系统通过事先配置好的rsf-consumer.xml文件进行匹配,该xml文件中指明了测试桩平台的ip地址和服务端口,以将往调交易报文发送至目标测试桩平台。
3.根据权利要求1所述的通用可配置测试桩平台,其特征在于,所述项目配置包括项目所涉及系统相关配置、后端被调系统协议相关配置和协议下路由规则相关配置,且其包括以下步骤:
1)项目管理:系统管理员新建项目,并分配项目对应的管理员账户,各个项目管理员数据隔离,互不可见;
2)下游依赖系统管理:通过系统管理集中维护本项目涉及的所有预模拟的下游系统;
3)RSF契约包管理:下游系统接口若为RSF协议,则需要通过“jar包管理”集中维护;
4)添加下游接口版本;
5)在特定版本下添加协议:所述协议包括RSF、HTTP和TCP;
6)设置接口路由:路由地址参考下游服务提供地址,用于被测对象实际调用;
7)设置接口入参匹配规则与出参规则,所述入参匹配规则与出参规则一一对应,用于实现不同入参,返回不同的出参,测试单个接口不同返回场景。
4.根据权利要求1所述的通用可配置测试桩平台,其特征在于,所述入参匹配规则包括如下方式:
1)单条件字符匹配
入参字段值解析为字符串时,匹配条件有等于、包含、不包含、正则匹配;
入参字段值解析为数字是,匹配条件有等于,大于,小于,大于等于,小于等于,不等于;
2)组合条件匹配
多个单条件组合是支持与、或关系,条件个数没有限制;
3)括号优先级
正常组合解析顺序为从左到右,含有“()”时会优先解析“()”内的表达式,再从左到右进行解析。
5.根据权利要求1所述的通用可配置测试桩平台,其特征在于,所述出参规则包括以下方式:
1)从入参关键值直接获取字段值;
2)入参字段值简单逻辑处理后设定;
3)硬编码设定;
4)内置方法动态生成,包括获取当前日期、指定长度的随机数值、指定长度随机字符串、指定上下限的随机数值,字符串的截取和/或拼接。
CN202011632016.6A 2020-12-31 2020-12-31 一种通用可配置测试桩平台 Active CN112799713B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011632016.6A CN112799713B (zh) 2020-12-31 2020-12-31 一种通用可配置测试桩平台

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011632016.6A CN112799713B (zh) 2020-12-31 2020-12-31 一种通用可配置测试桩平台

Publications (2)

Publication Number Publication Date
CN112799713A CN112799713A (zh) 2021-05-14
CN112799713B true CN112799713B (zh) 2022-06-28

Family

ID=75808341

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011632016.6A Active CN112799713B (zh) 2020-12-31 2020-12-31 一种通用可配置测试桩平台

Country Status (1)

Country Link
CN (1) CN112799713B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113836031B (zh) * 2021-09-29 2024-05-10 长江存储科技有限责任公司 用于嵌入式系统测试的系统、方法、设备以及介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104618182A (zh) * 2015-01-21 2015-05-13 中国移动通信集团广东有限公司 一种支持多种移动业务协议的模拟测试系统
CN104683386A (zh) * 2013-11-26 2015-06-03 腾讯科技(深圳)有限公司 可定制响应的桩服务实现方法及装置
CN110727475A (zh) * 2019-10-12 2020-01-24 四川新网银行股份有限公司 基于配置化智能服务调用方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104683386A (zh) * 2013-11-26 2015-06-03 腾讯科技(深圳)有限公司 可定制响应的桩服务实现方法及装置
CN104618182A (zh) * 2015-01-21 2015-05-13 中国移动通信集团广东有限公司 一种支持多种移动业务协议的模拟测试系统
CN110727475A (zh) * 2019-10-12 2020-01-24 四川新网银行股份有限公司 基于配置化智能服务调用方法

Also Published As

Publication number Publication date
CN112799713A (zh) 2021-05-14

Similar Documents

Publication Publication Date Title
CN108509392B (zh) 多机构对账方法、系统、计算机设备和存储介质
US20030028533A1 (en) System and method for heterogeneous data source integration
CN106021111A (zh) 接口测试方法及系统
CN111061696B (zh) 一种交易报文日志的解析方法及装置
CN110119292A (zh) 系统运行参数查询方法、匹配方法、装置及节点设备
US9262241B2 (en) Computer system, computer-implemented method and computer program product for sequencing incoming messages for processing at an application
US20080162690A1 (en) Application Management System
CN112799713B (zh) 一种通用可配置测试桩平台
CN113157598A (zh) 接口测试方法和模拟挡板
US11687387B2 (en) Information management system router
CN112688802B (zh) 一种基于api网关的高效能交换中间件
CN113157904A (zh) 基于dfa算法的敏感词过滤方法及系统
CN110209578A (zh) 一种信息在线测试平台
CN115858352A (zh) 云挡板测试系统调用系统及方法
CN115048359A (zh) 一种多类型接入数据源的通用数据处理架构设计方法
Brahneborg et al. A lightweight architecture analysis of a monolithic messaging gateway
CN111104161B (zh) 一种数据库sql脚本的自动审批执行方法
CN112819605A (zh) 资金结算业务测试方法、装置及计算机可读介质
CN112967035A (zh) 跨数据库进行业务系统追账/测评方法及系统
US20060259605A1 (en) System and a method for mediating within a network
CN113377801A (zh) 数据检验方法、装置、电子设备及计算机存储介质
CN111078668A (zh) 数据生成方法、装置、电子设备和存储介质
CN116578655B (zh) 一种数据传输系统及其控制方法
CN116627677A (zh) 软件接口适配方法及适配器、电子设备及存储介质
CN117812040A (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