CN110046086B - 用于测试的期望数据生成方法及装置和电子设备 - Google Patents

用于测试的期望数据生成方法及装置和电子设备 Download PDF

Info

Publication number
CN110046086B
CN110046086B CN201811561029.1A CN201811561029A CN110046086B CN 110046086 B CN110046086 B CN 110046086B CN 201811561029 A CN201811561029 A CN 201811561029A CN 110046086 B CN110046086 B CN 110046086B
Authority
CN
China
Prior art keywords
data
message
log
result
test case
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
CN201811561029.1A
Other languages
English (en)
Other versions
CN110046086A (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.)
Advanced New Technologies Co Ltd
Advantageous New Technologies Co Ltd
Original Assignee
Advanced New Technologies 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 Advanced New Technologies Co Ltd filed Critical Advanced New Technologies Co Ltd
Priority to CN201811561029.1A priority Critical patent/CN110046086B/zh
Publication of CN110046086A publication Critical patent/CN110046086A/zh
Application granted granted Critical
Publication of CN110046086B publication Critical patent/CN110046086B/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

本说明书实施例提供一种用于测试的期望数据生成方法及装置和电子设备,所述方法包括:获取测试用例中接口运行的结果数据和/或发送的消息数据,以及测试用例相关的数据库变更的日志数据;将所述结果数据和/或消息数据转换为结果对象和/或消息对象;解析所述日志数据得到接口调用数据库的SQL日志数据,并将所述SQL日志数据转换为日志对象;根据所述结果对象和/或消息对象,以及日志对象生成所述测试用例的期望数据。

Description

用于测试的期望数据生成方法及装置和电子设备
技术领域
本说明书实施例涉及计算机技术领域,尤其涉及一种用于测试的期望数据生成方法及装置和电子设备。
背景技术
在计算机程序开发及维护过程中,可以通过软件测试及时发现计算机程序中存在的BUG(漏洞)。
通常,测试结果是否符合期望数据是一项非常重要的指标,甚至往往决定了软件是否可以上线。一般的,当测试的结果数据符合期望数据时,就证明测试通过。然而,期望数据依然需要人工手工填写,并且期望数据的有效性也主要依靠测试人员的经验。这就大大制约了测试的效率。
发明内容
本说明书实施例提供的一种用于测试的期望数据生成方法及装置和电子设备:
根据本说明书实施例的第一方面,提供一种用于测试的期望数据生成方法,所述方法包括:
获取测试用例中接口运行的结果数据和/或发送的消息数据,以及测试用例相关的数据库变更的日志数据;
将所述结果数据和/或消息数据转换为结果对象和/或消息对象;
解析所述日志数据得到接口调用数据库的SQL日志数据,并将所述SQL日志数据转换为日志对象;
根据所述结果对象和/或消息对象,以及日志对象生成所述测试用例的期望数据。
可选的,所述获取测试用例执行的结果数据和/或测试接口发送的消息数据,具体包括:
获取测试框架的数据总线抓取的测试用例中接口运行的结果数据;
获取测试框架中消息拦截器拦截的测试用例中接口运行后发送的消息数据。
可选的,所述测试用例相关的数据库变更的日志数据,具体包括:
通过日志打印配置,收集测试用例的接口调用数据库的全量SQL日志。
可选的,将所述结果数据和/或消息数据转换为结果对象和/或消息对象,具体包括:
从所述结果数据中筛选出符合设定筛选规则的结果数据作为结果对象;和/或,
对所述消息数据进行去重,并从所述消息数据中筛选出符合设定筛选规则的消息数据作为消息对象。
可选的,所述将所述SQL日志数据转换为日志对象,具体包括以下至少一种:
解析所述SQL日志数据获取数据表表名;
解析所述SQL日志数据获取影响表数据;
解析所述SQL日志进行字段标记。
可选的,所述解析所述SQL日志数据获取数据表表名,具体包括:
解析所述SQL日志数据中所有的数据表表名
将解析出的数据表表名与设定的配置文件中配置的应用表名进行匹配,获取属于应用表名中的数据表表名。
可选的,所述解析所述SQL日志数据获取影响表数据,具体包括:
解析SQL日志数据中所有的insert、update语句;
针对insert语句获取SQL日志数据中所有表字段,并通过反射机制构造对应的实例值;
针对update语句获取SQL日志数据中所有表字段,从中筛选出涉及update的字段,以及从数据库中查询所述涉及update的字段的全量字段数据。
可选的,所述解析所述SQL日志进行字段标记,具体包括:
解析SQL日志数据中所有的insert、update语句;
针对insert语句,将包含“ID”的字段作为条件字段,将其余字段作为为校验字段;
针对update语句,将关键字“where”后涉及的字段作为条件字段,将其余字段作为校验字段;
所述校验字段和条件字段用于期望数据校验的逻辑判断标识。
可选的,所述根据所述结果对象和/或消息对象,以及日志对象生成所述测试用例的期望数据,具体包括:
根据日志对象确定测试用例的检查点;
根据结果对象和/或消息对象确定每个检查点的期望数据。
根据本说明书实施例的第二方面,提供一种用于测试的期望数据生成装置,所述装置包括:
数据获取单元,获取测试用例中接口运行的结果数据和/或发送的消息数据,以及测试用例相关的数据库变更的日志数据;
数据处理单元,将所述结果数据和/或消息数据转换为结果对象和/或消息对象;以及,解析所述日志数据得到接口调用数据库的SQL日志数据,并将所述SQL日志数据转换为日志对象;
数据生成单元,根据所述结果对象和/或消息对象,以及日志对象生成所述测试用例的期望数据。
可选的,所述数据获取单元中获取测试用例中接口运行的结果数据和/或发送的消息数据,具体包括:
获取测试框架的数据总线抓取的测试用例中接口运行的结果数据;
获取测试框架中消息拦截器拦截的测试用例中接口运行后发送的消息数据。
可选的,所述数据获取单元中测试用例相关的数据库变更的日志数据,具体包括:
通过日志打印配置,收集测试用例的接口调用数据库的全量SQL日志。
可选的,所述数据处理单元中将所述结果数据和/或消息数据转换为结果对象和/或消息对象,具体包括:
从所述结果数据中筛选出符合设定筛选规则的结果数据作为结果对象;和/或,
对所述消息数据进行去重,并从所述消息数据中筛选出符合设定筛选规则的消息数据作为消息对象。
可选的,所述数据处理单元中将所述SQL日志数据转换为日志对象,具体包括以下至少一种:
解析所述SQL日志数据获取数据表表名;
解析所述SQL日志数据获取影响表数据;
解析所述SQL日志进行字段标记。
可选的,所述解析所述SQL日志数据获取数据表表名,具体包括:
解析所述SQL日志数据中所有的数据表表名
将解析出的数据表表名与设定的配置文件中配置的应用表名进行匹配,获取属于应用表名中的数据表表名。
可选的,所述解析所述SQL日志数据获取影响表数据,具体包括:
解析SQL日志数据中所有的insert、update语句;
针对insert语句获取SQL日志数据中所有表字段,并通过反射机制构造对应的实例值;
针对update语句获取SQL日志数据中所有表字段,从中筛选出涉及update的字段,以及从数据库中查询所述涉及update的字段的全量字段数据。
可选的,所述解析所述SQL日志进行字段标记,具体包括:
解析SQL日志数据中所有的insert、update语句;
针对insert语句,将包含“ID”的字段作为条件字段,将其余字段作为为校验字段;
针对update语句,将关键字“where”后涉及的字段作为条件字段,将其余字段作为校验字段;
所述校验字段和条件字段用于期望数据校验的逻辑判断标识。
可选的,所述数据生成单元,具体包括:
第一确定子单元,根据日志对象确定测试用例的检查点;
第二确定子单元,根据结果对象和/或消息对象确定每个检查点的期望数据。
根据本说明书实施例的第三方面,提供一种电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为上述任一项用于测试的期望数据生成方法。
本说明书实施例,提供了一种用于测试的期望数据生成方案,可以自动生成测试用例的期望数据,大大降低了人为填写期望数据的时长;并且也无需主要依赖人员的经验,最多由人员检查生成的期望数据即可。大大提升了整体测试的效率。
附图说明
图1是本说明书一实施例提供的用于测试的期望数据生成方法的流程图;
图2是本说明书一实施例提供的适用于期望数据生成的测试框架示意图;
图3是本说明书一实施例提供的用于测试的期望数据生成装置的硬件结构图;
图4是本说明书一实施例提供的用于测试的期望数据生成装置的模块示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书的一些方面相一致的装置和方法的例子。
在本说明书使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书。在本说明书和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
通常测试用例可以由输入数据、测试逻辑、期望数据三部分构成,输入数据可以是指某个业务执行时提供的基础数据;测试逻辑可以是指某个业务执行所依赖的业务逻辑代码;期望数据可以是指人为设定的期望得到的结果数据。
举例说明,测试某个计算器个位数加法是否正常,编写的该加法器的测试用例可以包括输入数据a=1、a+1的加法逻辑、期望数据2;如果a+1的执行结果等于2,即执行结果符合期望则说明该计算器个位数加法正常,如果a+1不等于2,即执行结果不符合期望则说明该计算器个位数加法存在异常。
在相关技术中,对于期望数据,往往需要人工进行分析,测试用例编写者需要熟悉待测试接口的内部逻辑,需要清楚了解异常情况返回的具体错误码、影响哪些数据库表数据、是否发生消息等等各种状况,只有知道了这些才可能构造测试用例的检查点。即使熟悉接口方法内部逻辑,也知道需要编写的检查点,但检查点具体值填写是一件非常麻烦的事情,特别是结果DB数据校验涉及N张表N条数据,需花费大量时间去构造期望数据。
依然以一个加法器为例,假设算法为a+b+c;测试人员除了需要编写最终输出结果的期望数据之后,还需要设置检查点(即中间步骤的期望数据)。举例说明,a+b设置检查点,(a+b)+c也需要设置检查点。这是由于,一个算法中间存在为多个计算节点,可能最终计算结果正确,但并不代表中间计算节点也正确,例如1+2+3,可能1+2=2,然后(2)+3=6,可见1+2+3的最终结果是正确的,但中间计算节点1+2,以及(1+2)之后+3的结果均是错误的,因此,需要对每个检查点都设置期望数据,即1+2要设置期望数据,(1+2)之后再+3也要设置期望数据。
综上,由于用于测试的期望数据依然依赖于人工经验,并且需要手工填写,所以造成了测试效率较低的问题。
本说明书,提供的期望数据生成方案,可以自动生成测试用例的期望数据,大大降低了人为填写期望数据的时长;并且也无需主要依赖人员的经验,最多由人员检查生成的期望数据即可。大大提升了整体测试的效率。
请参考图1所示本说明书提供的一种用于测试的期望数据生成方法,该方法可以应用于测试设备(例如测试客户端、服务端等),所述方法可以包括以下步骤:
步骤110:获取测试用例执行的结果数据和/或测试接口发送的消息数据,以及测试用例相关的数据库变更的日志数据。
步骤120:将所述结果数据和/或消息数据转换为结果对象和/或消息对象;
步骤130:解析所述日志数据,获取数据表表名、影响数据表数据、字段标记;
步骤140:根据所述结果对象、消息对象和表名、影响表数据、字段标记生成所述测试用例的期望数据。
本说明书中所述测试可以在测试框架内完成,如图2所示的本说明书提供的适用于期望数据生成的测试框架示意图。可知,该测试框架可以包括目标数据收集模块、目标数据处理模块、目标数据存储模块等(本说明书中的目标数据可以是指期望数据)。
其中,目标数据收集模块DataCollectModel,主要功能可以包括:
1.消息拦截器
测试框架中提供有消息拦截器,测试人员可以预先配置针对测试用例中接口的消息拦截器;该消息拦截器可以拦截该接口所有发送的消息数据。
2.结果收集器
测试框架中提供结果收集器,测试人员可以预先配置针对测试用例中接口的结果收集器;该结果收集器可以收集该接口运行后的结果数据。具体地,所述结果收集器可以是基于测试框架的数据总线完成的结果数据收集。通常,测试框架的数据总线可以抓取测试用例中接口运行后的结果数据。
值得一提的是,所述结果数据包括正常返回的结果和异常返回的结果。
3.日志收集器
测试框架提供有日志收集器,所述日志收集器可以收集测试用例中接口调用数据库DB的全量SQL日志。
测试人员可以在测试框架控制台修改日志打印配置,以使测试框架自动收集测试用例的接口调用数据库的全量SQL日志;并可以通过DB变更详细日志打印配置,打印出接口操作DB的全量详细SQL日志。
在获取到测试用例中接口运行的结果数据、发送的消息数据,以及测试用例相关的数据库变更的日志数据之后,模块数据收集模块可以将这些数据提供给目标数据处理模块DataProModel,以使目标数据处理模块对这些数据进行处理,以得到用于生成期望数据的基础数据,即上述将所述结果数据和/或消息数据转换为结果对象和/或消息对象。
以下介绍目标数据处理模块的处理过程:
如图2所示,目标数据处理模型可以分为结果处理模型、消息处理模型和DB处理模型。
其中,结果处理模型用于处理结果数据。具体地,前述将所述结果数据转换为结果对象,可以包括:
从所述结果数据中筛选出符合设定筛选规则的结果数据作为结果对象。
由于结果收集器收集的是接口运行后所有的结果数据,这些结果数据中可能存在一些无意义结果(例如关于状态的结果),真正可以用于期望数据的是其中的一部分。因此,测试人员可以预先配置筛选规则,结果处理模型可以基于该筛选规则自动从输入的结果数据中筛选出符合筛选规则的结果数据作为结果对象。该筛选规则可以由测试人员基于业务需要随时修改。
其中,消息处理模型用于处理消息数据。具体地,前述将所述消息数据转换为消息对象,可以包括:
对所述消息数据进行去重,并从所述消息数据中筛选出符合设定筛选规则的消息数据作为消息对象。
类似的,由于消息拦截器拦截的是接口运行过程中所有发送的消息数据,一般都会存在一些无意义消息,真正可以用于期望数据的是其中的一部分。因此,测试人员可以预先配置筛选规则,消息处理模型可以基于该筛选规则自动从输入的消息数据中筛选出符合筛选规则的消息数据作为消息对象。该筛选规则可以由测试人员基于业务需要随时修改。其中,消息处理模型可以先对输入的消息数据进行去重,相同消息保留一个。
其中,DB处理模型用于处理数据库表变更的SQL日志数据。如前所述,构建期望数据还需要编写测试点,结果DB数据校验涉及N张表N条数据,需花费大量时间去构造期望数据。本说明书中通过收集DB的全量SQL日志,进而分析测试点。具体如下所示:
a.所述解析所述日志数据,获取表名,具体包括:
解析日志数据中所有的数据表表名;
将解析出的数据表表名与设定的配置文件中配置的应用表名进行匹配,获取属于应用表名中的数据表表名。
该实施例中,DB处理模型可以解析SQL日志中全部的数据表表名,然后再解析测试框架中配置文件内配置的应用表名;基于应用表名与数据表表名进行匹配过滤,剔除非应用表名的数据表表名。
与前述结果数据、消息数据类似的,SQL日志中涉及到的所有数据表中同样仅一部分与期望数据相关,因此同样需要进行筛选。因此,测试人员可以预先在配置文件内配置应用表名,所述应用表名即可以应用到期望数据的数据表表名,之后DB处理模块可以基于该配置文件自动从解析出的数据表表名中筛选出与应用表名匹配的数据表表名。
b.所述解析所述日志数据,获取影响数据表数据,具体包括:
解析日志数据中所有的insert、update语句;
针对insert语句解析SQL日志获取所有表字段,并通过反射机制构造对应的实例值;
针对update语句解析SQL日志获取所有表字段,从中筛选出涉及update的字段;
从数据库中查询所述涉及update的字段的全量字段数据。
针对insert、update语句分别获取影响的表数据,Insert语句直接解析SQL日志获取所有的表字段,通过反射机制构造对应的实例值即可;Update语句按照Insert语句方式解析,解析出的字段是update涉及的字段,再次查询数据库获取全量最新数据,查询条件为update语句关键字“where”后的条件字段。
c.所述解析所述日志数据字段标记,具体包括:
针对insert语句,将包含“ID”的字段作为条件字段,将其余字段作为为校验字段;
针对update语句,将关键字“where”后涉及的字段作为条件字段,将其余字段作为校验字段;
所述校验字段和条件字段用于期望数据校验的逻辑判断标识。
针对Insert语句,默认所有的字段都需要作为校验字段,标记位“Y”,但如果表字段中包含“ID”字段,则会作为条件字段,标记位“C”;针对Update语句,关键字“where”后涉及的字段作为条件字段,标记“C”,表其余字段都作为校验字段,标记“Y”。其中Y和C作为期望数据校验的逻辑判断标示使用。
在目标数据处理模块处理完成后,可以将结果对象、消息对象和数据表表名、影响数据表数据、字段标记等提供给目标数据存储模块DataSaveModel。
如图2所示,测试框架中目标数据存储模块,可以包括结果目标数据、消息目标数据、DB目标数据,分别用于存储结果对象、消息对象、DB对象。
目标数据存储模块可以暂时将结果对象、消息对象、DB对象转换为设定格式的文件存储,用作后续序列化加载校验使用。
步骤130:根据所述结果对象和/或消息对象,以及日志对象生成所述测试用例的期望数据。
在确定了结果对象、消息对象、日志对象之后,测试框架可以利用“预跑反填”功能,自动生成下一次所述测试用例的期望数据。具体地:
根据日志对象确定测试用例的检查点;
根据结果对象和/或消息对象确定每个检查点的期望数据。
如前所述,测试人员编写期望数据前,还需要编写的检查点,但检查点具体值填写是一件非常麻烦的事情,特别是结果DB数据校验涉及N张表N条数据,需花费大量时间去构造。
本说明书中,通过解析SQL日志数据,可以确定与期望数据相关的数据表表名,以及影响数据表的数据,还有标记的字段。
如前所述,insert、update语句是针对数据表进行新增和修改的SQL语句,说明这些语句相关的计算节点需要设置检查点。
在确定了检测点之后,还可以根据影响表数据,以及结果对象、消息对象确定每个检查点的期望数据,这里可以根据配置文件中设定的计算规则计算得到。该计算规则可以人为设定,例如可以获取每个检查点对应SQL语句执行的表数据,还可以结合对应的结果对象和/或消息对象计算一个均值。
在一实施例中,目标数据存储模型中将数据以设定格式的文件进行临时存储之后,还可以在测试框架的展示页面展示期望数据,以及所述期望数据相关的结果对象、消息对象、DB对象等信息。由测试人员检查无误后,正式以设定格式的文件存储。
本说明书提供了一种用于测试的期望数据生成方案,可以自动生成测试用例的期望数据,大大降低了人为填写期望数据的时长;并且也无需主要依赖人员的经验,最多由人员检查生成的期望数据即可。大大提升了整体测试的效率。
与前述用于测试的期望数据生成方法实施例相对应,本说明书还提供了用于测试的期望数据生成装置的实施例。所述装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在设备的处理器将非易失性存储器中对应的计算机业务程序指令读取到内存中运行形成的。从硬件层面而言,如图3所示,为本说明书用于测试的期望数据生成装置所在设备的一种硬件结构图,除了图3所示的处理器、网络接口、内存以及非易失性存储器之外,实施例中装置所在的设备通常根据用于测试的期望数据生成实际功能,还可以包括其他硬件,对此不再赘述。
请参见图4,为本说明书一实施例提供的用于测试的期望数据生成装置的模块图,所述装置对应了图1所示实施例,所述装置包括:
数据获取单元210,获取测试用例中接口运行的结果数据和/或发送的消息数据,以及测试用例相关的数据库变更的日志数据;
数据处理单元220,将所述结果数据和/或消息数据转换为结果对象和/或消息对象;以及,解析所述日志数据得到接口调用数据库的SQL日志数据,并将所述SQL日志数据转换为日志对象;
数据生成单元230,根据所述结果对象和/或消息对象,以及日志对象生成所述测试用例的期望数据。
可选的,所述数据获取单元210中获取测试用例中接口运行的结果数据和/或发送的消息数据,具体包括:
获取测试框架的数据总线抓取的测试用例中接口运行的结果数据;
获取测试框架中消息拦截器拦截的测试用例中接口运行后发送的消息数据。
可选的,所述数据获取单元中测试用例相关的数据库变更的日志数据,具体包括:
通过日志打印配置,收集测试用例的接口调用数据库的全量SQL日志。
可选的,所述数据处理单元210中将所述结果数据和/或消息数据转换为结果对象和/或消息对象,具体包括:
从所述结果数据中筛选出符合设定筛选规则的结果数据作为结果对象;和/或,
对所述消息数据进行去重,并从所述消息数据中筛选出符合设定筛选规则的消息数据作为消息对象。
可选的,所述数据处理单元220中将所述SQL日志数据转换为日志对象,具体包括以下至少一种:
解析所述SQL日志数据获取数据表表名;
解析所述SQL日志数据获取影响表数据;
解析所述SQL日志进行字段标记。
可选的,所述解析所述SQL日志数据获取数据表表名,具体包括:
解析所述SQL日志数据中所有的数据表表名
将解析出的数据表表名与设定的配置文件中配置的应用表名进行匹配,获取属于应用表名中的数据表表名。
可选的,所述解析所述SQL日志数据获取影响表数据,具体包括:
解析SQL日志数据中所有的insert、update语句;
针对insert语句获取SQL日志数据中所有表字段,并通过反射机制构造对应的实例值;
针对update语句获取SQL日志数据中所有表字段,从中筛选出涉及update的字段,以及从数据库中查询所述涉及update的字段的全量字段数据。
可选的,所述解析所述SQL日志进行字段标记,具体包括:
解析SQL日志数据中所有的insert、update语句;
针对insert语句,将包含“ID”的字段作为条件字段,将其余字段作为为校验字段;
针对update语句,将关键字“where”后涉及的字段作为条件字段,将其余字段作为校验字段;
所述校验字段和条件字段用于期望数据校验的逻辑判断标识。
可选的,所述数据生成单元230,具体包括:
第一确定子单元,根据日志对象确定测试用例的检查点;
第二确定子单元,根据结果对象和/或消息对象确定每个检查点的期望数据。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本说明书方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上图4描述了用于测试的期望数据生成装置的内部功能模块和结构示意,其实质上的执行主体可以为一种电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
获取测试用例中接口运行的结果数据和/或发送的消息数据,以及测试用例相关的数据库变更的日志数据;
将所述结果数据和/或消息数据转换为结果对象和/或消息对象;
解析所述日志数据得到接口调用数据库的SQL日志数据,并将所述SQL日志数据转换为日志对象;
根据所述结果对象和/或消息对象,以及日志对象生成所述测试用例的期望数据。
可选的,所述获取测试用例执行的结果数据和/或测试接口发送的消息数据,具体包括:
获取测试框架的数据总线抓取的测试用例中接口运行的结果数据;
获取测试框架中消息拦截器拦截的测试用例中接口运行后发送的消息数据。
可选的,所述测试用例相关的数据库变更的日志数据,具体包括:
通过日志打印配置,收集测试用例的接口调用数据库的全量SQL日志。
可选的,将所述结果数据和/或消息数据转换为结果对象和/或消息对象,具体包括:
从所述结果数据中筛选出符合设定筛选规则的结果数据作为结果对象;和/或,
对所述消息数据进行去重,并从所述消息数据中筛选出符合设定筛选规则的消息数据作为消息对象。
可选的,所述将所述SQL日志数据转换为日志对象,具体包括以下至少一种:
解析所述SQL日志数据获取数据表表名;
解析所述SQL日志数据获取影响表数据;
解析所述SQL日志进行字段标记。
可选的,所述解析所述SQL日志数据获取数据表表名,具体包括:
解析所述SQL日志数据中所有的数据表表名
将解析出的数据表表名与设定的配置文件中配置的应用表名进行匹配,获取属于应用表名中的数据表表名。
可选的,所述解析所述SQL日志数据获取影响表数据,具体包括:
解析SQL日志数据中所有的insert、update语句;
针对insert语句获取SQL日志数据中所有表字段,并通过反射机制构造对应的实例值;
针对update语句获取SQL日志数据中所有表字段,从中筛选出涉及update的字段,以及从数据库中查询所述涉及update的字段的全量字段数据。
可选的,所述解析所述SQL日志进行字段标记,具体包括:
解析SQL日志数据中所有的insert、update语句;
针对insert语句,将包含“ID”的字段作为条件字段,将其余字段作为为校验字段;
针对update语句,将关键字“where”后涉及的字段作为条件字段,将其余字段作为校验字段;
所述校验字段和条件字段用于期望数据校验的逻辑判断标识。
可选的,所述根据所述结果对象和/或消息对象,以及日志对象生成所述测试用例的期望数据,具体包括:
根据日志对象确定测试用例的检查点;
根据结果对象和/或消息对象确定每个检查点的期望数据。
在上述电子设备的实施例中,应理解,该处理器可以是中央处理单元(英文:Central Processing Unit,简称:CPU),还可以是其他通用处理器、数字信号处理器(英文:Digital Signal Processor,简称:DSP)、专用集成电路(英文:Application SpecificIntegrated Circuit,简称:ASIC)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,而前述的存储器可以是只读存储器(英文:read-only memory,缩写:ROM)、随机存取存储器(英文:random access memory,简称:RAM)、快闪存储器、硬盘或者固态硬盘。结合本发明实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于电子设备实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本说明书的其它实施方案。本说明书旨在涵盖本说明书的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本说明书的一般性原理并包括本说明书未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本说明书的真正范围和精神由下面的权利要求指出。
应当理解的是,本说明书并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本说明书的范围仅由所附的权利要求来限制。

Claims (19)

1.一种用于测试的期望数据生成方法,所述方法包括:
获取测试用例中接口运行的结果数据和/或发送的消息数据,以及测试用例相关的数据库变更的日志数据;
将所述结果数据和/或消息数据转换为结果对象和/或消息对象;
解析所述日志数据得到接口调用数据库的SQL日志数据,并将所述SQL日志数据转换为日志对象;
根据所述结果对象和/或消息对象,以及日志对象生成所述测试用例的期望数据。
2.根据权利要求1所述的方法,所述获取测试用例执行的结果数据和/或测试接口发送的消息数据,具体包括:
获取测试框架的数据总线抓取的测试用例中接口运行的结果数据;
获取测试框架中消息拦截器拦截的测试用例中接口运行后发送的消息数据。
3.根据权利要求1所述的方法,所述测试用例相关的数据库变更的日志数据,具体包括:
通过日志打印配置,收集测试用例的接口调用数据库的全量SQL日志。
4.根据权利要求1所述的方法,将所述结果数据和/或消息数据转换为结果对象和/或消息对象,具体包括:
从所述结果数据中筛选出符合设定筛选规则的结果数据作为结果对象;和/或,
对所述消息数据进行去重,并从所述消息数据中筛选出符合设定筛选规则的消息数据作为消息对象。
5.根据权利要求1所述的方法,所述将所述SQL日志数据转换为日志对象,具体包括以下至少一种:
解析所述SQL日志数据获取数据表表名;
解析所述SQL日志数据获取影响表数据;
解析所述SQL日志进行字段标记。
6.根据权利要求5所述的方法,所述解析所述SQL日志数据获取数据表表名,具体包括:
解析所述SQL日志数据中所有的数据表表名
将解析出的数据表表名与设定的配置文件中配置的应用表名进行匹配,获取属于应用表名中的数据表表名。
7.根据权利要求5所述的方法,所述解析所述SQL日志数据获取影响表数据,具体包括:
解析SQL日志数据中所有的insert、update语句;
针对insert语句获取SQL日志数据中所有表字段,并通过反射机制构造对应的实例值;
针对update语句获取SQL日志数据中所有表字段,从中筛选出涉及update的字段,以及从数据库中查询所述涉及update的字段的全量字段数据。
8.根据权利要求5所述的方法,所述解析所述SQL日志进行字段标记,具体包括:
解析SQL日志数据中所有的insert、update语句;
针对insert语句,将包含“ID”的字段作为条件字段,将其余字段作为为校验字段;
针对update语句,将关键字“where”后涉及的字段作为条件字段,将其余字段作为校验字段;
所述校验字段和条件字段用于期望数据校验的逻辑判断标识。
9.根据权利要求1所述的方法,所述根据所述结果对象和/或消息对象,以及日志对象生成所述测试用例的期望数据,具体包括:
根据日志对象确定测试用例的检查点;
根据结果对象和/或消息对象确定每个检查点的期望数据。
10.一种用于测试的期望数据生成装置,所述装置包括:
数据获取单元,获取测试用例中接口运行的结果数据和/或发送的消息数据,以及测试用例相关的数据库变更的日志数据;
数据处理单元,将所述结果数据和/或消息数据转换为结果对象和/或消息对象;以及,解析所述日志数据得到接口调用数据库的SQL日志数据,并将所述SQL日志数据转换为日志对象;
数据生成单元,根据所述结果对象和/或消息对象,以及日志对象生成所述测试用例的期望数据。
11.根据权利要求10所述的装置,所述数据获取单元中获取测试用例中接口运行的结果数据和/或发送的消息数据,具体包括:
获取测试框架的数据总线抓取的测试用例中接口运行的结果数据;
获取测试框架中消息拦截器拦截的测试用例中接口运行后发送的消息数据。
12.根据权利要求10所述的装置,所述数据获取单元中测试用例相关的数据库变更的日志数据,具体包括:
通过日志打印配置,收集测试用例的接口调用数据库的全量SQL日志。
13.根据权利要求10所述的装置,所述数据处理单元中将所述结果数据和/或消息数据转换为结果对象和/或消息对象,具体包括:
从所述结果数据中筛选出符合设定筛选规则的结果数据作为结果对象;和/或,
对所述消息数据进行去重,并从所述消息数据中筛选出符合设定筛选规则的消息数据作为消息对象。
14.根据权利要求10所述的装置,所述数据处理单元中将所述SQL日志数据转换为日志对象,具体包括以下至少一种:
解析所述SQL日志数据获取数据表表名;
解析所述SQL日志数据获取影响表数据;
解析所述SQL日志进行字段标记。
15.根据权利要求14所述的装置,所述解析所述SQL日志数据获取数据表表名,具体包括:
解析所述SQL日志数据中所有的数据表表名;
将解析出的数据表表名与设定的配置文件中配置的应用表名进行匹配,获取属于应用表名中的数据表表名。
16.根据权利要求14所述的装置,所述解析所述SQL日志数据获取影响表数据,具体包括:
解析SQL日志数据中所有的insert、update语句;
针对insert语句获取SQL日志数据中所有表字段,并通过反射机制构造对应的实例值;
针对update语句获取SQL日志数据中所有表字段,从中筛选出涉及update的字段,以及从数据库中查询所述涉及update的字段的全量字段数据。
17.根据权利要求14所述的装置,所述解析所述SQL日志进行字段标记,具体包括:
解析SQL日志数据中所有的insert、update语句;
针对insert语句,将包含“ID”的字段作为条件字段,将其余字段作为为校验字段;
针对update语句,将关键字“where”后涉及的字段作为条件字段,将其余字段作为校验字段;
所述校验字段和条件字段用于期望数据校验的逻辑判断标识。
18.根据权利要求10所述的装置,所述数据生成单元,具体包括:
第一确定子单元,根据日志对象确定测试用例的检查点;
第二确定子单元,根据结果对象和/或消息对象确定每个检查点的期望数据。
19.一种电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为上述权利要求1-9中任一项所述的方法。
CN201811561029.1A 2018-12-20 2018-12-20 用于测试的期望数据生成方法及装置和电子设备 Active CN110046086B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811561029.1A CN110046086B (zh) 2018-12-20 2018-12-20 用于测试的期望数据生成方法及装置和电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811561029.1A CN110046086B (zh) 2018-12-20 2018-12-20 用于测试的期望数据生成方法及装置和电子设备

Publications (2)

Publication Number Publication Date
CN110046086A CN110046086A (zh) 2019-07-23
CN110046086B true CN110046086B (zh) 2022-04-22

Family

ID=67274010

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811561029.1A Active CN110046086B (zh) 2018-12-20 2018-12-20 用于测试的期望数据生成方法及装置和电子设备

Country Status (1)

Country Link
CN (1) CN110046086B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111767213B (zh) * 2020-06-18 2024-04-05 北京同邦卓益科技有限公司 数据库检查点的测试方法、装置、电子设备及存储介质
CN112100066B (zh) * 2020-09-10 2023-07-04 杭州览众数据科技有限公司 一种数据指标准确性的校验方法及自动化测试工具
CN112612664B (zh) * 2020-12-24 2024-04-02 百度在线网络技术(北京)有限公司 电子设备的测试方法、装置、电子设备和存储介质

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8307343B2 (en) * 2007-10-19 2012-11-06 Microsoft Corporation Application and database context correlation for database application developers
US7953744B2 (en) * 2009-01-28 2011-05-31 International Business Machines Corporation Database change verifier
US9419884B1 (en) * 2012-12-28 2016-08-16 Emc Corporation Intelligent automated testing method for restful web services
CN103631720B (zh) * 2013-12-20 2016-08-17 百度在线网络技术(北京)有限公司 测试用例的生成方法和装置
CN106776324A (zh) * 2016-12-19 2017-05-31 广州酷狗计算机科技有限公司 接口测试方法及装置
CN108268375B (zh) * 2018-01-12 2021-04-30 深圳壹账通智能科技有限公司 应用程序测试方法、装置、计算机设备和存储介质
CN108829584B (zh) * 2018-05-24 2022-02-11 携程计算机技术(上海)有限公司 业务逻辑接口mock测试方法及系统

Also Published As

Publication number Publication date
CN110046086A (zh) 2019-07-23

Similar Documents

Publication Publication Date Title
CN108090567B (zh) 电力通信系统故障诊断方法及装置
CN110046086B (zh) 用于测试的期望数据生成方法及装置和电子设备
CN113227971A (zh) 实时应用错误识别和缓解
CN108647357B (zh) 数据查询的方法及装置
CN110474900B (zh) 一种游戏协议测试方法及装置
CN110221948B (zh) 测试脚本生成方法、装置、计算机装置及存储介质
CN110990276A (zh) 接口字段自动化测试方法、装置和存储介质
US10339035B2 (en) Test DB data generation apparatus
CN110750433A (zh) 接口测试方法和装置
CN115437965B (zh) 适用于测试管理平台的数据处理方法
CN108429636B (zh) 定位异常系统的方法及装置和电子设备
CN116089258A (zh) 数据迁移测试方法、装置、设备、存储介质及程序产品
CN112882707B (zh) 一种渲染方法、装置、存储介质及电子设备
CN113282496B (zh) 接口自动测试方法、装置、设备及存储介质
CN111767213B (zh) 数据库检查点的测试方法、装置、电子设备及存储介质
CN112256517B (zh) 基于lstm-dssm的虚拟化平台的日志分析方法及装置
CN114240654A (zh) 基于交易链路的性能能力透视方法、系统、设备及可读存储介质
CN114116688A (zh) 数据处理与数据质检方法、装置及可读存储介质
CN111800409A (zh) 接口攻击检测方法及装置
CN114327377B (zh) 需求跟踪矩阵生成方法、装置、计算机设备及存储介质
CN112099838B (zh) 确定版本差异的方法、装置及存储介质
CN113157583B (zh) 一种测试方法、装置及设备
CN113448842B (zh) 大数据系统测试方法、装置、服务器及存储介质
CN115509944A (zh) 金融文件异常案例的生成方法、装置及电子设备
CN116862666A (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
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20201013

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Applicant after: Innovative advanced technology Co.,Ltd.

Address before: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Applicant before: Advanced innovation technology Co.,Ltd.

Effective date of registration: 20201013

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Applicant after: Advanced innovation technology Co.,Ltd.

Address before: A four-storey 847 mailbox in Grand Cayman Capital Building, British Cayman Islands

Applicant before: Alibaba Group Holding Ltd.

GR01 Patent grant
GR01 Patent grant