CN117992295A - 业务测试数据构造方法及装置 - Google Patents

业务测试数据构造方法及装置 Download PDF

Info

Publication number
CN117992295A
CN117992295A CN202311714718.2A CN202311714718A CN117992295A CN 117992295 A CN117992295 A CN 117992295A CN 202311714718 A CN202311714718 A CN 202311714718A CN 117992295 A CN117992295 A CN 117992295A
Authority
CN
China
Prior art keywords
data
field
log
fields
value
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.)
Pending
Application number
CN202311714718.2A
Other languages
English (en)
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.)
Seashell Housing Beijing Technology Co Ltd
Original Assignee
Seashell Housing Beijing Technology 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 Seashell Housing Beijing Technology Co Ltd filed Critical Seashell Housing Beijing Technology Co Ltd
Priority to CN202311714718.2A priority Critical patent/CN117992295A/zh
Publication of CN117992295A publication Critical patent/CN117992295A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/263Generation of test inputs, e.g. test vectors, patterns or sequences ; with adaptation of the tested hardware for testability with external testers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24553Query execution of query operations
    • G06F16/24558Binary matching operations
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明实施例提供一种业务测试数据构造方法及装置,该方法包括:按照流量日志的时间戳及业务场景划分的时间阈将流量日志划分为不同的业务场景;获取数据表中字段之间的关联关系;获取不同数据表中字段值取值相同的关联字段;对应不同的业务场景,基于各个数据表中的插入数据日志和更新数据日志,根据字段之间的关联关系构造各个数据表中分别对应插入数据日志和更新数据日志的预设语句类型的字段值,根据预设语句类型及字段值构造各个数据表对应插入数据日志和更新数据日志的测试数据语句;其中,不同数据表中的关联字段的字段值相同。本发明实施例摆脱了业务测试数据构造时依赖业务逻辑,提高了业务测试数据构造的通用性。

Description

业务测试数据构造方法及装置
技术领域
本发明实施例涉及计算机技术领域,具体涉及一种业务测试数据构造方法及装置。
背景技术
互联网业务测试数据的准备,实现方式有:
(1)手工构造:由熟悉业务的测试人员手工操作,按业务流程和逻辑来操作,进而产生业务底层数据。
(2)APP或WEB自动化:通过和业务流程完全一致的APP或WEB自动化操作,实现最终业务测试数据的构造。
(3)服务端脚本:利用业务的服务端接口请求,以MYSQL表的insert语句和select语句为核心,进行业务测试数据的构造。
(4)数据构造配置化平台:由熟悉业务的开发/测试人员按业务逻辑配置对应的接口请求、sql执行的内容等,最后按步骤顺序执行配置表单的内容,实现新业务测试数据的构造。
而公司的差异性,业务的差异性,同业务不同服务的差异性,导致业务测试数据也不一样,所以对应业务的测试数据的构造都是依赖对应业务的测试开发人员,业务测试数据的构造无法摆脱对业务逻辑的依赖。
发明内容
针对现有技术存在的缺陷,本发明实施例提供一种业务测试数据构造方法及装置。
本发明实施例提供一种业务测试数据构造方法,包括:获取业务测试环境产生的流量日志;其中,所述流量日志包括插入数据日志、选择数据日志及更新数据日志;按照所述流量日志的时间戳及业务场景划分的时间阈将所述流量日志划分为不同的业务场景;以数据表为单位,根据数据表中的流量日志,获取所述数据表中字段之间的关联关系;根据所述选择数据日志中的连表查询语句,获取不同数据表中字段值取值相同的关联字段;对应不同的所述业务场景,基于各个数据表中的所述插入数据日志和所述更新数据日志,根据相应数据表中字段之间的关联关系构造各个数据表中分别对应所述插入数据日志和所述更新数据日志的预设语句类型的字段值,根据所述预设语句类型及所述字段值构造各个数据表对应所述插入数据日志和所述更新数据日志的测试数据语句;其中,不同数据表中的所述关联字段的字段值相同。
根据本发明实施例提供的一种业务测试数据构造方法,所述根据相应数据表中字段之间的关联关系构造各个数据表中分别对应所述插入数据日志和所述更新数据日志的预设语句类型的字段值,包括:根据相应数据表中字段之间的关联关系构造各个数据表中对应所述插入数据日志和所述更新数据日志的插入数据语句的字段值。
根据本发明实施例提供的一种业务测试数据构造方法,所述根据相应数据表中字段之间的关联关系构造各个数据表中分别对应所述插入数据日志和所述更新数据日志的预设语句类型的字段值,包括:响应于所述数据表中至少两个字段间为取值对应的强关联关系,则根据所述强关联关系构造所述预设语句类型中相应字段的字段值;响应于所述数据表中至少两个字段间为取值范围限定的弱关联关系,则根据所述弱关联关系构造所述预设语句类型中相应字段的字段值;响应于所述数据表中某个字段与其余字段不具有关联关系,则根据所述字段的字段类型通过随机赋值构造所述预设语句类型中相应字段的字段值。
根据本发明实施例提供的一种业务测试数据构造方法,所述根据数据表中的流量日志,获取所述数据表中字段之间的关联关系,包括:获取所述数据表中的所述插入数据日志及所述更新数据日志;将所述更新数据日志转换为插入数据日志;根据原始获取的插入数据日志及所述更新数据日志转换得到的插入数据日志得到插入数据日志数据集;对于所述插入数据日志数据集中的各个字段值,计算与所述字段值的出现频率相关的二维坐标,通过密度聚类算法对所述字段值进行聚类分析,根据字段值的聚类结果得到字段之间的关联关系。
根据本发明实施例提供的一种业务测试数据构造方法,所述通过密度聚类算法对所述字段值进行聚类分析,根据字段值的聚类结果得到字段之间的关联关系,包括:响应于至少两个字段的字段值均为簇内的核心点,则所述至少两个字段的关联关系为取值对应的强关联关系;响应于某个字段的任一字段值为边界点,但未出现为噪声点的字段值,则所述字段与所述边界点所在的簇中为核心点的字段值对应的字段为取值范围限定的弱关联关系,根据具备所述弱关联关系的字段的取值情况确定各个字段的取值范围;响应于某个字段的任一字段值为噪声点,则所述字段值对应的字段与其余字段不具有关联关系。
根据本发明实施例提供的一种业务测试数据构造方法,所述对于所述插入数据日志数据集中的各个字段值,计算与所述字段值的出现频率相关的二维坐标,包括:对于所述插入数据日志数据集中的各个字段值,将所述字段值对应的二维坐标的横坐标取值为所述字段值的出现次数与所述插入数据日志数据集中日志数量的比值,将所述字段值对应的二维坐标的纵坐标取值为所述插入数据日志数据集中所述字段值对应字段的取值个数的倒数。
根据本发明实施例提供的一种业务测试数据构造方法,所述根据相应数据表中字段之间的关联关系构造各个数据表中分别对应所述插入数据日志和所述更新数据日志的预设语句类型的字段值,包括:对于所述数据表,获取横坐标值最大的至少一个字段值,为所述至少一个字段值对应的字段构造字段值;根据所述至少一个字段值对应的字段的字段值的构造结果,确定与所述至少一个字段值对应的字段具有取值对应的强关联关系的字段的字段值;根据所述数据表的建表语句获取全量字段,重复执行如下步骤,直至所述建表语句中的全量字段的字段值均确定:响应于根据所述全量字段确定还存在未确定字段值的剩余字段,则基于已确定字段值的字段进行流量日志的筛选,基于筛选得到的所述流量日志重新执行所述密度聚类算法,重新确定所述剩余字段与已确定字段值的字段的关联关系;根据重新确定的所述剩余字段与已确定字段值的字段的关联关系确定剩余字段的字段值。
根据本发明实施例提供的一种业务测试数据构造方法,所述方法还包括:根据业务场景划分的次序,通过执行各个业务场景对应的各个数据表的测试数据语句,对各个业务场景进行测试。
本发明实施例还提供一种业务测试数据构造装置,包括:流量日志获取模块,用于:获取业务测试环境产生的流量日志;其中,所述流量日志包括插入数据日志、选择数据日志及更新数据日志;流量日志分割模块,用于:按照所述流量日志的时间戳及业务场景划分的时间阈将所述流量日志划分为不同的业务场景;字段关联关系获取模块,用于:以数据表为单位,根据数据表中的流量日志,获取所述数据表中字段之间的关联关系;关联字段获取模块,用于:根据所述选择数据日志中的连表查询语句,获取不同数据表中字段值取值相同的关联字段;业务测试数据生成模块,用于:对应不同的所述业务场景,基于各个数据表中的所述插入数据日志和所述更新数据日志,根据相应数据表中字段之间的关联关系构造各个数据表中分别对应所述插入数据日志和所述更新数据日志的预设语句类型的字段值,根据所述预设语句类型及所述字段值构造各个数据表对应所述插入数据日志和所述更新数据日志的测试数据语句;其中,不同数据表中的所述关联字段的字段值相同。
本发明实施例还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述业务测试数据构造方法的步骤。
本发明实施例还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述业务测试数据构造方法的步骤。
本发明实施例还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述业务测试数据构造方法的步骤。
本发明实施例提供的业务测试数据构造方法及装置,通过获取业务测试环境产生的流量日志;其中,流量日志包括插入数据日志、选择数据日志及更新数据日志,按照流量日志的时间戳及业务场景划分的时间阈将流量日志划分为不同的业务场景,以数据表为单位,根据数据表中的流量日志,获取数据表中字段之间的关联关系,根据选择数据日志中的连表查询语句,获取不同数据表中字段值取值相同的关联字段,对应不同的业务场景,基于各个数据表中的插入数据日志和更新数据日志,根据相应数据表中字段之间的关联关系构造各个数据表中分别对应插入数据日志和更新数据日志的预设语句类型的字段值,根据预设语句类型及字段值构造各个数据表对应插入数据日志和更新数据日志的测试数据语句,其中,不同数据表中的关联字段的字段值相同,通过对流量日志进行底层数据的字段关联分析实现了业务测试数据的自动化构造,业务测试数据的构造完全不依赖对应业务的测试开发人员,摆脱了业务测试数据构造时依赖业务逻辑,提高了业务测试数据构造的通用性。
附图说明
为了更清楚地说明本发明的技术方案,下面将对实施例描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的业务测试数据构造方法的流程示意图;
图2是本发明实施例提供的一种业务测试数据构造装置的结构示意图;
图3是本发明实施例提供的电子设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1是本发明实施例提供的业务测试数据构造方法的流程示意图。如图1所示,该方法包括:
步骤S1、获取业务测试环境产生的流量日志;其中,所述流量日志包括插入数据日志、选择数据日志及更新数据日志。
获取到业务测试环境的流量日志(即执行过的语句),如流量日志为MYSQL全量日志,执行过的语句为SQL语句。业务测试环境产生的流量日志可以是公司内部的产研人员在进行业务测试时产生的。
流量日志包括插入数据日志(insert日志)、选择数据日志(select日志)及更新数据日志(update日志)。忽略删除日志(delete日志),因为业务逻辑里基本不会使用强删除语句,删除语句(delete语句)也非数据的生成过程。
本发明实施例可以基于业务测试环境产生的少量的流量日志,构造业务测试数据,实现各个业务场景的测试。并且,业务测试数据的构造可以多次重复进行。
步骤S2、按照所述流量日志的时间戳及业务场景划分的时间阈将所述流量日志划分为不同的业务场景。
流量日志都会有其生成时间的标示,也即流量日志具有时间戳来标示其生成时间。因为测试环境的用户通常为公司内部业务的产研人员,所以业务接口的qps(每秒查询率)低,由业务实际流程操作产生的流量日志,日志的生成时间如果间隔>时间阈(一般业务的http接口超时时间设为3s,时间阈可以设为3s)则进行分割。这样分割后的流量日志,产生时间的时间间隔小于等于时间阈的流量数据是相同业务场景的数据,产生时间的时间间隔大于时间阈的流量数据是不同业务场景的数据。
当然,一轮测试数据构造完成后,实际数据完备度不够时,可调整扩大划分的时间阈。
步骤S3、以数据表为单位,根据数据表中的流量日志,获取所述数据表中字段之间的关联关系。
对于一个业务的执行,可能产生多个数据表。不同数据表可以对应不同子业务的数据。因此,获取的流量日志包括多个数据表的流量日志。
基于多个数据表的流量日志,以数据表为单位,根据数据表中的流量日志,获取数据表中字段之间的关联关系。其中,字段之间的关联关系包括字段之间的字段值的约束关系。数据表的建表语句是确定的,表的字段是全量的。可以基于建表语句中的字段名、字段值的设定范围,进行字段的关联关系分析、随机值生成等。
步骤S4、根据所述选择数据日志中的连表查询语句,获取不同数据表中字段值取值相同的关联字段。
选择数据日志(select日志)中的连表查询语句(union连表查询语句)中ON字段表示不同数据表的同属性字段,也即不同数据表中字段值取值相同的关联字段,这些关联字段的字段名不同,但是字段值需要相同。在构造的测试数据语句中,对应同一业务场景,关联字段的字段值也需相同。
因此,根据选择数据日志中的连表查询语句,获取不同数据表中字段值取值相同的关联字段。
步骤S5、对应不同的所述业务场景,基于各个数据表中的所述插入数据日志和所述更新数据日志,根据相应数据表中字段之间的关联关系构造各个数据表中分别对应所述插入数据日志和所述更新数据日志的预设语句类型的字段值,根据所述预设语句类型及所述字段值构造各个数据表对应所述插入数据日志和所述更新数据日志的测试数据语句;其中,不同数据表中的所述关联字段的字段值相同。
对应不同的业务场景,分别构造各个数据表的测试数据语句。构造的测试数据语句是虚拟的,但是并非随意设定的。一方面对于各个数据表,按照流量日志的生成时间,对应插入数据日志和选择数据日志进行测试语句的构造,以保证业务功能的实现。另一方面,构造的测试数据不与已有数据重合,也即需要对字段的取值,也即字段值进行构造。但是字段值的构造也并非随意,需要满足字段之间的关联关系。在此基础上,可以通过递增或根据设置的规则构造字段值。如房源编号可以递增构造。
因此,对应不同的业务场景,基于各个数据表中的插入数据日志和更新数据日志,根据相应数据表中字段之间的关联关系构造各个数据表中分别对应插入数据日志和更新数据日志的预设语句类型的字段值,其中,对应插入数据日志和对应更新数据日志的测试数据语句的类型可以相同或不同。如基于插入数据日志(insert日志)构造的测试语句的类型也为插入数据语句(Insert语句),基于更新数据日志(update日志)构造的测试语句的类型也为更新数据语句(update语句);或基于插入数据日志(insert日志)构造的测试数据的类型和基于更新数据日志(update日志)构造的测试语句的类型均为插入数据语句(Insert语句)。
根据预设语句类型及对应的字段值的构造结果,构造各个数据表对应插入数据日志和更新数据日志的测试数据语句;其中,不同数据表中的关联字段的字段值相同。
本发明实施例提供的业务测试数据构造方法,通过获取业务测试环境产生的流量日志;其中,流量日志包括插入数据日志、选择数据日志及更新数据日志,按照流量日志的时间戳及业务场景划分的时间阈将流量日志划分为不同的业务场景,以数据表为单位,根据数据表中的流量日志,获取数据表中字段之间的关联关系,根据选择数据日志中的连表查询语句,获取不同数据表中字段值取值相同的关联字段,对应不同的业务场景,基于各个数据表中的插入数据日志和更新数据日志,根据相应数据表中字段之间的关联关系构造各个数据表中分别对应插入数据日志和更新数据日志的预设语句类型的字段值,根据预设语句类型及字段值构造各个数据表对应插入数据日志和更新数据日志的测试数据语句,其中,不同数据表中的关联字段的字段值相同,通过对流量日志进行底层数据的字段关联分析实现了业务测试数据的自动化构造,业务测试数据的构造完全不依赖对应业务的测试开发人员,摆脱了业务测试数据构造时依赖业务逻辑,提高了业务测试数据构造的通用性。
根据本发明实施例提供的一种业务测试数据构造方法,所述根据相应数据表中字段之间的关联关系构造各个数据表中分别对应所述插入数据日志和所述更新数据日志的预设语句类型的字段值,包括:根据相应数据表中字段之间的关联关系构造各个数据表中对应所述插入数据日志和所述更新数据日志的插入数据语句的字段值。
本发明实施例中,对应插入数据日志和更新数据日志的预设语句类型均为插入数据语句。其中,对于对应数据表中的插入数据日志的测试数据语句中插入数据语句的构造,可以基于数据表中的插入数据日志及字段之间的关联关系构造字段值。对于对应数据表中的更新数据日志的测试数据语句中插入数据语句的构造,由于更新数据日志和对应的插入数据日志通常不处于同一时间阈,因此,更新数据日志对应的测试数据语句中字段值的构造在满足字段之间的关联关系的基础上,基于更新数据语句和之前时间阈中对应的插入数据语句进行构造。
由于测试人员经常需要得到某个中间的测试结果,在此基础上进行测试,这样通过直接构造插入数据语句,可以直接得到某一业务场景的测试结果,而无需通过一步步的更新过程实现。
可以通过将插入数据语句和多条更新数据语句进行聚合,生成多条插入数据语句。比如:
对于sql流量日志某一个时间阈下获取到的(录入房源业务场景的首次落库时)1条insert语句:
INSERT INTO tb_house(house_id,yezhu,xiaoqu,loudong,ceng,fangjian,zhuangxiu,status)VALUES
('10000000001','张x','A小区','1栋','2层','201','简单装修','出租');
和后面时间阈流量日志的1条update语句:
UPDATE tb_house SET yezhu='李x'WHERE house_id='10000000001';
和后面时间阈流量日志的1条update语句:
UPDATE tb_house SET zhuangxiu='精装修',status=’出售’WHERE yezhu='李x';
最后用于构造数据时,可生成3条insert语句:
根据第1条insert语句,通过字段值构造(需要和已存在的字段值不同)生成insert语句:
INSERT INTO tb_house(house_id,yezhu,xiaoqu,loudong,ceng,fangjian,zhuangxiu,status)VALUES
('10000000002','张x','A小区','1栋','2层','202','简单装修','出租');
聚合第1条insert语句和第2条update语句得到的insert语句:
INSERT INTO tb_house(house_id,yezhu,xiaoqu,loudong,ceng,fangjian,zhuangxiu,status)VALUES
('10000000003','李x','A小区','1栋','2层','203','简单装修','出租');
聚合第1条insert语句和第2、3条update语句得到的insert语句:
INSERT INTO tb_house(house_id,yezhu,xiaoqu,loudong,ceng,fangjian,zhuangxiu,status)VALUES
('10000000004','李x','A小区','1栋','3层','202','精装修','出售')。
本发明实施例提供的业务测试数据构造方法,通过根据相应数据表中字段之间的关联关系及在前业务场景中的插入数据日志,构造各个数据表中对应插入数据日志和更新数据日志的插入数据语句的字段值,提高了基于业务测试数据的测试结果的获取效率。
根据本发明实施例提供的一种业务测试数据构造方法,所述根据相应数据表中字段之间的关联关系构造各个数据表中分别对应所述插入数据日志和所述更新数据日志的预设语句类型的字段值,包括:响应于所述数据表中至少两个字段间为取值对应的强关联关系,则根据所述强关联关系构造所述预设语句类型中相应字段的字段值;响应于所述数据表中至少两个字段间为取值范围限定的弱关联关系,则根据所述弱关联关系构造所述预设语句类型中相应字段的字段值;响应于所述数据表中某个字段与其余字段不具有关联关系,则根据所述字段的字段类型通过随机赋值构造所述预设语句类型中相应字段的字段值。
在根据相应数据表中字段之间的关联关系构造各个数据表中分别对应插入数据日志和更新数据日志的预设语句类型的字段值时,若数据表中至少两个字段间为取值对应的强关联关系,则根据强关联关系构造预设语句类型中相应字段的字段值,也即构造的各个测试数据语句中相应字段的字段值满足取值对应关系。
若数据表中至少两个字段间为取值范围限定的弱关联关系,则根据弱关联关系构造预设语句类型中相应字段的字段值,其中,根据字段间的弱关联关系确定各个字段的取值范围,在根据弱关联关系构造预设语句类型中相应字段的字段值时,对各个字段在确定的取值范围内取值。在确定各个字段的取值范围时,可以基于建表语句里的注释部分,以及通过对流量日志分析得到的值挖掘结果,确定各个字段的取值范围。
若数据表某个字段与其余字段不具有关联关系,比如评论字段,则根据字段的字段类型通过随机赋值构造预设语句类型中相应字段的字段值。当然,在随机赋值时,可以在预设的数据集中选取。
本发明实施例提供的业务测试数据构造方法,通过响应于数据表中至少两个字段间为取值对应的强关联关系,则根据强关联关系构造预设语句类型中相应字段的字段值,响应于数据表中至少两个字段间为取值范围限定的弱关联关系,则根据弱关联关系构造预设语句类型中相应字段的字段值,响应于数据表某个字段与其余字段不具有关联关系,则根据字段的字段类型通过随机赋值构造预设语句类型中相应字段的字段值,提高了字段值构造的准确性。
根据本发明实施例提供的一种业务测试数据构造方法,所述根据数据表中的流量日志,获取所述数据表中字段之间的关联关系,包括:获取所述数据表中的所述插入数据日志及所述更新数据日志;将所述更新数据日志转换为插入数据日志;根据原始获取的插入数据日志及所述更新数据日志转换得到的插入数据日志得到插入数据日志数据集;对于所述插入数据日志数据集中的各个字段值,计算与所述字段值的出现频率相关的二维坐标,通过密度聚类算法对所述字段值进行聚类分析,根据字段值的聚类结果得到字段之间的关联关系。
在根据数据表中的流量日志,获取数据表中字段之间的关联关系时,基于数据表中的插入数据日志及更新数据日志获取数据表中字段之间的关联关系。其中,由于更新数据日志中只包括部分字段的信息,因此,需要将更新数据日志转换为插入数据日志得到全量字段的信息。在将更新数据日志转换为插入数据日志时,可以基于在前时间阈中对应的插入数据日志进行转换。这样,根据原始获取的插入数据日志及更新数据日志转换得到的插入数据日志得到插入数据日志数据集。
对于插入数据日志数据集中的各个字段值,计算与字段值的出现频率相关的二维坐标,通过密度聚类算法对字段值进行聚类分析,根据字段值的聚类结果得到字段之间的关联关系。其中,密度聚类算法比如可以为DBSCAN算法。在对字段值进行聚类时,需要将字段值转换到二维空间,因此,需要将字段值赋予一个能够根据聚类结果反应字段之间关联性的与字段值的出现频率相关的二维坐标,则可以通过聚类发现字段值出现频率的关系。如果不同字段的字段值同时出现的概率非常高,则说明字段间的关联性强。反之,如果出现频率相差较大,则字段间的关联性较弱。
本发明实施例提供的业务测试数据构造方法,通过获取数据表中的插入数据日志及更新数据日志,将更新数据日志转换为插入数据日志,根据原始获取的插入数据日志及更新数据日志转换得到的插入数据日志得到插入数据日志数据集,对于插入数据日志数据集中的各个字段值,计算与字段值的出现频率相关的二维坐标,通过密度聚类算法对字段值进行聚类分析,根据字段值的聚类结果得到字段之间的关联关系,提高了字段之间的关联关系的准确性。
根据本发明实施例提供的一种业务测试数据构造方法,所述通过密度聚类算法对所述字段值进行聚类分析,根据字段值的聚类结果得到字段之间的关联关系,包括:响应于至少两个字段的字段值均为簇内的核心点,则所述至少两个字段的关联关系为取值对应的强关联关系;响应于某个字段的任一字段值为边界点,但未出现为噪声点的字段值,则所述字段与所述边界点所在的簇中为核心点的字段值对应的字段为取值范围限定的弱关联关系,根据具备所述弱关联关系的字段的取值情况确定各个字段的取值范围;响应于某个字段的任一字段值为噪声点,则所述字段值对应的字段与其余字段不具有关联关系。
在通过密度聚类算法对字段值进行聚类分析,根据字段值的聚类结果得到字段之间的关联关系时,根据设定的领域半径R和最少点数目minpoints,若至少两个字段的字段值均为簇内的核心点,则至少两个字段的关联关系为取值对应的强关联关系。
若某个字段的任一字段值为边界点,但未出现为噪声点的字段值,则该字段与该边界点所在的簇中为核心点的字段值对应的字段为取值范围限定的弱关联关系,根据具备弱关联关系的字段的取值情况确定各个字段的取值范围。其中,在根据具备弱关联关系的字段的取值情况确定各个字段的取值范围时,可以根据已有值确定上下限,如小区的楼栋数为1-10栋。在构造数据时不与已有数据冲突即可。
若某个字段的任一字段值为噪声点,则字段值对应的字段与其余字段不具有关联关系,可以对该字段进行随机赋值。
本发明实施例提供的业务测试数据构造方法,通过响应于至少两个字段的字段值均为簇内的核心点,则至少两个字段的关联关系为取值对应的强关联关系,响应于某个字段的任一字段值为边界点,但未出现为噪声点的字段值,则字段与边界点所在的簇中为核心点的字段值对应的字段为取值范围限定的弱关联关系,根据具备弱关联关系的字段的取值情况确定各个字段的取值范围,响应于某个字段的任一字段值为噪声点,则字段值对应的字段与其余字段不具有关联关系,进一步提高了字段之间的关联关系的准确性。
根据本发明实施例提供的一种业务测试数据构造方法,所述对于所述插入数据日志数据集中的各个字段值,计算与所述字段值的出现频率相关的二维坐标,包括:对于所述插入数据日志数据集中的各个字段值,将所述字段值对应的二维坐标的横坐标取值为所述字段值的出现次数与所述插入数据日志数据集中日志数量的比值,将所述字段值对应的二维坐标的纵坐标取值为所述插入数据日志数据集中所述字段值对应字段的取值个数的倒数。
对于插入数据日志数据集中的各个字段值,计算与字段值的出现频率相关的二维坐标时,将字段值对应的二维坐标的横坐标取值为字段值的出现次数与插入数据日志数据集中日志数量的比值,将字段值对应的二维坐标的纵坐标取值为插入数据日志数据集中字段值对应字段的取值个数的倒数。
本发明实施例提供的业务测试数据构造方法,通过将字段值对应的二维坐标的横坐标取值为字段值的出现次数与插入数据日志数据集中日志数量的比值,将字段值对应的二维坐标的纵坐标取值为插入数据日志数据集中字段值对应字段的取值个数的倒数,进一步提高了字段之间的关联关系的准确性。
根据本发明实施例提供的一种业务测试数据构造方法,所述根据相应数据表中字段之间的关联关系构造各个数据表中分别对应所述插入数据日志和所述更新数据日志的预设语句类型的字段值,包括:对于所述数据表,获取横坐标值最大的至少一个字段值,为所述至少一个字段值对应的字段构造字段值;根据所述至少一个字段值对应的字段的字段值的构造结果,确定与所述至少一个字段值对应的字段具有取值对应的强关联关系的字段的字段值;根据所述数据表的建表语句获取全量字段,重复执行如下步骤,直至所述建表语句中的全量字段的字段值均确定:响应于根据所述全量字段确定还存在未确定字段值的剩余字段,则基于已确定字段值的字段进行流量日志的筛选,基于筛选得到的所述流量日志重新执行所述密度聚类算法,重新确定所述剩余字段与已确定字段值的字段的关联关系;根据重新确定的所述剩余字段与已确定字段值的字段的关联关系确定剩余字段的字段值。
在对字段构造字段值时,可以逐步实现各个字段的字段值的构造。其中,可以首先构造出现频率最高的字段的字段值,进一步构造强关联字段的字段值。对出现频率最高的字段及强关联字段的字段值构造完成后,可以基于确定的字段值,通过where语句查询以确定的字段值为限定条件的流量数据,并重新通过密度聚类算法对筛选得到的流量数据中的字段值进行聚类分析,重新确定剩余字段与已确定字段值的字段的关联关系。由于流量数据满足了相应的限定条件,如限定为某小区的数据,则字段间出现强关联的概率将变大,更有利于提高字段值构造的准确性。
因此,根据相应数据表中字段之间的关联关系构造各个数据表中分别对应插入数据日志和更新数据日志的预设语句类型的字段值时,对于数据表,获取横坐标值最大的至少一个字段值,为获取的至少一个字段值对应的字段构造字段值。
根据至少一个字段值对应的字段的字段值的构造结果,确定与至少一个字段值对应的字段具有取值对应的强关联关系的字段的字段值。
根据数据表的建表语句获取全量字段,响应于根据全量字段确定还存在未确定字段值的剩余字段,则基于已确定字段值的字段,重新执行密度聚类算法,重新确定剩余字段与已确定字段值的字段的关联关系,根据重新确定的剩余字段与已确定字段值的字段的关联关系确定剩余字段的字段值,重复执行上述过程,直至建表语句中的全量字段的字段值均确定。
本发明实施例提供的业务测试数据构造方法,通过对于数据表,获取横坐标值最大的至少一个字段值,为至少一个字段值对应的字段构造字段值,根据至少一个字段值对应的字段的字段值的构造结果,确定与至少一个字段值对应的字段具有取值对应的强关联关系的字段的字段值,根据数据表的建表语句获取全量字段,响应于根据全量字段确定还存在未确定字段值的剩余字段,则基于已确定字段值的字段,重新执行密度聚类算法,重新确定剩余字段与已确定字段值的字段的关联关系,根据重新确定的剩余字段与已确定字段值的字段的关联关系确定剩余字段的字段值,直至建表语句中的全量字段的字段值均确定,提高了字段之间的关联关系及字段值构造的准确性。
根据本发明实施例提供的业务测试数据构造方法,所述方法还包括:根据业务场景划分的次序,通过执行各个业务场景对应的各个数据表的测试数据语句,对各个业务场景进行测试。
根据业务场景划分的次序,通过执行各个业务场景对应的各个数据表的测试数据语句,对各个业务场景进行测试。比如,业务复杂场景的MYSQL流量日志涉及好多个有关联关系的表,生成的MYSQL的insert语句也是多个表的多个语句,关联字段的值是相等的,需要一起执行这些insert语句,才完成了这一场景的业务测试。
本发明实施例提供的业务测试数据构造方法,通过根据业务场景划分的次序,通过执行各个业务场景对应的各个数据表的测试数据语句,对各个业务场景进行测试,实现了基于构造的业务测试数据对各个业务场景进行测试。
需要说明的是,本实施例所给出的多个优选实施方式,在逻辑或结构相互不冲突的前提下,可以自由组合,本发明对此不做限定。
下面对本发明实施例提供的业务测试数据构造装置进行描述,下文描述的业务测试数据构造装置与上文描述的业务测试数据构造方法可相互对应参照。
图2是本发明实施例提供的一种业务测试数据构造装置的结构示意图。如图2所示,该装置包括流量日志获取模块10、流量日志分割模块20、字段关联关系获取模块30、关联字段获取模块40及业务测试数据生成模块50,其中:流量日志获取模块10用于:获取业务测试环境产生的流量日志;其中,所述流量日志包括插入数据日志、选择数据日志及更新数据日志;流量日志分割模块20用于:按照所述流量日志的时间戳及业务场景划分的时间阈将所述流量日志划分为不同的业务场景;字段关联关系获取模块30用于:以数据表为单位,根据数据表中的流量日志,获取所述数据表中字段之间的关联关系;关联字段获取模块40用于:根据所述选择数据日志中的连表查询语句,获取不同数据表中字段值取值相同的关联字段;业务测试数据生成模块50用于:对应不同的所述业务场景,基于各个数据表中的所述插入数据日志和所述更新数据日志,根据相应数据表中字段之间的关联关系构造各个数据表中分别对应所述插入数据日志和所述更新数据日志的预设语句类型的字段值,根据所述预设语句类型及所述字段值构造各个数据表对应所述插入数据日志和所述更新数据日志的测试数据语句;其中,不同数据表中的所述关联字段的字段值相同。
本发明实施例提供的业务测试数据构造装置,通过获取业务测试环境产生的流量日志;其中,流量日志包括插入数据日志、选择数据日志及更新数据日志,按照流量日志的时间戳及业务场景划分的时间阈将流量日志划分为不同的业务场景,以数据表为单位,根据数据表中的流量日志,获取数据表中字段之间的关联关系,根据选择数据日志中的连表查询语句,获取不同数据表中字段值取值相同的关联字段,对应不同的业务场景,基于各个数据表中的插入数据日志和更新数据日志,根据相应数据表中字段之间的关联关系构造各个数据表中分别对应插入数据日志和更新数据日志的预设语句类型的字段值,根据预设语句类型及字段值构造各个数据表对应插入数据日志和更新数据日志的测试数据语句,其中,不同数据表中的关联字段的字段值相同,通过对流量日志进行底层数据的字段关联分析实现了业务测试数据的自动化构造,业务测试数据的构造完全不依赖对应业务的测试开发人员,摆脱了业务测试数据构造时依赖业务逻辑,提高了业务测试数据构造的通用性。
根据本发明实施例提供的一种业务测试数据构造装置,业务测试数据生成模块50在用于根据相应数据表中字段之间的关联关系构造各个数据表中分别对应所述插入数据日志和所述更新数据日志的预设语句类型的字段值时,具体用于:根据相应数据表中字段之间的关联关系构造各个数据表中对应所述插入数据日志和所述更新数据日志的插入数据语句的字段值。
本发明实施例提供的业务测试数据构造装置,通过根据相应数据表中字段之间的关联关系及在前业务场景中的插入数据日志,构造各个数据表中对应插入数据日志和更新数据日志的插入数据语句的字段值,提高了基于业务测试数据的测试结果的获取效率。
根据本发明实施例提供的一种业务测试数据构造装置,业务测试数据生成模块50在用于根据相应数据表中字段之间的关联关系构造各个数据表中分别对应所述插入数据日志和所述更新数据日志的预设语句类型的字段值时,具体用于:响应于所述数据表中至少两个字段间为取值对应的强关联关系,则根据所述强关联关系构造所述预设语句类型中相应字段的字段值;响应于所述数据表中至少两个字段间为取值范围限定的弱关联关系,则根据所述弱关联关系构造所述预设语句类型中相应字段的字段值;响应于所述数据表中某个字段与其余字段不具有关联关系,则根据所述字段的字段类型通过随机赋值构造所述预设语句类型中相应字段的字段值。
本发明实施例提供的业务测试数据构造装置,通过响应于数据表中至少两个字段间为取值对应的强关联关系,则根据强关联关系构造预设语句类型中相应字段的字段值,响应于数据表中至少两个字段间为取值范围限定的弱关联关系,则根据弱关联关系构造预设语句类型中相应字段的字段值,响应于数据表某个字段与其余字段不具有关联关系,则根据字段的字段类型通过随机赋值构造预设语句类型中相应字段的字段值,提高了字段值构造的准确性。
根据本发明实施例提供的一种业务测试数据构造装置,字段关联关系获取模块30在用于根据数据表中的流量日志,获取所述数据表中字段之间的关联关系时,具体用于:获取所述数据表中的所述插入数据日志及所述更新数据日志;将所述更新数据日志转换为插入数据日志;根据原始获取的插入数据日志及所述更新数据日志转换得到的插入数据日志得到插入数据日志数据集;对于所述插入数据日志数据集中的各个字段值,计算与所述字段值的出现频率相关的二维坐标,通过密度聚类算法对所述字段值进行聚类分析,根据字段值的聚类结果得到字段之间的关联关系。
本发明实施例提供的业务测试数据构造装置,通过获取数据表中的插入数据日志及更新数据日志,将更新数据日志转换为插入数据日志,根据原始获取的插入数据日志及更新数据日志转换得到的插入数据日志得到插入数据日志数据集,对于插入数据日志数据集中的各个字段值,计算与字段值的出现频率相关的二维坐标,通过密度聚类算法对字段值进行聚类分析,根据字段值的聚类结果得到字段之间的关联关系,提高了字段之间的关联关系的准确性。
根据本发明实施例提供的一种业务测试数据构造装置,字段关联关系获取模块30在用于通过密度聚类算法对所述字段值进行聚类分析,根据字段值的聚类结果得到字段之间的关联关系时,具体用于:响应于至少两个字段的字段值均为簇内的核心点,则所述至少两个字段的关联关系为取值对应的强关联关系;响应于某个字段的任一字段值为边界点,但未出现为噪声点的字段值,则所述字段与所述边界点所在的簇中为核心点的字段值对应的字段为取值范围限定的弱关联关系,根据具备所述弱关联关系的字段的取值情况确定各个字段的取值范围;响应于某个字段的任一字段值为噪声点,则所述字段值对应的字段与其余字段不具有关联关系。
本发明实施例提供的业务测试数据构造装置,通过响应于至少两个字段的字段值均为簇内的核心点,则至少两个字段的关联关系为取值对应的强关联关系,响应于某个字段的任一字段值为边界点,但未出现为噪声点的字段值,则字段与边界点所在的簇中为核心点的字段值对应的字段为取值范围限定的弱关联关系,根据具备弱关联关系的字段的取值情况确定各个字段的取值范围,响应于某个字段的任一字段值为噪声点,则字段值对应的字段与其余字段不具有关联关系,进一步提高了字段之间的关联关系的准确性。
根据本发明实施例提供的一种业务测试数据构造装置,字段关联关系获取模块30在用于对于所述插入数据日志数据集中的各个字段值,计算与所述字段值的出现频率相关的二维坐标时,具体用于:对于所述插入数据日志数据集中的各个字段值,将所述字段值对应的二维坐标的横坐标取值为所述字段值的出现次数与所述插入数据日志数据集中日志数量的比值,将所述字段值对应的二维坐标的纵坐标取值为所述插入数据日志数据集中所述字段值对应字段的取值个数的倒数。
本发明实施例提供的业务测试数据构造装置,通过将字段值对应的二维坐标的横坐标取值为字段值的出现次数与插入数据日志数据集中日志数量的比值,将字段值对应的二维坐标的纵坐标取值为插入数据日志数据集中字段值对应字段的取值个数的倒数,进一步提高了字段之间的关联关系的准确性。
根据本发明实施例提供的一种业务测试数据构造装置,字段关联关系获取模块30在用于根据相应数据表中字段之间的关联关系构造各个数据表中分别对应所述插入数据日志和所述更新数据日志的预设语句类型的字段值时,具体用于:对于所述数据表,获取横坐标值最大的至少一个字段值,为所述至少一个字段值对应的字段构造字段值;根据所述至少一个字段值对应的字段的字段值的构造结果,确定与所述至少一个字段值对应的字段具有取值对应的强关联关系的字段的字段值;根据所述数据表的建表语句获取全量字段,重复执行如下步骤,直至所述建表语句中的全量字段的字段值均确定:响应于根据所述全量字段确定还存在未确定字段值的剩余字段,则基于已确定字段值的字段进行流量日志的筛选,基于筛选得到的所述流量日志重新执行所述密度聚类算法,重新确定所述剩余字段与已确定字段值的字段的关联关系;根据重新确定的所述剩余字段与已确定字段值的字段的关联关系确定剩余字段的字段值。
本发明实施例提供的业务测试数据构造装置,通过对于数据表,获取横坐标值最大的至少一个字段值,为至少一个字段值对应的字段构造字段值,根据至少一个字段值对应的字段的字段值的构造结果,确定与至少一个字段值对应的字段具有取值对应的强关联关系的字段的字段值,根据数据表的建表语句获取全量字段,响应于根据全量字段确定还存在未确定字段值的剩余字段,则基于已确定字段值的字段,重新执行密度聚类算法,重新确定剩余字段与已确定字段值的字段的关联关系,根据重新确定的剩余字段与已确定字段值的字段的关联关系确定剩余字段的字段值,直至建表语句中的全量字段的字段值均确定,提高了字段之间的关联关系及字段值构造的准确性。
根据本发明实施例提供的一种业务测试数据构造装置,所述装置还包括测试执行模块,用于:根据业务场景划分的次序,通过执行各个业务场景对应的各个数据表的测试数据语句,对各个业务场景进行测试。
本发明实施例提供的业务测试数据构造装置,通过根据业务场景划分的次序,通过执行各个业务场景对应的各个数据表的测试数据语句,对各个业务场景进行测试,实现了基于构造的业务测试数据对各个业务场景进行测试。
图3是本发明实施例提供的电子设备的结构示意图,如图3所示,该电子设备可以包括:处理器(processor)310、通信接口(Communications Interface)320、存储器(memory)330和通信总线340,其中,处理器310,通信接口320,存储器330通过通信总线340完成相互间的通信。处理器310可以调用存储器330中的逻辑指令,以执行业务测试数据构造方法,该方法包括:获取业务测试环境产生的流量日志;其中,所述流量日志包括插入数据日志、选择数据日志及更新数据日志;按照所述流量日志的时间戳及业务场景划分的时间阈将所述流量日志划分为不同的业务场景;以数据表为单位,根据数据表中的流量日志,获取所述数据表中字段之间的关联关系;根据所述选择数据日志中的连表查询语句,获取不同数据表中字段值取值相同的关联字段;对应不同的所述业务场景,基于各个数据表中的所述插入数据日志和所述更新数据日志,根据相应数据表中字段之间的关联关系构造各个数据表中分别对应所述插入数据日志和所述更新数据日志的预设语句类型的字段值,根据所述预设语句类型及所述字段值构造各个数据表对应所述插入数据日志和所述更新数据日志的测试数据语句;其中,不同数据表中的所述关联字段的字段值相同。
此外,上述的存储器330中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明实施例还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,计算机程序可存储在非暂态计算机可读存储介质上,所述计算机程序被处理器执行时,计算机能够执行上述各方法所提供的业务测试数据构造方法,该方法包括:获取业务测试环境产生的流量日志;其中,所述流量日志包括插入数据日志、选择数据日志及更新数据日志;按照所述流量日志的时间戳及业务场景划分的时间阈将所述流量日志划分为不同的业务场景;以数据表为单位,根据数据表中的流量日志,获取所述数据表中字段之间的关联关系;根据所述选择数据日志中的连表查询语句,获取不同数据表中字段值取值相同的关联字段;对应不同的所述业务场景,基于各个数据表中的所述插入数据日志和所述更新数据日志,根据相应数据表中字段之间的关联关系构造各个数据表中分别对应所述插入数据日志和所述更新数据日志的预设语句类型的字段值,根据所述预设语句类型及所述字段值构造各个数据表对应所述插入数据日志和所述更新数据日志的测试数据语句;其中,不同数据表中的所述关联字段的字段值相同。
又一方面,本发明实施例还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法提供的业务测试数据构造方法,该方法包括:获取业务测试环境产生的流量日志;其中,所述流量日志包括插入数据日志、选择数据日志及更新数据日志;按照所述流量日志的时间戳及业务场景划分的时间阈将所述流量日志划分为不同的业务场景;以数据表为单位,根据数据表中的流量日志,获取所述数据表中字段之间的关联关系;根据所述选择数据日志中的连表查询语句,获取不同数据表中字段值取值相同的关联字段;对应不同的所述业务场景,基于各个数据表中的所述插入数据日志和所述更新数据日志,根据相应数据表中字段之间的关联关系构造各个数据表中分别对应所述插入数据日志和所述更新数据日志的预设语句类型的字段值,根据所述预设语句类型及所述字段值构造各个数据表对应所述插入数据日志和所述更新数据日志的测试数据语句;其中,不同数据表中的所述关联字段的字段值相同。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (12)

1.一种业务测试数据构造方法,其特征在于,包括:
获取业务测试环境产生的流量日志;其中,所述流量日志包括插入数据日志、选择数据日志及更新数据日志;
按照所述流量日志的时间戳及业务场景划分的时间阈将所述流量日志划分为不同的业务场景;
以数据表为单位,根据数据表中的流量日志,获取所述数据表中字段之间的关联关系;
根据所述选择数据日志中的连表查询语句,获取不同数据表中字段值取值相同的关联字段;
对应不同的所述业务场景,基于各个数据表中的所述插入数据日志和所述更新数据日志,根据相应数据表中字段之间的关联关系构造各个数据表中分别对应所述插入数据日志和所述更新数据日志的预设语句类型的字段值,根据所述预设语句类型及所述字段值构造各个数据表对应所述插入数据日志和所述更新数据日志的测试数据语句;其中,不同数据表中的所述关联字段的字段值相同。
2.根据权利要求1所述的业务测试数据构造方法,其特征在于,所述根据相应数据表中字段之间的关联关系构造各个数据表中分别对应所述插入数据日志和所述更新数据日志的预设语句类型的字段值,包括:
根据相应数据表中字段之间的关联关系构造各个数据表中对应所述插入数据日志和所述更新数据日志的插入数据语句的字段值。
3.根据权利要求1所述的业务测试数据构造方法,其特征在于,所述根据相应数据表中字段之间的关联关系构造各个数据表中分别对应所述插入数据日志和所述更新数据日志的预设语句类型的字段值,包括:
响应于所述数据表中至少两个字段间为取值对应的强关联关系,则根据所述强关联关系构造所述预设语句类型中相应字段的字段值;
响应于所述数据表中至少两个字段间为取值范围限定的弱关联关系,则根据所述弱关联关系构造所述预设语句类型中相应字段的字段值;
响应于所述数据表中某个字段与其余字段不具有关联关系,则根据所述字段的字段类型通过随机赋值构造所述预设语句类型中相应字段的字段值。
4.根据权利要求1所述的业务测试数据构造方法,其特征在于,所述根据数据表中的流量日志,获取所述数据表中字段之间的关联关系,包括:
获取所述数据表中的所述插入数据日志及所述更新数据日志;
将所述更新数据日志转换为插入数据日志;
根据原始获取的插入数据日志及所述更新数据日志转换得到的插入数据日志得到插入数据日志数据集;
对于所述插入数据日志数据集中的各个字段值,计算与所述字段值的出现频率相关的二维坐标,通过密度聚类算法对所述字段值进行聚类分析,根据字段值的聚类结果得到字段之间的关联关系。
5.根据权利要求4所述的业务测试数据构造方法,其特征在于,所述通过密度聚类算法对所述字段值进行聚类分析,根据字段值的聚类结果得到字段之间的关联关系,包括:
响应于至少两个字段的字段值均为簇内的核心点,则所述至少两个字段的关联关系为取值对应的强关联关系;
响应于某个字段的任一字段值为边界点,但未出现为噪声点的字段值,则所述字段与所述边界点所在的簇中为核心点的字段值对应的字段为取值范围限定的弱关联关系,根据具备所述弱关联关系的字段的取值情况确定各个字段的取值范围;
响应于某个字段的任一字段值为噪声点,则所述字段值对应的字段与其余字段不具有关联关系。
6.根据权利要求4所述的业务测试数据构造方法,其特征在于,所述对于所述插入数据日志数据集中的各个字段值,计算与所述字段值的出现频率相关的二维坐标,包括:
对于所述插入数据日志数据集中的各个字段值,将所述字段值对应的二维坐标的横坐标取值为所述字段值的出现次数与所述插入数据日志数据集中日志数量的比值,将所述字段值对应的二维坐标的纵坐标取值为所述插入数据日志数据集中所述字段值对应字段的取值个数的倒数。
7.根据权利要求4所述的业务测试数据构造方法,其特征在于,所述根据相应数据表中字段之间的关联关系构造各个数据表中分别对应所述插入数据日志和所述更新数据日志的预设语句类型的字段值,包括:
对于所述数据表,获取横坐标值最大的至少一个字段值,为所述至少一个字段值对应的字段构造字段值;
根据所述至少一个字段值对应的字段的字段值的构造结果,确定与所述至少一个字段值对应的字段具有取值对应的强关联关系的字段的字段值;
根据所述数据表的建表语句获取全量字段,重复执行如下步骤,直至所述建表语句中的全量字段的字段值均确定:
响应于根据所述全量字段确定还存在未确定字段值的剩余字段,则基于已确定字段值的字段进行流量日志的筛选,基于筛选得到的所述流量日志重新执行所述密度聚类算法,重新确定所述剩余字段与已确定字段值的字段的关联关系;
根据重新确定的所述剩余字段与已确定字段值的字段的关联关系确定剩余字段的字段值。
8.根据权利要求1所述的业务测试数据构造方法,其特征在于,所述方法还包括:
根据业务场景划分的次序,通过执行各个业务场景对应的各个数据表的测试数据语句,对各个业务场景进行测试。
9.一种业务测试数据构造装置,其特征在于,包括:
流量日志获取模块,用于:获取业务测试环境产生的流量日志;其中,所述流量日志包括插入数据日志、选择数据日志及更新数据日志;
流量日志分割模块,用于:按照所述流量日志的时间戳及业务场景划分的时间阈将所述流量日志划分为不同的业务场景;
字段关联关系获取模块,用于:以数据表为单位,根据数据表中的流量日志,获取所述数据表中字段之间的关联关系;
关联字段获取模块,用于:根据所述选择数据日志中的连表查询语句,获取不同数据表中字段值取值相同的关联字段;
业务测试数据生成模块,用于:对应不同的所述业务场景,基于各个数据表中的所述插入数据日志和所述更新数据日志,根据相应数据表中字段之间的关联关系构造各个数据表中分别对应所述插入数据日志和所述更新数据日志的预设语句类型的字段值,根据所述预设语句类型及所述字段值构造各个数据表对应所述插入数据日志和所述更新数据日志的测试数据语句;其中,不同数据表中的所述关联字段的字段值相同。
10.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至8任一项所述业务测试数据构造方法的步骤。
11.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至8任一项所述业务测试数据构造方法的步骤。
12.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至8任一项所述业务测试数据构造方法的步骤。
CN202311714718.2A 2023-12-13 2023-12-13 业务测试数据构造方法及装置 Pending CN117992295A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311714718.2A CN117992295A (zh) 2023-12-13 2023-12-13 业务测试数据构造方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311714718.2A CN117992295A (zh) 2023-12-13 2023-12-13 业务测试数据构造方法及装置

Publications (1)

Publication Number Publication Date
CN117992295A true CN117992295A (zh) 2024-05-07

Family

ID=90891709

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311714718.2A Pending CN117992295A (zh) 2023-12-13 2023-12-13 业务测试数据构造方法及装置

Country Status (1)

Country Link
CN (1) CN117992295A (zh)

Similar Documents

Publication Publication Date Title
CN109522228B (zh) 接口自动化测试数据构造方法、装置、平台及存储介质
CN113536081B (zh) 基于人工智能的数据中心数据管理方法及系统
CN103678446B (zh) 基于数据视图和数据库表的改进的模式映射
US11599517B2 (en) Generation of realistic mock data
CN110879776A (zh) 一种测试用例的生成方法和装置
CN110297820A (zh) 一种数据处理方法、装置、设备和存储介质
CN108073641B (zh) 查询数据表的方法和装置
US20120323926A1 (en) Efficient Optimization over Uncertain Data
CN114327493A (zh) 数据处理方法及装置、电子设备、计算机可读介质
CN112732242B (zh) 宽表加工脚本的生成方法及装置
CN113627816A (zh) 一种评估管理方法、装置、电子设备及存储介质
CN113094415B (zh) 数据抽取方法、装置、计算机可读介质及电子设备
CN113342647A (zh) 一种测试数据的生成方法及装置
CN117271645A (zh) 一种测试数据的处理方法、装置及计算机可读存储介质
CN116777173A (zh) 一种任务分配方法、装置、设备和介质
CN115186738B (zh) 模型训练方法、装置和存储介质
CN117992295A (zh) 业务测试数据构造方法及装置
CN112100165B (zh) 基于质量评估的交通数据处理方法、系统、设备和介质
CN111026629A (zh) 一种测试脚本自动生成的方法和装置
CN114443493A (zh) 一种测试案例生成方法、装置、电子设备和存储介质
CN112965745A (zh) 一种系统接入方法、装置、设备及计算机可读介质
CN113377801A (zh) 数据检验方法、装置、电子设备及计算机存储介质
KR101638048B1 (ko) 맵리듀스를 이용한 sql 질의처리방법
CN114996434B (zh) 一种信息抽取方法及装置、存储介质、计算机设备
CN114115833B (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