CN111695328A - 模拟测试报文生成方法、装置、设备及存储介质 - Google Patents
模拟测试报文生成方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN111695328A CN111695328A CN202010552890.2A CN202010552890A CN111695328A CN 111695328 A CN111695328 A CN 111695328A CN 202010552890 A CN202010552890 A CN 202010552890A CN 111695328 A CN111695328 A CN 111695328A
- Authority
- CN
- China
- Prior art keywords
- baffle
- request
- request object
- message
- simulation test
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
Abstract
本发明公开了一种模拟测试报文生成方法、装置、设备及存储介质,接收并解析待测试项目的测试请求,获得多级请求对象;基于预先设置的挡板配置表,判断是否存在与所述多级请求对象匹配的挡板;若存在匹配的挡板,则基于所述多级请求对象构造对应的响应对象;通过报文生成工具生成与所述响应对象对应的模拟测试报文,并将所述模拟测试报文返回至所述待测试项目。通过配置与待测试项目中多级请求对象匹配的挡板,由所述挡板返回基于报文生成工具生成的格式统一的模拟测试报文,由此减轻了测试工作量,提高了精细程度,获得了格式一致的报文。
Description
技术领域
本发明涉及金融科技(Fintech)技术领域,尤其涉及一种模拟测试报文生成方法、装置、设备及存储介质。
背景技术
随着计算机技术的发展,越来越多的技术应用在金融领域,传统金融业正在逐步向金融科技(Fintech)转变,但由于金融行业的安全性、实时性要求,也对技术提出了更高的要求。
项目在开发环境和测试环境中都需要进行测试。实际的项目一般比较复杂,会涉及到不同系统间交互、本地与远程交互,在现实中经常有系统间或本地与远程难以配合的情形。例如上游系统依赖于下游系统,若下游系统仅可提供接口文档并没有开发完善的功能,此时下游系统无法为上游系统提供测试所需的服务;或者下游系统难以触发到上游系统测试中所需要的异常情况;或者依赖本地系统进行测试时,本地系统难以提供异常场景;或者单测代码仅依赖于本地数据,不依赖远程服务。
现有的能满足各种情形的测试需求的通用型测试方法,存在着返回报文格式复杂且不能实现差异化、控制维度不够精细等缺陷。
发明内容
本发明提供一种模拟测试报文生成方法、装置、设备及存储介质,旨在提供减轻测试工作量,提高精细程度,获得格式一致的报文。
为实现上述目的,本发明提供一种模拟测试报文生成方法,该方法包括:
接收并解析待测试项目的测试请求,获得多级请求对象;
基于预先设置的挡板配置表,判断是否存在与所述多级请求对象匹配的挡板;
若存在匹配的挡板,则基于所述多级请求对象构造对应的响应对象;
通过报文生成工具生成与所述响应对象对应的模拟测试报文,并将所述模拟测试报文返回至所述待测试项目。
优选地,所述接收并解析待测试项目的测试请求,获得多级请求对象的步骤包括:
接收待测试项目发送的测试请求,获得所述测试请求中的入参数据;
基于预先设置的参数解析器解析所述入参数据获得对应的多级请求对象,其中所述多级请求对象包括主键请求对象和自定义请求对象。
优选地,所述解析所述入参数据获得对应的多级请求对象的步骤包括:
基于预先设置的参数解析器解析所述入参数据,获得所述多级请求对象的键值;
将所述键值填入对应的多级请求对象,获得包括键值的所述多级请求对象。
优选地,所述基于所述多级请求对象构造对应的响应对象的步骤包括:
读取所述多级响应对象的第一键值;
调用语法分析器中的语法执行功能,根据语法表达式和所述多级请求对象的第一键值确定对应的响应对象的属性值;
将所述属性值对应写入所述响应对象,获得与所述多级请求对象的第一键值对应的响应对象。
优选地,所述通过报文生成工具生成与所述响应对象对应的模拟测试报文的步骤包括:
通过报文生成工具预生成包括可替换变量的初始报文,其中所述可替换变量基于预先设置的接口文档确定;
将所述可替换变量的第二键值替换所述响应对象中的可替换变量的属性值,生成格式统一的模拟测试报文。
优选地,所述基于预先设置的挡板配置表,判断是否存在与所述多级请求对象匹配的挡板的步骤包括:
将所述多级请求对象与预先设置的所述挡板配置表中的字段进行对比;
若所述挡板配置表中的字段完全包括所述多级请求对象,则判定存在匹配的挡板;
若所述挡板配置表中的字段不完全包括所述多级请求对象,则判定不存在匹配的挡板。
优选地,所述将所述多级请求对象与预先设置的所述挡板配置表中的字段进行对比的步骤包括:
将所述多级请求对象中的主键请求对象与预先设置的所述挡板配置表中的主键进行对比;
若所述挡板配置表中的主键包括所述主键请求对象,则将所述多级请求对象中的基本请求对象和自定义请求对象与所述挡板配置表中的对应字段进行对比。
优选地,所述接收并解析待测试项目的测试请求,获得多级请求对象的步骤之前还包括:
设置挡板并添加所述挡板的本地调用方法和远程调用方法。
优选地,所述基于预先设置的挡板配置表,判断是否存在与所述多级请求对象匹配的挡板的步骤之后还包括:
若不存在匹配的挡板,则返回提示信息。
此外,为实现上述目的,本发明还提供一种模拟测试报文生成装置,所述装置包括:
接收模块,用于接收并解析待测试项目的测试请求,获得多级请求对象;
判断模块,用于基于预先设置的挡板配置表,判断是否存在与所述多级请求对象匹配的挡板;
构造模块,用于若存在匹配的挡板,则基于所述多级请求对象构造对应的响应对象;
生成模块,用于通过报文生成工具生成与所述响应对象对应的模拟测试报文,并将所述模拟测试报文返回至所述待测试项目。
此外,为实现上述目的,本发明还提供一种模拟测试报文生成设备,所述模拟测试报文生成设备包括处理器,存储器以及存储在所述存储器中的模拟测试报文生成程序,所述模拟测试报文生成程序被所述处理器运行时,实现如上所述的模拟测试报文生成方法的步骤。
此外,为实现上述目的,本发明还提供一种计算机存储介质,所述计算机存储介质上存储有模拟测试报文生成程序,所述模拟测试报文生成程序被处理器运行时实现如上所述模拟测试报文生成方法的步骤。
相比现有技术,本发明提供一种模拟测试报文生成方法、装置、设备及存储介质,接收并解析待测试项目的测试请求,获得多级请求对象;基于预先设置的挡板配置表,判断是否存在与所述多级请求对象匹配的挡板;若存在匹配的挡板,则基于所述多级请求对象构造对应的响应对象;通过报文生成工具生成与所述响应对象对应的模拟测试报文,并将所述模拟测试报文返回至所述待测试项目。通过配置与待测试项目中多级请求对象匹配的挡板,由所述挡板返回基于报文生成工具生成的格式统一的模拟测试报文,由此减轻了测试工作量,提高了精细程度,获得了格式一致的报文。
附图说明
图1是本发明各实施例涉及的模拟测试报文生成设备的硬件结构示意图;
图2是本发明模拟测试报文生成方法第一实施例的流程示意图;
图3是本发明模拟测试报文生成方法第一实施例涉及的excel接口文档示意图;
图4是本发明模拟测试报文生成方法第一实施例涉及的挡板本地调用关系图;
图5是本发明模拟测试报文生成方法第一实施例涉及的挡板远程调用关系图;
图6是本发明模拟测试报文生成装置第一实施例的功能模块示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例主要涉及的模拟测试报文生成设备是指能够实现网络连接的网络连接设备,所述模拟测试报文生成设备可以是服务器、云平台等。
参照图1,图1是本发明各实施例涉及的模拟测试报文生成设备的硬件结构示意图。本发明实施例中,模拟测试报文生成设备可以包括处理器1001(例如中央处理器Central Processing Unit、CPU),通信总线1002,输入端口1003,输出端口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信;输入端口1003用于数据输入;输出端口1004用于数据输出,存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器,存储器1005可选的还可以是独立于前述处理器1001的存储装置。本领域技术人员可以理解,图1中示出的硬件结构并不构成对本发明的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
继续参照图1,图1中作为一种可读存储介质的存储器1005可以包括操作系统、网络通信模块、应用程序模块以及模拟测试报文生成程序。在图1中,网络通信模块主要用于连接服务器,与服务器进行数据通信;而处理器1001可以调用存储器1005中存储的模拟测试报文生成程序,并执行本发明实施例提供的模拟测试报文生成方法。
基于上述模拟测试报文生成设备提出本发明第一实施例,本发明第一实施例提供一种模拟测试报文生成方法,所述方法包括接收并解析待测试项目的测试请求,获得多级请求对象;
步骤S101:基于预先设置的挡板配置表,判断是否存在与所述多级请求对象匹配的挡板;
步骤S102:若存在匹配的挡板,则基于所述多级请求对象构造对应的响应对象;
步骤S103:通过报文生成工具生成与所述响应对象对应的模拟测试报文,并将所述模拟测试报文返回至所述待测试项目。
本实施例中,基于挡板实现所述模拟测试报文生成方法。挡板(mock)是用于模拟交互项目的软件程序,在一些跨系统或者跨模块的项目中,往往由于客观因素的限制(例如测试硬件资源有限、多系统之间难以协调等),无法搭建一个完整的测试系统来完成测试工作。在搭建出待测试项目后,可以采用软件程序也即挡板来模拟相关交互项目的功能。
本实施例中涉及的挡板包括挡板配置表、参数解析器VarAnalyzer,语法分析器ResponseGrammar,报文生成工具MockitReportGenerator,挡板接口MockitApi以及AOP拦截器Mockit。
其中,所述挡板配置表包括多个字段,例如服务类型(serve type)、服务编码(serve code)、返回接口文档的统一资源定位符(report Uniform Resource Locator,report URL)、请求键值(request keys)、响应语法公式(Response Grammar)。其中,servetype和serve code是主键用于匹配挡板;report URL是返回接口文档的路径,所述接口文档包括excel格式的文档和基于Show Doc(Show Doc是适合IT团队的在线API文档、技术文档工具)在线编辑的应用程序接口(Application Programming Interface,API)文档;request keys用于解析复杂的测试请求获得入参数据和对应的请求对象;ResponseGrammar用于获取响应对象的键值。例如所述serve type用于定义服务类型,说是服务类型可以是LOCAL(本地)、HTTP(Hyper Text Transfer Protocol,超文本传输协议)等;再例如所述server_code用于定义服务编码,可以是接口编码1001,1002等。所述report_URL可借助报文生成工具Mockit Report Generator来预生成带可替换变量的报文;response_grammar可借助语法解析器Response Grammar来精确匹配是否命中挡板,以及返回可替换变量对应的值。所述挡板配置表既适用于开发环境也适用于测试环境。
本实施例中,所述接收并解析待测试项目的测试请求,获得多级请求对象的步骤包括:
接收待测试项目发送的测试请求,获得所述测试请求中的入参数据;
基于预先设置的参数解析器解析所述入参数据获得对应的多级请求对象,其中所述多级请求对象包括主键请求对象和自定义请求对象。
本实施例中,由所述待测试项目发起测试请求,所述测试请求包括项目名称、项目版本号、开发者信息、多级请求对象等入参数据,所述模拟测试报文生成设备接收到所述测试请求后,获得所述测试请求中的入参数据。并按照预先设定的多级请求对象的字段获得对应的主键请求对象和自定义请求对象,其中,所述主键请求对象包括serve type和servecode;所述自定义请求对象包括domain ID(区域编码)、product ID(产品编码)、通讯协议类型、类名等。
具体地,所述解析所述入参数据获得对应的多级请求对象的步骤包括:
基于预先设置的参数解析器解析所述入参数据,获得所述多级请求对象的。所述参数解析器从所述入参数据中获取各个多级请求对象的键名。
当确定所述请求对象后,则执行步骤S102:基于预先设置的挡板配置表,判断是否存在与所述多级请求对象匹配的挡板。
具体地,所述基于预先设置的挡板配置表,判断是否存在与所述多级请求对象匹配的挡板的步骤包括:
将所述多级请求对象与预先设置的所述挡板配置表中的字段进行对比;
若所述挡板配置表中的字段完全包括所述多级请求对象,则判定存在匹配的挡板;
若所述挡板配置表中的字段不完全包括所述多级请求对象,则判定不存在匹配的挡板。
具体地,先将所述多级请求对象中的主键请求对象与预先设置的所述挡板配置表中的主键进行对比;也即先比较serve type和serve code,例如若所述主键请求对象中的serve type是HTTP,serve code是接口编码1001,则遍历或搜索所述挡板配置表中的serve_type和serve code,若所述挡板配置表中存在serve type为HTTP,serve code为接口编码1001的主键,则判定所述挡板配置表包括所述主键请求对象;反之,若所述挡板配置表中不存在serve type为HTTP,和/或不存在serve_code为接口编码1001的主键则判定所述挡板配置表不包括所述主键请求对象。
若所述挡板配置表中的主键包括所述主键请求对象,则将所述多级请求对象中的基本请求对象和自定义请求对象与所述挡板配置表中的对应字段进行对比;若所述挡板配置表中存在与所述主键请求对象的主键一致的servetype和serve code再继续比较各个所述基本请求对象和所述自定义请求对象,由此逐步实现精细控制,提高精细程度。本实施例中,可以并行对比所述基本请求对象和所述自定义请求对象,也可以先后对比所述基本请求对象和所述自定义请求对象。具体地,搜索或遍历所述挡板配置表,判断所述挡板配置表中是否存在与所述基本请求对象和/或所述自定义请求对象的键名一致的主键,若所述挡板配置表中存在与所述基本请求对象和所述自定义请求对象的键名一致的主键,则说明所述挡板配置表中的字段完全包括所述多级请求对象,由此可以判定存在匹配的挡板;若所述挡板配置表中不存在与所述基本请求对象和所述自定义请求对象的键名都一致的主键,则说明所述挡板配置表中的字段不完全包括所述多级请求对象,也即所述挡板配置表中的字段不完全包括所述多级请求对象,由此可以判定不存在与所述待测试项目匹配的挡板。
若不存在匹配的挡板,则返回提示信息。本实施例中,可以将所述提示信息设置为null(表示零值、空位)。
若存在匹配的挡板,则执行步骤S103:基于所述多级请求对象构造对应的响应对象。
当存在匹配的挡板后,则说明可以基于所述挡板构造与所述多级请求对象构造对应的响应对象。可以理解地,只有基于对应的响应对象才能获得测试所需的报文。
本实施例中,所述基于所述多级请求对象构造对应的响应对象的步骤包括:
读取所述多级响应对象的第一键值;调用语法分析器中的语法执行功能,根据语法表达式和所述多级请求对象的第一键值确定对应的响应对象的属性值;将所述属性值对应写入所述响应对象,获得与所述多级请求对象的第一键值对应的响应对象。
本实施例中,所述语法表达式的逻辑表达式包括&&、||;所述语法表达式的关系表达式包括>、>=、==、<等。所述语法表达式的内置函数包括isBlank(判断字符串是否为空)、equal(判断字符串是否相等)、startWith(判断是否以字符串开始)等。例如,若IF表达式中isBlank(abc),则结果为false;若equal(abc,Abc),则结果为false;若startWith(abc,a),则结果为true。
本实施例中,所述挡板包括语法分析器,所述语法分析器支持简单的语法判断,可以根据请求对象的值返回对应的响应对象,或者在未匹配到挡板是返回null。由此,可以通过所述语法分析器精确控制各种场景下的请求对象的响应对象。
在确定了所述响应对象后,则可以获得对应的表达式,所述表达式可以是inputStr,例如input Str的语法表达公式可以是:
If(request.get(‘domain ID’)==‘001’&request.get(‘product CD’)==‘2134’)
{
Response.status=‘SUCC’;
Response.sysNO.=‘12356774’;}
Else
{Response.status=‘fail’;}
然后基于初始化所述响应对象,例如,初始化为:
Response grammar=new;
Response grammar(input Str);
grammar.set Request(request);
grammar.set Response(response);
完成上述设置之后,将预先获得的第一键值对应填入多级请求对象中,获得包括所述第一键值的所述多级请求对象。本实施例中,读取对应的第一键值,然后将所述第一键值填入对应键名的多级请求对象中,即可获得包括所述第一键值的多级请求对象。一般地,测试请求中的入参数据的格式比较复杂并且各个入参数据的格式也难以统一,利用所述参数解析器可以把复杂的入参数据统一转换成键值类的请求对象,由此可以便于数据管理,并节约数据读取时间。
本实施例中可以基于语法表达公式填入所述第一键值,例如:
request.put(‘domain ID’,‘001’);
request.put(‘product CD’,‘2134’)。
也即将多级请求对象中的基本请求对象或自定义请求对象中的键名为domain ID的第一键值设置为001;将键名为product CD的第一键值设置为2134。
获得所述第一键值后,则调用语法分析器中的语法执行功能,根据语法表达式和所述多级请求对象的第一键值确定对应响应对象的属性值。所述语法执行功能(grammar.execute)。本实施例基于所述语法执行功能实现对语法表达式IF中条件正误的判断,以及response对象属性的赋值。对于语法的分析,可以借助业界主流的javaCC语法分析生成器来实现。
再将所述属性值对应写入所述响应对象,获得与所述多级请求对象的第一键值对应的响应对象。
当获得所述响应对象后,则执行步骤S103:通过报文生成工具生成与所述响应对象对应的模拟测试报文,并将所述模拟测试报文返回至所述待测试项目。
所述报文生成工具中预先定义了报文的格式,可以基于所述报文生成工具获得格式统一的报文。
具体地,通过报文生成工具预生成包括可替换变量的初始报文,其中所述可替换变量基于预先设置的接口文档确定;将所述可替换变量的第二键值替换所述响应对象中的可替换变量的属性值,生成格式统一的模拟测试报文。
本实施例中,需要预设设置接口文档。所述接口文档包括excel接口文档和API文档。参照图3,图3是本发明模拟测试报文生成方法第一实施例涉及的excel接口文档示意图。如图3所示,图3表示一个商业系统的实例excel接口文档,所述excel接口文档包括sys_name,txn_id,detail_type,field name,field desc,field type,force exsit,value_format,mock_value。其中,sys_name代表系统号,sys_name可以是DEP;txn_id代表接口编号,例如1234;detail_type代表数据类型,数据类型包括REQ(请求数据)和RSP(返回数据);field name表示名称,可以是input,cust-account no,subaccount-serial no,comm req,channel id,txn branch_code,txn_teller_id,out_put,card_number,curd_nomber,cust_account_type;cust_account_no;account_name,open_branch_code,account_status,amount_block_flag,comm res,txn_date,txn_time,sys,errcode,errmsg;所述field name对应的field desc分别是请求、客户账号、子账户序号、公共请求、渠道、交易机构、交易柜员、应答、卡号、客户号、客户账号类型、客户账号、账户名称、开户机构、账户状态、冻结状态、公共应答、交易日期、交易时间、错误信息、错误码以及错误描述;Filed_type代表参数格式和长度等,对应的field type分别为OBJECT,C(35),C(8),OBJECT,C(3),C(10),C(8),OBJECT,C(40),C(16),C(1),C(35),C(100),C(10),C(1),C(1),OBJECT,C(8),C(8),OBJECT,C(32),C(255)。
value_format是值的格式化,包括null,枚举数据例如ENUM(1,2),以及日期格式化。例如DATE(yyyymmdd)、DATE(yyyymmddHHmmssSSS)等)mock_value表示可替换变量,例如S{request.acctNo},S{request.branchCode},S{response.errCode},S{response.errMsg}等,若无指定的可替换变量,则所述可替换变量的第二键值为随机数。
由此,基于所述接口文档可以确定可替换变量以及所述可替换变量的第二键值。将所述可替换变量的第二键值替换所述响应对象中的可替换变量的属性值,即可以生成格式统一的模拟测试报文。
本实施例通过上述方案即可获得与待测试项目对应的格式统一的模拟测试报文。
进一步地,所述接收并解析待测试项目的测试请求,获得多级请求对象的步骤之前还包括:
设置挡板并添加所述挡板的本地调用方法和远程调用方法。
所述挡板需要提前设置,并且还需要提供本地调用方法和远程调用方法。
本实施例中,添加所述挡板的本地调用方法是:增加注解@Mockit(serverType=””,serverCode=””),并在数据库表增加挡板配置。增加注解的方式是低入侵式。参照图4,图4是本发明模拟测试报文生成方法第一实施例涉及的挡板本地调用关系图。如图4a所示,在同一个系统Business System(商业系统)内,待测试的本地项目FunctionA需要调用本地项目FunctionB来完成测试,不使用挡板时直接在本地项目FunctionA和本地项目FunctionB之间通讯。若本地项目FunctionB未开发完全,或者不易触发异常情况则不能达到对本地项目FunctionA进行测试的目的。此时,可以利用挡板模拟本地项目FunctionB的功能。如图4b所示,在同一个系统Business System(商业系统)内,在待测试的本地项目FunctionA与本地项目FunctionB之间设置mockit(AOP拦截器),并通过挡板接口(mockitApi)与MockitReportGenerator(报文生成工具)以及ResponseGrammar(语法分析器)进行通信,所述ResponseGrammar基于挡板配置表解析出多级请求对象,并构造对应的响应对象,所述MockitReportGenerator基于excel借口文档生成格式统一的模拟测试报文,如此按本实施例提供的模拟测试报文生成即可获得模拟本地项目FunctionB返回的模拟测试报文。
本实施例中,添加所述挡板的远程调用方法是直接通过MockitApi调用mock方法,具体的命令如下:
T mock(String serverType,String serverCode,String[]reqKeys,Object[]reqArgs,Class<T>returnType);
在调用远程服务Remote Serve的ClientApi之前,先所述命令远程嵌入MockitApi,基于所述MockitApi模拟挡板处理,未匹配到挡板,则继续触发正常的远程调用流程;未匹配到挡板,则基于挡板返回对应的模拟测试报文。
本实施例中,在远程调用MockittApi里封装,不改变开发者调用远程ClientApi的方式,对开发者无感知。并且既可以实现本地测试,又可以实现远程测试。也不受测试环境的影响,既可以在开发环境中使用,也可以在测试环境中使用。
图5是本发明模拟测试报文生成方法第一实施例涉及的挡板远程调用关系图。如图5a所示,在同一个系统Business System(商业系统)内,待测试的本地项目FunctionA需要调用远程服务Remote Serve来完成测试,不使用挡板时直接在本地项目FunctionA和远程服务Remote Serve之间通讯。当在ClientApi里面嵌入MockitApi之后,如图5b所示,本地项目FunctionA与MockitApi进行通讯,并通过mockitApi)与MockitReportGenerator以及ResponseGrammar进行通信,所述ResponseGrammar基于挡板配置表解析出多级请求对象,并构造对应的响应对象,所述MockitReportGenerator基于excel借口文档生成格式统一的模拟测试报文,如此按本实施例提供的模拟测试报文生成即可获得模拟远程服务RemoteServe返回的模拟测试报文。
本实施例通过上述方案,接收并解析待测试项目的测试请求,获得多级请求对象;基于预先设置的挡板配置表,判断是否存在与所述多级请求对象匹配的挡板;若存在匹配的挡板,则基于所述多级请求对象构造对应的响应对象;通过报文生成工具生成与所述响应对象对应的模拟测试报文,并将所述模拟测试报文返回至所述待测试项目。通过配置与待测试项目中多级请求对象匹配的挡板,由所述挡板返回基于报文生成工具生成的格式统一的模拟测试报文,由此减轻了测试工作量,提高了精细程度,获得了格式一致的报文。
此外,本实施例还提供一种模拟测试报文生成装置。参考图6,图6是本发明模拟测试报文生成装置第一实施例的功能模块示意图。所述报文生成装置包括:
接收模块10,用于接收并解析待测试项目的测试请求,获得多级请求对象;
判断模块20,用于基于预先设置的挡板配置表,判断是否存在与所述多级请求对象匹配的挡板;
构造模块30,用于若存在匹配的挡板,则基于所述多级请求对象构造对应的响应对象;
生成模块40,用于通过报文生成工具生成与所述响应对象对应的模拟测试报文,并将所述模拟测试报文返回至所述待测试项目。
进一步地,所述接收模块还用于:
接收待测试项目发送的测试请求,获得所述测试请求中的入参数据;
基于预先设置的参数解析器解析所述入参数据获得对应的多级请求对象,其中所述多级请求对象包括主键请求对象和自定义请求对象。
进一步地,所述接收模块还用于:
基于预先设置的参数解析器解析所述入参数据,获得所述多级请求对象的键值;
将所述键值填入对应的多级请求对象,获得包括键值的所述多级请求对象。
进一步地,所述构造模块还用于:
读取所述多级响应对象的第一键值;
调用语法分析器中的语法执行功能,根据语法表达式和所述多级请求对象的第一键值确定对应的响应对象的属性值;
将所述属性值对应写入所述响应对象,获得与所述多级请求对象的第一键值对应的响应对象。
进一步地,所述生成模块还用于:
通过报文生成工具预生成包括可替换变量的初始报文,其中所述可替换变量基于预先设置的接口文档确定;
将所述可替换变量的第二键值替换所述响应对象中的可替换变量的属性值,生成格式统一的模拟测试报文。
进一步地,所述判断模块还用于:
将所述多级请求对象与预先设置的所述挡板配置表中的字段进行对比;
若所述挡板配置表中的字段完全包括所述多级请求对象,则判定存在匹配的挡板;
若所述挡板配置表中的字段不完全包括所述多级请求对象,则判定不存在匹配的挡板。
进一步地,所述判断模块还用于:
将所述多级请求对象中的主键请求对象与预先设置的所述挡板配置表中的主键进行对比;
若所述挡板配置表中的主键包括所述主键请求对象,则将所述多级请求对象中的基本请求对象和自定义请求对象与所述挡板配置表中的对应字段进行对比。
进一步地,所述接收模块还用于:
设置挡板并添加所述挡板的本地调用方法和远程调用方法。
进一步地,所述判断模块还用于:
若不存在匹配的挡板,则返回提示信息。
此外,本发明实施例还提供一种计算机存储介质,所述计算机存储介质上存储有模拟测试报文生成程序,所述模拟测试报文生成程序被处理器运行时实现如上所述模拟测试报文生成方法的步骤,此处不再赘述。
相比现有技术,本发明提供一种模拟测试报文生成方法、装置、设备及存储介质,接收并解析待测试项目的测试请求,获得多级请求对象;基于预先设置的挡板配置表,判断是否存在与所述多级请求对象匹配的挡板;若存在匹配的挡板,则基于所述多级请求对象构造对应的响应对象;通过报文生成工具生成与所述响应对象对应的模拟测试报文,并将所述模拟测试报文返回至所述待测试项目。通过配置与待测试项目中多级请求对象匹配的挡板,由所述挡板返回基于报文生成工具生成的格式统一的模拟测试报文,由此减轻了测试工作量,提高了精细程度,获得了格式一致的报文。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备执行本发明各个实施例所述的方法。
以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或流程变换,或直接或间接运用在其它相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (11)
1.一种模拟测试报文生成方法,其特征在于,所述方法包括:
接收并解析待测试项目的测试请求,获得多级请求对象;
基于预先设置的挡板配置表,判断是否存在与所述多级请求对象匹配的挡板;
若存在匹配的挡板,则基于所述多级请求对象构造对应的响应对象;
通过报文生成工具生成与所述响应对象对应的模拟测试报文,并将所述模拟测试报文返回至所述待测试项目。
2.根据权利要求1所述的方法,其特征在于,所述接收并解析待测试项目的测试请求,获得多级请求对象的步骤包括:
接收待测试项目发送的测试请求,获得所述测试请求中的入参数据;
基于预先设置的参数解析器解析所述入参数据获得对应的多级请求对象,其中所述多级请求对象包括主键请求对象和自定义请求对象。
3.根据权利要求1所述的方法,其特征在于,所述基于所述多级请求对象构造对应的响应对象的步骤包括:
读取所述多级响应对象的第一键值;
调用语法分析器中的语法执行功能,根据语法表达式和所述多级请求对象的第一键值确定对应的响应对象的属性值;
将所述属性值对应写入所述响应对象,获得与所述多级请求对象的第一键值对应的响应对象。
4.根据权利要求1所述的方法,其特征在于,所述通过报文生成工具生成与所述响应对象对应的模拟测试报文的步骤包括:
通过报文生成工具预生成包括可替换变量的初始报文,其中所述可替换变量基于预先设置的接口文档确定;
将所述可替换变量的第二键值替换所述响应对象中的可替换变量的属性值,生成格式统一的模拟测试报文。
5.根据权利要求1所述的方法,其特征在于,所述基于预先设置的挡板配置表,判断是否存在与所述多级请求对象匹配的挡板的步骤包括:
将所述多级请求对象与预先设置的所述挡板配置表中的字段进行对比;
若所述挡板配置表中的字段完全包括所述多级请求对象,则判定存在匹配的挡板;
若所述挡板配置表中的字段不完全包括所述多级请求对象,则判定不存在匹配的挡板。
6.根据权利要求5所述的方法,其特征在于,所述将所述多级请求对象与预先设置的所述挡板配置表中的字段进行对比的步骤包括:
将所述多级请求对象中的主键请求对象与预先设置的所述挡板配置表中的主键进行对比;
若所述挡板配置表中的主键包括所述主键请求对象,则将所述多级请求对象中的基本请求对象和自定义请求对象与所述挡板配置表中的对应字段进行对比。
7.根据权利要求1所述的方法,其特征在于,所述接收并解析待测试项目的测试请求,获得多级请求对象的步骤之前还包括:
设置挡板并添加所述挡板的本地调用方法和远程调用方法。
8.根据权利要求1所述的方法,其特征在于,所述基于预先设置的挡板配置表,判断是否存在与所述多级请求对象匹配的挡板的步骤之后还包括:
若不存在匹配的挡板,则返回提示信息。
9.一种模拟测试报文生成装置,其特征在于,所述装置包括:
接收模块,用于接收并解析待测试项目的测试请求,获得多级请求对象;
判断模块,用于基于预先设置的挡板配置表,判断是否存在与所述多级请求对象匹配的挡板;
构造模块,用于若存在匹配的挡板,则基于所述多级请求对象构造对应的响应对象;
生成模块,用于通过报文生成工具生成与所述响应对象对应的模拟测试报文,并将所述模拟测试报文返回至所述待测试项目。
10.一种模拟测试报文生成设备,其特征在于,所述模拟测试报文生成设备包括处理器,存储器以及存储在所述存储器中的模拟测试报文生成程序,所述模拟测试报文生成程序被所述处理器运行时,实现如权利要求1-8中任一项所述的模拟测试报文生成方法的步骤。
11.一种计算机存储介质,其特征在于,所述计算机存储介质上存储有模拟测试报文生成程序,所述模拟测试报文生成程序被处理器运行时实现如权利要求1-8中任一项所述模拟测试报文生成方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010552890.2A CN111695328B (zh) | 2020-06-16 | 2020-06-16 | 模拟测试报文生成方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010552890.2A CN111695328B (zh) | 2020-06-16 | 2020-06-16 | 模拟测试报文生成方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111695328A true CN111695328A (zh) | 2020-09-22 |
CN111695328B CN111695328B (zh) | 2023-01-24 |
Family
ID=72481456
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010552890.2A Active CN111695328B (zh) | 2020-06-16 | 2020-06-16 | 模拟测试报文生成方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111695328B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113010411A (zh) * | 2020-12-15 | 2021-06-22 | 云智慧(北京)科技有限公司 | 基于mock服务返回数据的方法、系统和模拟测试方法 |
CN115134397A (zh) * | 2022-06-28 | 2022-09-30 | 中国银行股份有限公司 | 一种自适应的交易挡板平台的实现方法、装置及设备 |
CN117478570A (zh) * | 2023-12-27 | 2024-01-30 | 深圳万物安全科技有限公司 | 基于容器化技术的设备测试方法、装置及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105389256A (zh) * | 2015-11-11 | 2016-03-09 | 中国建设银行股份有限公司 | 一种单元测试方法及系统 |
CN108268253A (zh) * | 2017-05-05 | 2018-07-10 | 平安科技(深圳)有限公司 | 接口代码生成方法及终端设备 |
CN110032454A (zh) * | 2018-01-12 | 2019-07-19 | 北京京东尚科信息技术有限公司 | 远程调用方法、系统和相关设备及计算机可读存储介质 |
CN110309058A (zh) * | 2019-05-24 | 2019-10-08 | 平安银行股份有限公司 | 业务端测试方法、装置、计算机装置及计算机存储介质 |
CN110569159A (zh) * | 2019-09-05 | 2019-12-13 | 深圳前海微众银行股份有限公司 | 挡板生成方法、装置、设备及计算机存储介质 |
WO2020029971A1 (zh) * | 2018-08-10 | 2020-02-13 | 京东数字科技控股有限公司 | 支付过程的处理方法、装置、介质及电子设备 |
CN110851468A (zh) * | 2018-08-01 | 2020-02-28 | 北京京东尚科信息技术有限公司 | 对客户端的测试请求做出模拟响应的方法和装置 |
-
2020
- 2020-06-16 CN CN202010552890.2A patent/CN111695328B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105389256A (zh) * | 2015-11-11 | 2016-03-09 | 中国建设银行股份有限公司 | 一种单元测试方法及系统 |
CN108268253A (zh) * | 2017-05-05 | 2018-07-10 | 平安科技(深圳)有限公司 | 接口代码生成方法及终端设备 |
CN110032454A (zh) * | 2018-01-12 | 2019-07-19 | 北京京东尚科信息技术有限公司 | 远程调用方法、系统和相关设备及计算机可读存储介质 |
CN110851468A (zh) * | 2018-08-01 | 2020-02-28 | 北京京东尚科信息技术有限公司 | 对客户端的测试请求做出模拟响应的方法和装置 |
WO2020029971A1 (zh) * | 2018-08-10 | 2020-02-13 | 京东数字科技控股有限公司 | 支付过程的处理方法、装置、介质及电子设备 |
CN110309058A (zh) * | 2019-05-24 | 2019-10-08 | 平安银行股份有限公司 | 业务端测试方法、装置、计算机装置及计算机存储介质 |
CN110569159A (zh) * | 2019-09-05 | 2019-12-13 | 深圳前海微众银行股份有限公司 | 挡板生成方法、装置、设备及计算机存储介质 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113010411A (zh) * | 2020-12-15 | 2021-06-22 | 云智慧(北京)科技有限公司 | 基于mock服务返回数据的方法、系统和模拟测试方法 |
CN115134397A (zh) * | 2022-06-28 | 2022-09-30 | 中国银行股份有限公司 | 一种自适应的交易挡板平台的实现方法、装置及设备 |
CN117478570A (zh) * | 2023-12-27 | 2024-01-30 | 深圳万物安全科技有限公司 | 基于容器化技术的设备测试方法、装置及存储介质 |
CN117478570B (zh) * | 2023-12-27 | 2024-03-22 | 深圳万物安全科技有限公司 | 基于容器化技术的设备测试方法、装置及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111695328B (zh) | 2023-01-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111695328B (zh) | 模拟测试报文生成方法、装置、设备及存储介质 | |
US10949335B2 (en) | Designer defined mocking service behavior | |
CN100464294C (zh) | 对命令的输入参数执行基于反射的处理的方法和系统 | |
EP3654201A1 (en) | Spark query method and system supporting trusted computing | |
CN110765102B (zh) | 业务数据的处理方法、装置、计算机设备和存储介质 | |
US11030085B2 (en) | User defined mocking service behavior | |
US9239709B2 (en) | Method and system for an interface certification and design tool | |
US9588742B2 (en) | Rule-based automatic class generation from a JSON message | |
RU2367999C2 (ru) | Механизм для получения и применения ограничений к логическим структурам в интерактивной среде | |
EP1387262A1 (en) | Method to generate synchronization contracts for software components and web services | |
AU2017200895B2 (en) | Software integration testing with unstructured database | |
CN108111364B (zh) | 一种业务系统的测试方法及装置 | |
WO1999021404A2 (en) | Apparatus and method for semi-automated generation and application of language conformity tests | |
US11886818B2 (en) | Method and apparatus for detecting anomalies in mission critical environments | |
CN111737140A (zh) | 接口自动化测试方法、装置、设备及计算机可读存储介质 | |
CN111737334A (zh) | 数据上报方法、装置、设备及存储介质 | |
CN110278272B (zh) | 模拟Socket请求的通用方法 | |
CN113885876A (zh) | 一种参数校验方法、装置、存储介质及计算机系统 | |
CN117032634A (zh) | 组件处理方法及系统 | |
CN112559344A (zh) | 远程mock测试方法及系统 | |
CN114398152A (zh) | 接口仿真服务调用方法及装置 | |
Chen et al. | An approach of security testing for third‐party component based on state mutation | |
Habibi et al. | Generating test as a web service (TaaWS) through a method-based attribute grammar | |
US11960560B1 (en) | Methods for analyzing recurring accessibility issues with dynamic web site behavior and devices thereof | |
CN112799710B (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 |