CN107797933B - 生成模拟报文的方法及装置 - Google Patents

生成模拟报文的方法及装置 Download PDF

Info

Publication number
CN107797933B
CN107797933B CN201711172715.5A CN201711172715A CN107797933B CN 107797933 B CN107797933 B CN 107797933B CN 201711172715 A CN201711172715 A CN 201711172715A CN 107797933 B CN107797933 B CN 107797933B
Authority
CN
China
Prior art keywords
field
entity
interface
entities
field entity
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
CN201711172715.5A
Other languages
English (en)
Other versions
CN107797933A (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.)
Bank of China Ltd
Original Assignee
Bank of China 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 Bank of China Ltd filed Critical Bank of China Ltd
Priority to CN201711172715.5A priority Critical patent/CN107797933B/zh
Publication of CN107797933A publication Critical patent/CN107797933A/zh
Application granted granted Critical
Publication of CN107797933B publication Critical patent/CN107797933B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/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

Abstract

本申请公开一种生成模拟报文的方法及装置,涉及计算机技术领域,用于解决目前模拟报文生成效率较低的问题。所述方法包括:解析待测试系统接口的接口文档,生成接口对象;其中,所述接口对象为以计算机可读语言表示的、用于描述接口文档的数据结构,所述接口对象包括字段实体,所述字段实体是与接口文档的字段对应的实体,所述字段实体至少包括以下属性:字段名称、类型以及正则规则;以接口对象中所有字段实体对应的模拟数据,构建模拟报文;其中,所述模拟数据为根据字段实体的属性生成的随机数据。本申请适用于模拟报文的生成过程中。

Description

生成模拟报文的方法及装置
技术领域
本申请涉及计算机技术领域,尤其涉及一种生成模拟报文的方法及装置。
背景技术
目前,在系统调试环节,通常通过生成模拟报文来测试系统接口。在生成模拟报文时,开发人员需要阅读并理解系统接口的接口文档,学习系统接口传输的报文的结构,然后手动输入信息以生成模拟报文,导致模拟报文的生成效率较低,影响测试进度。另外,由于是手动生成模拟报文,因此在拼写字段、确定取值类型等过程中容易出现错误,从而导致生成的模拟报文不准确,影响对系统接口的测试。
发明内容
本申请提供一种生成模拟报文的方法及装置,用于提高模拟报文的生成效率和准确率。
为达到上述目的,本申请采用如下技术方案:
第一方面,本申请提供一种生成模拟报文的方法,包括:
解析待测试系统接口的接口文档,生成接口对象;其中,所述接口对象为以计算机可读语言表示的、用于描述接口文档的数据结构,所述接口对象包括字段实体,所述字段实体是与接口文档的字段对应的实体,所述字段实体至少包括以下属性:字段名称、类型和正则规则;
以接口对象中所有字段实体对应的模拟数据,构建模拟报文;其中,所述模拟数据为根据字段实体的属性生成的随机数据。
第二方面,本申请提供一种生成模拟报文的装置,包括:
解析模块,用于解析待测试系统接口的接口文档,生成接口对象;其中,所述接口对象为以计算机可读语言表示的、用于描述接口文档的数据结构,所述接口对象包括字段实体,所述字段实体是与接口文档的字段对应的实体,所述字段实体至少包括以下属性:字段名称、类型和正则规则;
构建模块,用于以接口对象中所有字段实体对应的模拟数据,构建模拟报文;其中,所述模拟数据为根据字段实体的属性生成的随机数据。
第三方面,本申请提供一种设备,所述设备包括:处理器、收发器和存储器。其中,存储器用于存储计算机执行指令,当该设备运行时,处理器执行该存储器存储的该计算机执行指令,以使该设备执行第一方面及其各种可选的实现方式中任意之一所述的生成模拟报文的方法。
第四方面,本申请提供一种计算机可读存储介质,计算机可读存储介质中存储有一个或多个程序,一个或多个程序包括计算机执行指令,当该设备的处理器执行该计算机执行指令时,该设备执行上述第一方面及其各种可选的实现方式中任意之一所述的生成模拟报文的方法。
本申请提供一种生成模拟报文的方法及装置,通过解析待测试系统接口的接口文档,生成接口对象。其中,该接口对象为以计算机可读语言表示的、用于描述接口文档的数据结构,接口对象由字段实体组成,所述字段实体是与接口文档的字段对应的实体,所述字段实体至少包括以下属性:字段名称、类型、正则规则。可以理解的是,上述接口对象对于计算机等设备而言是可读的,因此,计算机等设备可以根据上述接口对象中字段实体的属性生成模拟数据,进而以接口对象中所有字段实体对应的模拟数据,构建模拟报文,从而实现模拟报文的自动生成,提高模拟报文的生成效率和准确率。
附图说明
图1为本申请实施例提供的一种生成模拟报文的方法的流程图;
图2为本申请实施例提供的一种生成模拟报文的装置的结构示意图;
图3为本申请实施例提供的一种设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。
为了便于说明,下面先对接口文档进行简单的介绍。
接口文档,顾名思义,就是描述系统接口的文档。接口文档用于记录系统接口收发的数据以及数据的格式。接口文档一般为表格的形式。其中,接口文档的一行记录可称之为一个字段。字段一般具有序号和特征信息,所述特征信息包括:字段名称、类型以及正则规则。字段的类型一般包括:字符串(string)、数值(number)、列表(list)、对象(object)以及日期(date)。
示例性的,接口文档可以如表一所示。该接口文档对应的接口为productInfoQuery(查询理财产品基本信息)。
表一
Figure BDA0001477583930000031
表一所示的接口文档包括4个字段分别是:productNo、productNam、interest以及historyPrice。另外,historyPrice的类型为list,historyPrice还包括至少一个条目,而每个条目又包含3个字段,这3个字段分别是:priceDate、price以及flag。
在上述接口文档中,最小长度表示该字段的数据的最小长度,相似的,最大长度表示该字段的数据的最大长度。正则规则[^a-z]表示字段的数据可以从a至z的26个字母中选取。正则规则A|B表示字段的数据为A或者为B。
为了提高模拟报文的生成效率,本申请实施例提供一种生成模拟报文的方法,所述方法的执行主体可以为计算机等设备。如图1所示,所述方法包括:
S101、解析待测试系统接口的接口文档,生成接口对象。
其中,所述接口对象为以计算机可读语言表示的、用于描述接口文档的数据结构。示例性的,所述计算机可读语言可以为Java,C语言等。所述数据结构为计算机存储、组织数据的方式。可以理解的是,由于接口对象是以计算机可读语言表示的,因此上述接口对象对于计算机来说是可读的。
接口对象由字段实体组成,所述字段实体是与接口文档的字段对应的实体,所述字段实体至少包括以下属性:字段名称、类型、正则规则。
一种可选实现方式中,对所述接口文档的第N行字段执行以下步骤S1011至S1014,其中所述N的取值大于等于1小于等于M,所述M为所述接口文档中包含的字段的总行数。
S1011、读取所述第N行字段的序号以及特征信息。
其中,所述特征信息包括:字段名称、类型以及正则规则。
举例来说,表一所示的接口文档中,其首行字段的序号为1,字段名称为productNo,类型为string,含义为理财产品代码,最小长度为5,最大长度为15,正则规则为[^a-z],是否一定有值为Y。
S1012、以所述第N行字段的特征信息作为字段实体的属性,构造字段实体。
其中,字段实体可以具有多个属性,每个属性由名称和取值构成。
示例性的,由表一所示的接口文档中productNo字段的特征信息构造的字段实体如下所示:
Figure BDA0001477583930000041
S1013、根据所述第N行字段的序号,确定所述字段实体所属的层级。
其中,接口文档中表格的层次与接口对象的层级对应。示例性的,接口文档的主表与接口对象的第一层级对应。接口文档中主表下辖的子表与接口对象的第二层级对应。
举例来说,在表一所示的接口文档中,字段productNo、productNam、interest以及historyPrice组成接口文档的主表,因此这四个字段对应的字段实体属于接口对象中的第一层级。而字段priceDate、price以及flag组成接口文档的子表,因此这三个字段对应的字段实体属于接口对象中的第二层级。
一种可选的实现方式中,可以通过字段的序号来确定该字段在接口对象中属于哪个表格层次,进而确定该字段对应的字段实体所属的层级。
结合表一举例说明,由于字段priceDate的序号为4.1,该序号说明字段priceDate属于主表中第4个字段下辖的子表的第一个字段,因此,字段priceDate对应的字段实体在接口对象中属于第二层级。
S1014、当所述第N行字段的类型为目标类型时,向所述字段实体添加子对象属性。
其中,目标类型包括:list或者object,所述子对象属性包括至少一个与所述字段实体相关的下一层级的字段实体。
结合表一举例说明,字段historyPrice的类型为list,因此字段实体historyPrice具有子对象属性。该子对象属性包括:字段实体priceDate、字段实体price以及字段实体flag。
这样,能够逐个将接口文档的字段生成接口对象的字段实体,最终将整个接口文档转换为计算机可读的接口对象。
示例性的,以表一所示的接口文档生成的接口对象如下所示:
Figure BDA0001477583930000051
Figure BDA0001477583930000061
Figure BDA0001477583930000071
S102、以接口对象中所有字段实体对应的模拟数据,构建模拟报文。
其中,所述模拟数据为根据字段实体的属性生成的随机数据。
可选的,模拟报文的格式为JS对象标记(JavaScript Object Notation,JSON)。
一种可选实现方式中,对所述接口对象的第i个字段实体执行以下步骤S1021至S1022。其中,所述i的取值大于等于1小于等于k,所述k为所述接口对象中包含的字段实体的总个数。
可选的,先对接口对象的第一层级的字段实体执行以下步骤S1021至S1022,从而由上至下的对接口对象中的每个字段实体生成对应的模拟数据。
S1021、当字段实体的类型不属于目标类型时,根据所述字段实体的属性,生成所述字段实体的模拟数据。
可选的,根据字段实体的长度限制(最大长度、最小长度)、类型以及正则规则,生成所述字段实体的模拟数据。
结合表一所示接口文档生成的接口对象进行举例说明,字段实体productNo的类型为string,最小长度5,最大长度15,正则规则[^a-z],即字段实体productNo对应的模拟数据为由5至15个字母组成的字符串,且组成该字符串的字母可以为a-z的26个字母,因此,可以得到字段实体productNo对应的模拟数据为abbbcd,或者其他符合上述规则的字符串。
S1022、当字段实体的类型为目标类型时,遍历所述字段实体的子对象属性中包含的字段实体。
进一步的,当字段实体的类型为list时,为所述字段实体创建至少一个列表子对象,所述列表子对象用于存储所述字段实体的子对象属性中包含的字段实体。然后,遍历所述至少一个列表子对象中的字段实体。这样可以为类型为list的字段实体生成多组数据。
结合表一所示接口文档生成的接口对象进行举例说明,字段实体historyPrice的类型为list,因此需要遍历字段实体historyPrice的子对象属性中包含的字段实体,即需要遍历字段实体priceDate、字段实体price以及字段实体flag。
示例性的,以表一所示的接口文档生成的模拟报文如下所示:
Figure BDA0001477583930000081
Figure BDA0001477583930000091
另外,在所述待测试系统接口的接口文档更新后,重新生成模拟报文。
本申请实施例提供一种生成模拟报文的方法,通过解析待测试系统接口的接口文档,生成接口对象。其中,该接口对象为以计算机可读语言表示的、用于描述接口文档的数据结构,接口对象由字段实体组成,所述字段实体是与接口文档的字段对应的实体,所述字段实体至少包括以下属性:字段名称、类型、正则规则。可以理解的是,上述接口对象对于计算机等设备而言是可读的,因此,计算机等设备可以根据上述接口对象中字段实体的属性生成模拟数据,进而以接口对象中所有字段实体对应的模拟数据,构建模拟报文,从而实现模拟报文的自动生成,提高模拟报文的生成效率和准确率。
为了更清楚的说明上述步骤S101,下面给出步骤S101对应的伪代码。
//通过接口文档生成类型为Map的接口对象,本示例最多嵌套三层
Map generateInterfaceObject(String interfaceName)
{
Map result=new Map();//创建空接口对象
Map paramMap1=new Map();//创建第一层字段结构
Map paramMap2;//用于临时存储第二层字段
Map paramMap3;//用于临时存储第三层字段,本示例最多允许嵌套三层
result.put(interfaceName,paramMap1);//将第一层结构放入接口对象
//将表格文件逐行读入list
List list=listFromTable(fileUrl+"/"+interfaceName+".xls");
//逐行处理list,并构造接口对象
for(Object entity in list)
{
String no=entity.get("序号");//获得字段序号,例如,一层:1二层:2.1三层3.1.1
String[]catalog=no.split("\\.");//拆分序号,判断字段在接口文档中的表格层次
switch(catalog.length){
case 1://如果是第一层字段
paramMap2=new Map();//创建用于临时存储第二层字段的Map
//将第paramMap1作为父对象,paramMap2作为子对象解析
process(paramMap1,paramMap2,entity);
break;
case 2://如果是第二层字段
paramMap3=new Map();//创建用于临时存储第三层字段的Map
//将第paramMap2作为父对象,paramMap3作为子对象解析
process(paramMap2,paramMap3,entity);
break;
case 3://如果是第三层字段
//将第paramMap3作为父对象解析
process(paramMap3,null,entity);
break;
}}
eturn result;
}
//具体处理每一项字段,构造接口对象
void process(Map parentMap,Map childMap,Object entity)
{
//获取字段的特征信息
String name=entity.get("name");
String type=entity.get("type");
String description=entity.get("description");
String pattern=entity.get("pattern");
……
//构造字段实体,并将字段的特征信息作为字段实体的属性填入
Map item=new Map();
item.put("name",name);
item.put("type",type);
item.put("description",description);
item.put("pattern",pattern);
……
//如果字段的类型为object或list,则表示该字段有子对象,为该字段对应的字段实体加入子对象属性
if("list".equals(type)||"object".equals(type))
{
item.put("params",childMap);
}
//将字段实体加入父对象
parentMap.put(name,item);
}
为了更清楚的说明上述步骤S102,下面给出步骤S102对应的伪代码。
Figure BDA0001477583930000121
Figure BDA0001477583930000131
Figure BDA0001477583930000141
值得说明的是,上述伪代码中的报文对象rm是为描述模拟报文而建立起的Map、list等Java对象。报文对象rm可以通过预设程序转换为模拟报文。
如图2所示,本申请提供一种生成模拟报文的装置,用于执行前述生成模拟报文的方法。所述装置包括:
解析模块11,用于解析待测试系统接口的接口文档,生成接口对象;其中,所述接口对象为以计算机可读语言表示的、用于描述接口文档的数据结构,所述接口对象包括字段实体,所述字段实体是与接口文档的字段对应的实体,所述字段实体至少包括以下属性:字段名称、类型、正则规则。
构建模块12,用于以接口对象中所有字段实体对应的模拟数据,构建模拟报文;其中,所述模拟数据为根据字段实体的属性生成的随机数据。
一种可选的实现方式中,所述解析模块11,具体用于对所述接口文档的第N行字段执行以下步骤S1011至S1014,其中所述N的取值大于等于1小于等于M,所述M为所述接口文档中包含的字段的总行数:
S1011、读取所述第N行字段的序号以及特征信息,所述特征信息包括:字段名称、类型以及正则规则。
S1012、以所述第N行字段的特征信息作为字段实体的属性,构造字段实体。
S1013、根据所述第N行字段的序号,确定所述字段实体所属的层级。
S1014、当所述第N行字段的类型为目标类型时,向所述字段实体添加子对象属性;其中,目标类型包括:list或者object,所述子对象属性包括至少一个与所述字段实体相关的下一层级的字段实体。
一种可选的实现方式中,所述构建模块12,具体用于对所述接口对象的第i个字段实体执行以下步骤S1021至S1022,其中,所述i的取值大于等于1小于等于k,所述k为所述接口对象中包含的字段实体的总个数。
S1021、当字段实体的类型不属于目标类型时,根据所述字段实体的属性,生成所述字段实体的模拟数据。
S1022、当字段实体的类型为目标类型时,遍历所述字段实体的子对象属性中包含的字段实体。
一种可选的实现方式中,所述构建模块12,具体用于当字段实体的类型为list时,为所述字段实体创建至少一个列表子对象,所述列表子对象用于存储所述字段实体的子对象属性中包含的字段实体;遍历所述至少一个列表子对象中的字段实体。
一种可选的实现方式中,所述构建模块12,具体用于在所述待测试系统接口的接口文档更新后,重新生成模拟报文。
本申请实施例提供一种生成模拟报文的装置,通过解析待测试系统接口的接口文档,生成接口对象。其中,该接口对象为以计算机可读语言表示的、用于描述接口文档的数据结构,接口对象由字段实体组成,所述字段实体是与接口文档的字段对应的实体,所述字段实体至少包括以下属性:字段名称、类型、正则规则。可以理解的是,上述接口对象对于计算机等设备而言是可读的,因此,计算机等设备可以根据上述接口对象中字段实体的属性生成模拟数据,进而以接口对象中所有字段实体对应的模拟数据,构建模拟报文,从而实现模拟报文的自动生成,提高模拟报文的生成效率和准确率。
在采用集成的单元的情况下,图3示出了上述实施例中所涉及的设备的一种可能的结构示意图。所述设备包括:处理单元21。所述处理单元21用于执行上述解析模块11、构建模块12执行的步骤,和/或用于执行本文所描述的技术的其它过程。所述设备还可以包括通信单元22、存储单元23和总线24。其中,通信单元22用于支持设备与其他设备的通信。存储单元23用于存储设备的程序代码和数据。
其中,上述处理单元21可以是设备中的处理器或控制器,该处理器或控制器可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。该处理器或控制器可以是中央处理器,通用处理器,数字信号处理器,专用集成电路,现场可编程门阵列或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。所述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合等。
通信单元22可以是设备中的收发器、收发电路或系统接口等。
存储单元23可以是设备中的存储器等,该存储器可以包括易失性存储器,例如随机存取存储器;该存储器也可以包括非易失性存储器,例如只读存储器,快闪存储器,硬盘或固态硬盘;该存储器还可以包括上述种类的存储器的组合。
总线24可以是扩展工业标准结构(Extended Industry Standard Architecture,EISA)总线等。总线24可以分为地址总线、数据总线、控制总线等。为便于表示,图3中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序加载到计算机上被计算机执行时,使计算机执行上述生成模拟报文的方法。
其中,计算机可读存储介质,例如可以是但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(Random Access Memory,RAM)、只读存储器(Read-Only Memory,ROM)、可擦式可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)、光纤、便携式紧凑磁盘只读存储器(Compact Disc Read-Only Memory,CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请实施例中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
结合本申请公开内容所描述的方法或者算法的步骤可以由硬件的方式来实现,也可以是由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于RAM、闪存、ROM、可擦除可编程只读存储器(Erasable programmableROM,EPROM)、电可擦可编程只读存储器(electrically EPROM,EEPROM)、寄存器、硬盘、移动硬盘、只读光盘(CD-ROM)或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于专用集成电路(Application Specific Integrated Circuit,ASIC)中。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:快闪存储器、移动硬盘、只读存储器、随机存取存储器、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应该以权利要求的保护范围为准。

Claims (8)

1.一种生成模拟报文的方法,其特征在于,所述方法包括:
解析待测试系统接口的接口文档,生成接口对象;其中,所述接口对象为以计算机可读语言表示的、用于描述接口文档的数据结构,所述接口对象包括字段实体,所述字段实体是与接口文档的字段对应的实体,所述字段实体至少包括以下属性:字段名称、类型和正则规则;
以接口对象中所有字段实体对应的模拟数据,构建模拟报文;其中,所述模拟数据为根据字段实体的属性生成的随机数据;
所述解析待测试系统接口的接口文档,生成接口对象,具体包括:
对所述接口文档的第N行字段执行以下步骤S1011至S1014,其中所述N的取值大于等于1小于等于M,所述M为所述接口文档中包含的字段的总行数;
S1011、读取所述第N行字段的序号以及特征信息,所述特征信息包括:字段名称、类型以及正则规则;
S1012、以所述第N行字段的特征信息作为字段实体的属性,构造字段实体;
S1013、根据所述第N行字段的序号,确定所述字段实体所属的层级;
S1014、当所述第N行字段的类型为目标类型时,向所述字段实体添加子对象属性;其中,目标类型包括:列表list或者对象object,所述子对象属性包括至少一个与所述字段实体相关的下一层级的字段实体。
2.根据权利要求1所述的方法,其特征在于,所述以接口对象中所有字段实体对应的模拟数据,构建模拟报文,具体包括:
对所述接口对象的第i个字段实体执行以下步骤S1021至S1022,其中,所述i的取值大于等于1小于等于k,所述k为所述接口对象中包含的字段实体的总个数;
S1021、当字段实体的类型不属于目标类型时,根据所述字段实体的属性,生成所述字段实体的模拟数据;
S1022、当字段实体的类型为目标类型时,遍历所述字段实体的子对象属性中包含的字段实体。
3.根据权利要求2所述的方法,其特征在于,所述当字段实体的类型为目标类型时,遍历所述字段实体的子对象属性中包含的字段实体,具体包括:
当字段实体的类型为list时,为所述字段实体创建至少一个列表子对象,所述列表子对象用于存储所述字段实体的子对象属性中包含的字段实体;
遍历所述至少一个列表子对象中的字段实体。
4.根据权利要求1至3任一项所述的方法,其特征在于,所述方法还包括:
在所述待测试系统接口的接口文档更新后,重新生成模拟报文。
5.一种生成模拟报文的装置,其特征在于,所述装置包括:
解析模块,用于解析待测试系统接口的接口文档,生成接口对象;其中,所述接口对象为以计算机可读语言表示的、用于描述接口文档的数据结构,所述接口对象包括字段实体,所述字段实体是与接口文档的字段对应的实体,所述字段实体至少包括以下属性:字段名称、类型和正则规则;
构建模块,用于以接口对象中所有字段实体对应的模拟数据,构建模拟报文;其中,所述模拟数据为根据字段实体的属性生成的随机数据;
所述解析模块,具体用于对所述接口文档的第N行字段执行以下步骤S1011至S1014,其中所述N的取值大于等于1小于等于M,所述M为所述接口文档中包含的字段的总行数;
S1011、读取所述第N行字段的序号以及特征信息,所述特征信息包括:字段名称、类型以及正则规则;
S1012、以所述第N行字段的特征信息作为字段实体的属性,构造字段实体;
S1013、根据所述第N行字段的序号,确定所述字段实体所属的层级;
S1014、当所述第N行字段的类型为目标类型时,向所述字段实体添加子对象属性;其中,目标类型包括:列表list或者对象object,所述子对象属性包括至少一个与所述字段实体相关的下一层级的字段实体。
6.根据权利要求5所述的装置,其特征在于,
所述构建模块,具体用于对所述接口对象的第i个字段实体执行以下步骤S1021至S1022,其中,所述i的取值大于等于1小于等于k,所述k为所述接口对象中包含的字段实体的总个数;
S1021、当字段实体的类型不属于目标类型时,根据所述字段实体的属性,生成所述字段实体的模拟数据;
S1022、当字段实体的类型为目标类型时,遍历所述字段实体的子对象属性中包含的字段实体。
7.根据权利要求6所述的装置,其特征在于,所述构建模块,具体用于当字段实体的类型为list时,为所述字段实体创建至少一个列表子对象,所述列表子对象用于存储所述字段实体的子对象属性中包含的字段实体;遍历所述至少一个列表子对象中的字段实体。
8.根据权利要求5至7任一项所述的装置,其特征在于,所述构建模块,具体用于在所述待测试系统接口的接口文档更新后,重新生成模拟报文。
CN201711172715.5A 2017-11-22 2017-11-22 生成模拟报文的方法及装置 Active CN107797933B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711172715.5A CN107797933B (zh) 2017-11-22 2017-11-22 生成模拟报文的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711172715.5A CN107797933B (zh) 2017-11-22 2017-11-22 生成模拟报文的方法及装置

Publications (2)

Publication Number Publication Date
CN107797933A CN107797933A (zh) 2018-03-13
CN107797933B true CN107797933B (zh) 2020-06-12

Family

ID=61536234

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711172715.5A Active CN107797933B (zh) 2017-11-22 2017-11-22 生成模拟报文的方法及装置

Country Status (1)

Country Link
CN (1) CN107797933B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109086046A (zh) * 2018-08-02 2018-12-25 中国建设银行股份有限公司 一种基于接口规范文档的前端代码自动生成方法及系统
CN112506769A (zh) * 2020-12-04 2021-03-16 数字广东网络建设有限公司 基于接口文档的请求体生成方法、装置和计算机设备
CN113157584A (zh) * 2021-04-28 2021-07-23 杭州孝道科技有限公司 一种基于HttpClient的模糊测试方法
CN113746840A (zh) * 2021-09-03 2021-12-03 中国银行股份有限公司 Json格式报文生成方法及装置
CN114760236B (zh) * 2022-04-08 2023-11-14 中国银行股份有限公司 接口检查方法、装置、存储介质和设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1407756A (zh) * 2001-09-10 2003-04-02 深圳市中兴通讯股份有限公司上海第二研究所 接口测试方法
CN101222365A (zh) * 2008-01-23 2008-07-16 中兴通讯股份有限公司 一种类c结构接口报文处理方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10771448B2 (en) * 2012-08-10 2020-09-08 Cryptography Research, Inc. Secure feature and key management in integrated circuits

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1407756A (zh) * 2001-09-10 2003-04-02 深圳市中兴通讯股份有限公司上海第二研究所 接口测试方法
CN101222365A (zh) * 2008-01-23 2008-07-16 中兴通讯股份有限公司 一种类c结构接口报文处理方法

Also Published As

Publication number Publication date
CN107797933A (zh) 2018-03-13

Similar Documents

Publication Publication Date Title
CN107797933B (zh) 生成模拟报文的方法及装置
US11036491B1 (en) Identifying and resolving firmware component dependencies
US20180129633A1 (en) Copying text format pattern
CN109634587B (zh) 一种生成入库脚本以及数据入库的方法和设备
US10169085B2 (en) Distributed computing of a task utilizing a copy of an original file stored on a recovery site and based on file modification times
US10031936B2 (en) Database table data fabrication
CN111352935A (zh) 一种块链式账本中的索引创建方法、装置及设备
CN107704604A (zh) 一种消息持久化方法、服务器和计算机可读存储介质
KR20220125198A (ko) 데이터의 추가 기록 방법, 장치, 전자 기기, 저장 매체 및 컴퓨터 프로그램매체
CN108241676A (zh) 实现数据同步的方法及设备
KR102227912B1 (ko) 최적화된 데이터 콘덴서 및 방법
CN114546432A (zh) 一种多应用的部署方法、装置、设备及可读存储介质
US9335987B2 (en) Data object with common statement series
CN110795920B (zh) 一种文档生成方法及设备
CN110019169A (zh) 一种数据处理的方法及装置
US10509659B1 (en) Input processing logic to produce outputs for downstream systems using configurations
CN113703753B (zh) 用于产品开发的方法、装置和产品开发系统
CN114513401A (zh) 私有云的自动化运维修复方法、设备及计算机可读介质
US9508062B2 (en) Problem management record profiling
US11106864B2 (en) Comment-based article augmentation
CN114721932A (zh) 一种数据处理方法、装置、设备及存储介质
US20150178382A1 (en) Data object with common sequential statements
TWI574169B (zh) 解決方案搜尋系統之操作方法及解決方案搜尋系統
CN110019987B (zh) 一种基于决策树的日志匹配方法和装置
CN111222146B (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