CN111651363A - 测试数据获取方法、装置、电子设备及介质 - Google Patents

测试数据获取方法、装置、电子设备及介质 Download PDF

Info

Publication number
CN111651363A
CN111651363A CN202010610866.XA CN202010610866A CN111651363A CN 111651363 A CN111651363 A CN 111651363A CN 202010610866 A CN202010610866 A CN 202010610866A CN 111651363 A CN111651363 A CN 111651363A
Authority
CN
China
Prior art keywords
test data
data
tested
determining
data acquisition
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
CN202010610866.XA
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.)
Ping An Bank Co Ltd
Original Assignee
Ping An 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 Ping An Bank Co Ltd filed Critical Ping An Bank Co Ltd
Priority to CN202010610866.XA priority Critical patent/CN111651363A/zh
Publication of CN111651363A publication Critical patent/CN111651363A/zh
Pending legal-status Critical Current

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
    • 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/242Query formulation
    • 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/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor

Abstract

本发明涉及数据处理,提供一种测试数据获取方法、装置、电子设备及介质。该方法能够确定待测试系统并获取逻辑指令,根据待测试系统确定待测功能点,并根据待测功能点确定数据源,通过确定待测功能点,能够获取到适合所述待测功能点测试的数据,从数据源中获取数据表,并确定与数据表关联的关联表,获取数据表的第一字段,及获取关联表的第二字段;根据逻辑指令拼接第一字段与第二字段,生成查询指令,通过生成查询指令,使非测试专业人士也能够准确获取到与测试任务相关的数据,通过查询指令获取测试数据,由于无需人工从庞杂数据中获取测试数据,能够提高测试数据的获取效率。此外,本发明还涉及区块链技术,所述目标数据存储于区块链中。

Description

测试数据获取方法、装置、电子设备及介质
技术领域
本发明涉及数据处理技术领域,尤其涉及一种测试数据获取方法、装置、电子设备及介质。
背景技术
随着计算机技术的发展,出现了各种软件系统,现有软件系统在开发测试时需要从外部系统中获取测试数据进行测试。为了完成这一测试任务,需要从庞杂数据中获取相关的测试数据,然后输入软件系统中进行测试。目前,通常是通过人为选择出一些与该项测试任务相关的数据,然而,人为选择出与测试任务相关的数据时常常会出错,导致选择的数据不适合现有系统的测试,同时,人为从庞杂数据中选择数据影响测试效率。
发明内容
鉴于以上内容,有必要提供一种测试数据获取方法、装置、电子设备及介质,不仅能够获取到适合所述待测功能点测试的数据,还能够提高测试数据的获取效率。
一种测试数据获取方法,所述测试数据获取方法包括:
当接收到测试数据获取请求时,根据所述测试数据获取请求确定待测试系统,并从所述测试数据获取请求中获取逻辑指令;
根据所述待测试系统确定待测功能点,并根据所述待测功能点确定数据源;
从所述数据源中获取数据表,所述数据表中包括外键;
根据所述外键确定与所述数据表关联的关联表;
获取所述数据表的第一字段,及获取所述关联表的第二字段;
根据所述逻辑指令拼接所述第一字段与所述第二字段,生成查询指令;
利用所述查询指令从所述数据源中获取测试数据。
根据本发明优选实施例,所述根据所述测试数据获取请求确定待测试系统包括:
从预设线程连接池中获取多个闲置线程,并确定每个闲置线程的速率;
将速率最高的闲置线程确定为目标闲置线程;
利用所述目标闲置线程解析所述测试数据获取请求的方法体,得到所述测试数据获取请求所携带的所有信息;
获取预设标签,并从所述所有信息中获取与所述预设标签对应的信息作为系统标识;
根据所述系统标识确定所述待测试系统。
根据本发明优选实施例,所述根据所述待测试系统确定待测功能点包括:
获取所述待测试系统的当前代码及历史代码;
根据所述当前代码生成所述待测试系统的第一抽象语法树,并根据所述历史代码生成所述待测试系统的第二抽象语法树;
将所述第一抽象语法树与所述第二抽象语法树进行对比,得到所述待测试系统的差异代码;
从预先存储的第一列表中确定与所述差异代码对应的功能点,作为所述待测功能点。
根据本发明优选实施例,所述根据所述当前代码生成所述待测试系统的第一抽象语法树包括:
将所述当前代码的格式转换为预设格式,得到具有预设格式的目标代码;
对所述目标代码进行词法解析;
对词法解析后的目标代码进行语法解析,得到预处理代码;
根据所述预处理代码构建所述第一抽象语法树。
根据本发明优选实施例,所述从所述数据源中获取数据表包括:
从配置库中获取与所述待测功能点对应的目标表名;
遍历所述数据源中的预设列表,并确定所述目标表名所在的目标路径;
从所述目标路径中获取所述数据表。
根据本发明优选实施例,所述利用所述查询指令从所述数据源中获取测试数据包括:
检测所述数据源中数据的数量,并将检测到的数量确定为目标数量;
根据所述目标数量确定线程数量;
从所述预设线程连接池中获取数量为所述线程数量的执行线程;
利用所述执行线程处理所述查询指令,得到所述测试数据;
还包括所述测试数据存储于区块链中。
根据本发明优选实施例,在利用所述查询指令获取测试数据后,所述测试数据获取方法还包括:
确定与所述待检测系统兼容的数据格式;
检测所述测试数据是否为所述数据格式;
当检测到所述测试数据为所述数据格式时,计算所述测试数据的数据量;
当所述数据量小于预设数量时,获取所述测试数据获取请求的请求编号;
根据所述请求编号及所述数据量生成提示信息;
采用对称加密算法加密所述提示信息,得到密文;
向指定联系人的终端设备发送所述密文。
一种测试数据获取装置,所述测试数据获取装置包括:
执行单元,用于当接收到测试数据获取请求时,根据所述测试数据获取请求确定待测试系统,并从所述测试数据获取请求中获取逻辑指令;
确定单元,用于根据所述待测试系统确定待测功能点,并根据所述待测功能点确定数据源;
获取单元,用于从所述数据源中获取数据表,所述数据表中包括外键;
所述确定单元,还用于根据所述外键确定与所述数据表关联的关联表;
所述获取单元,还用于获取所述数据表的第一字段,及获取所述关联表的第二字段;
拼接单元,用于根据所述逻辑指令拼接所述第一字段与所述第二字段,生成查询指令;
所述获取单元,还用于利用所述查询指令从所述数据源中获取测试数据。
根据本发明优选实施例,所述执行单元根据所述测试数据获取请求确定待测试系统包括:
从预设线程连接池中获取多个闲置线程,并确定每个闲置线程的速率;
将速率最高的闲置线程确定为目标闲置线程;
利用所述目标闲置线程解析所述测试数据获取请求的方法体,得到所述测试数据获取请求所携带的所有信息;
获取预设标签,并从所述所有信息中获取与所述预设标签对应的信息作为系统标识;
根据所述系统标识确定所述待测试系统。
根据本发明优选实施例,所述确定单元根据所述待测试系统确定待测功能点包括:
获取所述待测试系统的当前代码及历史代码;
根据所述当前代码生成所述待测试系统的第一抽象语法树,并根据所述历史代码生成所述待测试系统的第二抽象语法树;
将所述第一抽象语法树与所述第二抽象语法树进行对比,得到所述待测试系统的差异代码;
从预先存储的第一列表中确定与所述差异代码对应的功能点,作为所述待测功能点。
根据本发明优选实施例,所述确定单元根据所述当前代码生成所述待测试系统的第一抽象语法树包括:
将所述当前代码的格式转换为预设格式,得到具有预设格式的目标代码;
对所述目标代码进行词法解析;
对词法解析后的目标代码进行语法解析,得到预处理代码;
根据所述预处理代码构建所述第一抽象语法树。
根据本发明优选实施例,所述获取单元从所述数据源中获取数据表包括:
从配置库中获取与所述待测功能点对应的目标表名;
遍历所述数据源中的预设列表,并确定所述目标表名所在的目标路径;
从所述目标路径中获取所述数据表。
根据本发明优选实施例,所述获取单元利用所述查询指令从所述数据源中获取测试数据包括:
检测所述数据源中数据的数量,并将检测到的数量确定为目标数量;
根据所述目标数量确定线程数量;
从所述预设线程连接池中获取数量为所述线程数量的执行线程;
利用所述执行线程处理所述查询指令,得到所述测试数据;
还包括所述测试数据存储于区块链中。
根据本发明优选实施例,所述确定单元,还用于在利用所述查询指令获取测试数据后,确定与所述待检测系统兼容的数据格式;
所述测试数据获取装置还包括:
检测单元,用于检测所述测试数据是否为所述数据格式;
计算单元,用于当检测到所述测试数据为所述数据格式时,计算所述测试数据的数据量;
所述获取单元,还用于当所述数据量小于预设数量时,获取所述测试数据获取请求的请求编号;
生成单元,用于根据所述请求编号及所述数据量生成提示信息;
加密单元,用于采用对称加密算法加密所述提示信息,得到密文;
发送单元,用于向指定联系人的终端设备发送所述密文。
一种电子设备,所述电子设备包括:
存储器,存储至少一个指令;及
处理器,执行所述存储器中存储的指令以实现所述测试数据获取方法。
一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一个指令,所述至少一个指令被电子设备中的处理器执行以实现所述测试数据获取方法。
由以上技术方案可以看出,本发明通过确定待测功能点,能够获取到适合所述待测功能点测试的数据,避免获取到无关数据影响到所述待测功能点的测试,进而通过所述外键能够快速确定出与所述数据表相关联的关联表,通过生成查询指令,使非测试专业人士也能够准确获取到与测试任务相关的数据,进而通过查询指令获取测试数据,由于无需人工从庞杂数据中获取测试数据,能够提高测试数据的获取效率。
附图说明
图1是本发明测试数据获取方法的较佳实施例的流程图。
图2是本发明测试数据获取装置的较佳实施例的功能模块图。
图3是本发明实现测试数据获取方法的较佳实施例的电子设备的结构示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。
如图1所示,是本发明测试数据获取方法的较佳实施例的流程图。根据不同的需求,该流程图中步骤的顺序可以改变,某些步骤可以省略。
所述测试数据获取方法应用于智慧政务场景中,从而推动智慧城市的建设。所述测试数据获取方法应用于一个或者多个电子设备中,所述电子设备是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程门阵列(Field-Programmable Gate Array,FPGA)、数字处理器(Digital Signal Processor,DSP)、嵌入式设备等。
所述电子设备可以是任何一种可与用户进行人机交互的电子产品,例如,个人计算机、平板电脑、智能手机、个人数字助理(Personal Digital Assistant,PDA)、游戏机、交互式网络电视(Internet Protocol Television,IPTV)、智能穿戴式设备等。
所述电子设备还可以包括网络设备和/或用户设备。其中,所述网络设备包括,但不限于单个网络服务器、多个网络服务器组成的服务器组或基于云计算(CloudComputing)的由大量主机或网络服务器构成的云。
所述电子设备所处的网络包括,但不限于:互联网、广域网、城域网、局域网、虚拟专用网络(Virtual Private Network,VPN)等。
在本发明的至少一个实施例中,本发明应用于电子设备中,所述电子设备与多个数据源及外网服务器相通信,所述外网服务器包括目标数据库。
S10,当接收到测试数据获取请求时,根据所述测试数据获取请求确定待测试系统,并从所述测试数据获取请求中获取逻辑指令。
在本发明的至少一个实施例中,所述测试数据获取请求中携带的信息包括,但不限于:请求编号、系统标识、所述逻辑指令等。
进一步地,所述逻辑指令包括:与、或、非等。
在本发明的至少一个实施例中,所述电子设备根据所述测试数据获取请求确定待测试系统包括:
所述电子设备从预设线程连接池中获取多个闲置线程,并确定每个闲置线程的速率,进一步地,所述电子设备将速率最高的闲置线程确定为目标闲置线程,更进一步地,所述电子设备利用所述目标闲置线程解析所述测试数据获取请求的方法体,得到所述测试数据获取请求所携带的所有信息,更进一步地,所述电子设备获取预设标签,并从所述所有信息中获取与所述预设标签对应的信息作为系统标识,所述电子设备根据所述系统标识确定所述待测试系统。
通过从预设线程连接池中选取目标闲置线程,能够在无需等待其他指令执行的前提下,快速解析所述测试数据获取请求,提高了解析效率,通过预设标签与系统标识的映射关系,能够准确确定所述待测试系统。
在本发明的至少一个实施例中,所述电子设备从所述测试数据获取请求中获取逻辑指令包括:
所述电子设备获取预设识别码,进一步地,所述电子设备从所述测试数据获取请求中获取与所述预设识别码对应的信息,作为所述逻辑指令。
S11,根据所述待测试系统确定待测功能点,并根据所述待测功能点确定数据源。
在本发明的至少一个实施例中,所述待测功能点可以是所述待测试系统中任意一个组件,进一步地,所述数据源可以是任意数据库,例如:所述任意数据库可以是Oracle数据库、Mysql数据库、MongoDB数据库、Redis数据库等。
在本发明的至少一个实施例中,所述电子设备根据所述待测试系统确定待测功能点包括:
所述电子设备获取所述待测试系统的当前代码及历史代码,进一步地,所述电子设备根据所述当前代码生成所述待测试系统的第一抽象语法树,并根据所述历史代码生成所述待测试系统的第二抽象语法树,更进一步地,所述电子设备将所述第一抽象语法树与所述第二抽象语法树进行对比,得到所述待测试系统的差异代码,所述电子设备从预先存储的第一列表中确定与所述差异代码对应的功能点,作为所述待测功能点。
其中,抽象语法树(abstract syntax tree,AST)是源代码的抽象语法结构的树状表现形式。树上的每个节点都表示源代码中的一种结构,按照预设顺序,每个节点都有其各自的编号,例如,按照语法结构的顺序或程序运行的顺序为每个节点编号。
通过对比所述第一抽象语法树与所述第二抽象语法树,能够快速确定差异代码,进而提高所述待测功能点的确定效率。
在本发明的至少一个实施例中,所述电子设备根据所述当前代码生成所述待测试系统的第一抽象语法树包括:
所述电子设备将所述当前代码的格式转换为预设格式,得到具有预设格式的目标代码,进一步地,所述电子设备对所述目标代码进行词法解析,所述电子设备对词法解析后的目标代码进行语法解析,得到预处理代码,更进一步地,所述电子设备根据所述预处理代码构建所述第一抽象语法树。
其中,所述预设格式是指可以生成所述第一抽象语法树的格式,由于能够将所述当前代码转换成统一的预设格式,因此,本方案不限制所述当前代码的格式,所述当前代码可以是C语言格式、也可以是JAVA语言格式等。通过对所述当前代码进行格式化,能够得到统一的预设格式,因此不管是哪种格式的当前代码,经过格式化之后,都可以转换为统一的预设格式。
进一步地,所述词法解析是将所述目标代码切成多个语元,并为每个语元分配一个编号。实际上是将所述当前代码切割成多个语元,并按照顺序为每个语元分配一个编号。
更进一步地,所述语法解析是在词法解析的基础上将各个语元组合成具有一定语法的语句,如“程序”、“表达式”等。
在本发明的至少一个实施例中,所述第二抽象语法树的生成方式与所述第一抽象语法树的生成方式相同,本发明在此不作赘述。
S12,从所述数据源中获取数据表,所述数据表中包括外键。
在本发明的至少一个实施例中,所述数据表是与所述待测功能点最相关的表。
在本发明的至少一个实施例中,所述电子设备从所述数据源中获取数据表包括:
所述电子设备从配置库中获取与所述待测功能点对应的目标表名,进一步地,所述电子设备遍历所述数据源中的预设列表,并确定所述目标表名所在的目标路径,更进一步地,所述电子设备从所述目标路径中获取所述数据表。
其中,所述预设列表中存储多个表名与路径的映射关系。
通过上述实施方式,能够确保从所述目标路径中获取到的数据表与所述待测功能点最相关,提高所述待测功能点的测试准确率。
S13,根据所述外键确定与所述数据表关联的关联表。
在本发明的至少一个实施例中,所述电子设备根据从预设外键字段集中检测所述外键所属的表名,进一步地,所述电子设备根据所述表名确定所述关联表。
通过上述实施方式,能够准确确定与所述数据表关联的关联表。
S14,获取所述数据表的第一字段,及获取所述关联表的第二字段。
在本发明的至少一个实施例中,所述电子设备通过抓取工具从所述数据表中获取所述第一字段,与此同时,所述电子设备通过所述抓取工具从所述关联表中获取所述第二字段。
其中,所述抓取工具为现有技术,本发明对此不再赘述。
S15,根据所述逻辑指令拼接所述第一字段与所述第二字段,生成查询指令。
在本发明的至少一个实施例中,在根据所述逻辑指令拼接所述第一字段与所述第二字段之前,所述方法还包括:
所述电子设备检测所述第一字段与所述第二字段的格式是否相同,当检测到所述第一字段与所述第二字段的格式不同时,所述电子设备确定所述第一字段的字段格式,进一步地,所述电子设备将所述第二字段转换为具有所述字段格式的字段。
通过上述实施方式,能够确保所述第一字段与所述第二字段的格式相同,同时,由于所述数据表是与所述待测功能点最相关的表,为此,将所述第二字段的格式转换为所述字段格式,有利于所述待测功能点的测试。
S16,利用所述查询指令从所述数据源中获取测试数据。
需要强调的是,为进一步保证上述测试数据的私密和安全性,上述测试数据还可以存储于一区块链的节点中。
在本发明的至少一个实施例中,所述电子设备利用所述查询指令从所述数据源中获取测试数据包括:
所述电子设备检测所述数据源中数据的数量,并将检测到的数量确定为目标数量,进一步地,所述电子设备根据所述目标数量确定线程数量,更进一步地,所述电子设备从所述预设线程连接池中获取数量为所述线程数量的执行线程,所述电子设备利用所述执行线程处理所述查询指令,得到所述测试数据。
通过上述实施方式,能够根据所述目标数量确定执行所述查询指令的执行线程的线程数量,进而能够及时从所述数据源中获取所述测试数据。
在本发明的至少一个实施例中,在利用所述查询指令获取测试数据后,所述方法还包括:
所述电子设备确定与所述待检测系统兼容的数据格式,进一步地,所述电子设备检测所述测试数据是否为所述数据格式,当检测到所述测试数据为所述数据格式时,所述电子设备计算所述测试数据的数据量,当所述数据量小于预设数量时,所述电子设备获取所述测试数据获取请求的请求编号,进一步地,所述电子设备根据所述请求编号及所述数据量生成提示信息,更进一步地,所述电子设备采用对称加密算法加密所述提示信息,得到密文,更进一步地,所述电子设备向指定联系人的终端设备发送所述密文。
其中,所述预设数据量可以根据所述待测功能点的复杂程度确定,本发明对所述预设数据量的具体取值不作限制。
进一步地,所述指定联系人可以是负责测试所述待检测系统的测试人员。
通过上述实施方式,能够确保测试数据被所述待检测系统识别,进而使测试数据能够用于所述待检测功能点的测试,同时,能够在测试数据的数据量小于预设数量时,及时发出提示信息。
由以上技术方案可以看出,本发明通过确定待测功能点,能够获取到适合所述待测功能点测试的数据,避免获取到无关数据影响到所述待测功能点的测试,进而通过所述外键能够快速确定出与所述数据表相关联的关联表,通过生成查询指令,使非测试专业人士也能够准确获取到与测试任务相关的数据,进而通过查询指令获取测试数据,由于无需人工从庞杂数据中获取测试数据,能够提高测试数据的获取效率。
如图2所示,是本发明测试数据获取装置的较佳实施例的功能模块图。所述测试数据获取装置11包括执行单元110、确定单元111、获取单元112、拼接单元113、检测单元114、计算单元115、生成单元116、加密单元117、发送单元118及转换单元119。本发明所称的模块/单元是指一种能够被处理器13所获取,并且能够完成固定功能的一系列计算机程序段,其存储在存储器12中。在本实施例中,关于各模块/单元的功能将在后续的实施例中详述。
当接收到测试数据获取请求时,执行单元110根据所述测试数据获取请求确定待测试系统,并从所述测试数据获取请求中获取逻辑指令。
在本发明的至少一个实施例中,所述测试数据获取请求中携带的信息包括,但不限于:请求编号、系统标识、所述逻辑指令等。
进一步地,所述逻辑指令包括:与、或、非等。
在本发明的至少一个实施例中,所述执行单元110根据所述测试数据获取请求确定待测试系统包括:
所述执行单元110从预设线程连接池中获取多个闲置线程,并确定每个闲置线程的速率,进一步地,所述执行单元110将速率最高的闲置线程确定为目标闲置线程,更进一步地,所述执行单元110利用所述目标闲置线程解析所述测试数据获取请求的方法体,得到所述测试数据获取请求所携带的所有信息,更进一步地,所述执行单元110获取预设标签,并从所述所有信息中获取与所述预设标签对应的信息作为系统标识,所述执行单元110根据所述系统标识确定所述待测试系统。
通过从预设线程连接池中选取目标闲置线程,能够在无需等待其他指令执行的前提下,快速解析所述测试数据获取请求,提高了解析效率,通过预设标签与系统标识的映射关系,能够准确确定所述待测试系统。
在本发明的至少一个实施例中,所述执行单元110从所述测试数据获取请求中获取逻辑指令包括:
所述执行单元110获取预设识别码,进一步地,所述执行单元110从所述测试数据获取请求中获取与所述预设识别码对应的信息,作为所述逻辑指令。
确定单元111根据所述待测试系统确定待测功能点,并根据所述待测功能点确定数据源。
在本发明的至少一个实施例中,所述待测功能点可以是所述待测试系统中任意一个组件,进一步地,所述数据源可以是任意数据库,例如:所述任意数据库可以是Oracle数据库、Mysql数据库、MongoDB数据库、Redis数据库等。
在本发明的至少一个实施例中,所述确定单元111根据所述待测试系统确定待测功能点包括:
所述确定单元111获取所述待测试系统的当前代码及历史代码,进一步地,所述确定单元111根据所述当前代码生成所述待测试系统的第一抽象语法树,并根据所述历史代码生成所述待测试系统的第二抽象语法树,更进一步地,所述确定单元111将所述第一抽象语法树与所述第二抽象语法树进行对比,得到所述待测试系统的差异代码,更进一步地,所述确定单元111从预先存储的第一列表中确定与所述差异代码对应的功能点,作为所述待测功能点。
其中,抽象语法树(abstract syntax tree,AST)是源代码的抽象语法结构的树状表现形式。树上的每个节点都表示源代码中的一种结构,按照预设顺序,每个节点都有其各自的编号,例如,按照语法结构的顺序或程序运行的顺序为每个节点编号。
通过对比所述第一抽象语法树与所述第二抽象语法树,能够快速确定差异代码,进而提高所述待测功能点的确定效率。
在本发明的至少一个实施例中,所述确定单元111根据所述当前代码生成所述待测试系统的第一抽象语法树包括:
所述确定单元111将所述当前代码的格式转换为预设格式,得到具有预设格式的目标代码,进一步地,所述确定单元111对所述目标代码进行词法解析,所述确定单元111对词法解析后的目标代码进行语法解析,得到预处理代码,更进一步地,所述确定单元111根据所述预处理代码构建所述第一抽象语法树。
其中,所述预设格式是指可以生成所述第一抽象语法树的格式,由于能够将所述当前代码转换成统一的预设格式,因此,本方案不限制所述当前代码的格式,所述当前代码可以是C语言格式、也可以是JAVA语言格式等。通过对所述当前代码进行格式化,能够得到统一的预设格式,因此不管是哪种格式的当前代码,经过格式化之后,都可以转换为统一的预设格式。
进一步地,所述词法解析是将所述目标代码切成多个语元,并为每个语元分配一个编号。实际上是将所述当前代码切割成多个语元,并按照顺序为每个语元分配一个编号。
更进一步地,所述语法解析是在词法解析的基础上将各个语元组合成具有一定语法的语句,如“程序”、“表达式”等。
在本发明的至少一个实施例中,所述第二抽象语法树的生成方式与所述第一抽象语法树的生成方式相同,本发明在此不作赘述。
获取单元112从所述数据源中获取数据表,所述数据表中包括外键。
在本发明的至少一个实施例中,所述数据表是与所述待测功能点最相关的表。
在本发明的至少一个实施例中,所述获取单元112从所述数据源中获取数据表包括:
所述获取单元112从配置库中获取与所述待测功能点对应的目标表名,进一步地,所述获取单元112遍历所述数据源中的预设列表,并确定所述目标表名所在的目标路径,更进一步地,所述获取单元112从所述目标路径中获取所述数据表。
其中,所述预设列表中存储多个表名与路径的映射关系。
通过上述实施方式,能够确保从所述目标路径中获取到的数据表与所述待测功能点最相关,提高所述待测功能点的测试准确率。
所述确定单元111根据所述外键确定与所述数据表关联的关联表。
在本发明的至少一个实施例中,所述确定单元111根据从预设外键字段集中检测所述外键所属的表名,进一步地,所述确定单元111根据所述表名确定所述关联表。
通过上述实施方式,能够准确确定与所述数据表关联的关联表。
所述获取单元112获取所述数据表的第一字段,及获取所述关联表的第二字段。
在本发明的至少一个实施例中,所述获取单元112通过抓取工具从所述数据表中获取所述第一字段,与此同时,所述获取单元112通过所述抓取工具从所述关联表中获取所述第二字段。
其中,所述抓取工具为现有技术,本发明对此不再赘述。
拼接单元113根据所述逻辑指令拼接所述第一字段与所述第二字段,生成查询指令。
在本发明的至少一个实施例中,在根据所述逻辑指令拼接所述第一字段与所述第二字段之前,检测单元114检测所述第一字段与所述第二字段的格式是否相同,当检测到所述第一字段与所述第二字段的格式不同时,所述确定单元111确定所述第一字段的字段格式,进一步地,转换单元119将所述第二字段转换为具有所述字段格式的字段。
通过上述实施方式,能够确保所述第一字段与所述第二字段的格式相同,同时,由于所述数据表是与所述待测功能点最相关的表,为此,将所述第二字段的格式转换为所述字段格式,有利于所述待测功能点的测试。
所述获取单元112利用所述查询指令从所述数据源中获取测试数据。
需要强调的是,为进一步保证上述测试数据的私密和安全性,上述测试数据还可以存储于一区块链的节点中。
在本发明的至少一个实施例中,所述获取单元112利用所述查询指令从所述数据源中获取测试数据包括:
所述获取单元112检测所述数据源中数据的数量,并将检测到的数量确定为目标数量,进一步地,所述获取单元112根据所述目标数量确定线程数量,更进一步地,所述获取单元112从所述预设线程连接池中获取数量为所述线程数量的执行线程,所述获取单元112利用所述执行线程处理所述查询指令,得到所述测试数据。
通过上述实施方式,能够根据所述目标数量确定执行所述查询指令的执行线程的线程数量,进而能够及时从所述数据源中获取所述测试数据。
在本发明的至少一个实施例中,在利用所述查询指令获取测试数据后,所述确定单元111确定与所述待检测系统兼容的数据格式,进一步地,所述检测单元114检测所述测试数据是否为所述数据格式,当检测到所述测试数据为所述数据格式时,计算单元115计算所述测试数据的数据量,当所述数据量小于预设数量时,所述获取单元112获取所述测试数据获取请求的请求编号,进一步地,生成单元116根据所述请求编号及所述数据量生成提示信息,更进一步地,加密单元117采用对称加密算法加密所述提示信息,得到密文,更进一步地,发送单元118向指定联系人的终端设备发送所述密文。
其中,所述预设数据量可以根据所述待测功能点的复杂程度确定,本发明对所述预设数据量的具体取值不作限制。
进一步地,所述指定联系人可以是负责测试所述待检测系统的测试人员。
通过上述实施方式,能够确保测试数据被所述待检测系统识别,进而使测试数据能够用于所述待检测功能点的测试,同时,能够在测试数据的数据量小于预设数量时,及时发出提示信息。
由以上技术方案可以看出,本发明通过确定待测功能点,能够获取到适合所述待测功能点测试的数据,避免获取到无关数据影响到所述待测功能点的测试,进而通过所述外键能够快速确定出与所述数据表相关联的关联表,通过生成查询指令,使非测试专业人士也能够准确获取到与测试任务相关的数据,进而通过查询指令获取测试数据,由于无需人工从庞杂数据中获取测试数据,能够提高测试数据的获取效率。
如图3所示,是本发明实现测试数据获取方法的较佳实施例的电子设备的结构示意图。
在本发明的一个实施例中,所述电子设备1包括,但不限于,存储器12、处理器13,以及存储在所述存储器12中并可在所述处理器13上运行的计算机程序,例如测试数据获取程序。
本领域技术人员可以理解,所述示意图仅仅是电子设备1的示例,并不构成对电子设备1的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述电子设备1还可以包括输入输出设备、网络接入设备、总线等。
所述处理器13可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器13是所述电子设备1的运算核心和控制中心,利用各种接口和线路连接整个电子设备1的各个部分,及执行所述电子设备1的操作系统以及安装的各类应用程序、程序代码等。
所述处理器13执行所述电子设备1的操作系统以及安装的各类应用程序。所述处理器13执行所述应用程序以实现上述各个测试数据获取方法实施例中的步骤,例如图1所示的步骤。
示例性的,所述计算机程序可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器12中,并由所述处理器13执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序在所述电子设备1中的执行过程。例如,所述计算机程序可以被分割成执行单元110、确定单元111、获取单元112、拼接单元113、检测单元114、计算单元115、生成单元116、加密单元117、发送单元118及转换单元119。
所述存储器12可用于存储所述计算机程序和/或模块,所述处理器13通过运行或执行存储在所述存储器12内的计算机程序和/或模块,以及调用存储在存储器12内的数据,实现所述电子设备1的各种功能。所述存储器12可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据电子设备的使用所创建的数据等。此外,存储器12可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。
所述存储器12可以是电子设备1的外部存储器和/或内部存储器。进一步地,所述存储器12可以是具有实物形式的存储器,如内存条、TF卡(Trans-flash Card)等等。
所述电子设备1集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。
其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)。
本发明所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
结合图1,所述电子设备1中的所述存储器12存储多个指令以实现一种测试数据获取方法,所述处理器13可获取所述多个指令从而实现:当接收到测试数据获取请求时,根据所述测试数据获取请求确定待测试系统,并从所述测试数据获取请求中获取逻辑指令;根据所述待测试系统确定待测功能点,并根据所述待测功能点确定数据源;从所述数据源中获取数据表,所述数据表中包括外键;根据所述外键确定与所述数据表关联的关联表;获取所述数据表的第一字段,及获取所述关联表的第二字段;根据所述逻辑指令拼接所述第一字段与所述第二字段,生成查询指令;利用所述查询指令从所述数据源中获取测试数据。
具体地,所述处理器13对上述指令的具体实现方法可参考图1对应实施例中相关步骤的描述,在此不赘述。
在本发明所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附关联图标记视为限制所涉及的权利要求。
此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。系统权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第二等词语用来表示名称,而并不表示任何特定的顺序。
最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。

Claims (10)

1.一种测试数据获取方法,其特征在于,所述测试数据获取方法包括:
当接收到测试数据获取请求时,根据所述测试数据获取请求确定待测试系统,并从所述测试数据获取请求中获取逻辑指令;
根据所述待测试系统确定待测功能点,并根据所述待测功能点确定数据源;
从所述数据源中获取数据表,所述数据表中包括外键;
根据所述外键确定与所述数据表关联的关联表;
获取所述数据表的第一字段,及获取所述关联表的第二字段;
根据所述逻辑指令拼接所述第一字段与所述第二字段,生成查询指令;
利用所述查询指令从所述数据源中获取测试数据。
2.如权利要求1所述的测试数据获取方法,其特征在于,所述根据所述测试数据获取请求确定待测试系统包括:
从预设线程连接池中获取多个闲置线程,并确定每个闲置线程的速率;
将速率最高的闲置线程确定为目标闲置线程;
利用所述目标闲置线程解析所述测试数据获取请求的方法体,得到所述测试数据获取请求所携带的所有信息;
获取预设标签,并从所述所有信息中获取与所述预设标签对应的信息作为系统标识;
根据所述系统标识确定所述待测试系统。
3.如权利要求1所述的测试数据获取方法,其特征在于,所述根据所述待测试系统确定待测功能点包括:
获取所述待测试系统的当前代码及历史代码;
根据所述当前代码生成所述待测试系统的第一抽象语法树,并根据所述历史代码生成所述待测试系统的第二抽象语法树;
将所述第一抽象语法树与所述第二抽象语法树进行对比,得到所述待测试系统的差异代码;
从预先存储的第一列表中确定与所述差异代码对应的功能点,作为所述待测功能点。
4.如权利要求3所述的测试数据获取方法,其特征在于,所述根据所述当前代码生成所述待测试系统的第一抽象语法树包括:
将所述当前代码的格式转换为预设格式,得到具有预设格式的目标代码;
对所述目标代码进行词法解析;
对词法解析后的目标代码进行语法解析,得到预处理代码;
根据所述预处理代码构建所述第一抽象语法树。
5.如权利要求1所述的测试数据获取方法,其特征在于,所述从所述数据源中获取数据表包括:
从配置库中获取与所述待测功能点对应的目标表名;
遍历所述数据源中的预设列表,并确定所述目标表名所在的目标路径;
从所述目标路径中获取所述数据表。
6.如权利要求1所述的测试数据获取方法,其特征在于,所述利用所述查询指令从所述数据源中获取测试数据包括:
检测所述数据源中数据的数量,并将检测到的数量确定为目标数量;
根据所述目标数量确定线程数量;
从所述预设线程连接池中获取数量为所述线程数量的执行线程;
利用所述执行线程处理所述查询指令,得到所述测试数据;
还包括所述测试数据存储于区块链中。
7.如权利要求1所述的测试数据获取方法,其特征在于,在利用所述查询指令获取测试数据后,所述测试数据获取方法还包括:
确定与所述待检测系统兼容的数据格式;
检测所述测试数据是否为所述数据格式;
当检测到所述测试数据为所述数据格式时,计算所述测试数据的数据量;
当所述数据量小于预设数量时,获取所述测试数据获取请求的请求编号;
根据所述请求编号及所述数据量生成提示信息;
采用对称加密算法加密所述提示信息,得到密文;
向指定联系人的终端设备发送所述密文。
8.一种测试数据获取装置,其特征在于,所述测试数据获取装置包括:
执行单元,用于当接收到测试数据获取请求时,根据所述测试数据获取请求确定待测试系统,并从所述测试数据获取请求中获取逻辑指令;
确定单元,用于根据所述待测试系统确定待测功能点,并根据所述待测功能点确定数据源;
获取单元,用于从所述数据源中获取数据表,所述数据表中包括外键;
所述确定单元,还用于根据所述外键确定与所述数据表关联的关联表;
所述获取单元,还用于获取所述数据表的第一字段,及获取所述关联表的第二字段;
拼接单元,用于根据所述逻辑指令拼接所述第一字段与所述第二字段,生成查询指令;
所述获取单元,还用于利用所述查询指令从所述数据源中获取测试数据。
9.一种电子设备,其特征在于,所述电子设备包括:
存储器,存储至少一个指令;及
处理器,执行所述存储器中存储的指令以实现如权利要求1至7中任意一项所述的测试数据获取方法。
10.一种计算机可读存储介质,其特征在于:所述计算机可读存储介质中存储有至少一个指令,所述至少一个指令被电子设备中的处理器执行以实现如权利要求1至7中任意一项所述的测试数据获取方法。
CN202010610866.XA 2020-06-29 2020-06-29 测试数据获取方法、装置、电子设备及介质 Pending CN111651363A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010610866.XA CN111651363A (zh) 2020-06-29 2020-06-29 测试数据获取方法、装置、电子设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010610866.XA CN111651363A (zh) 2020-06-29 2020-06-29 测试数据获取方法、装置、电子设备及介质

Publications (1)

Publication Number Publication Date
CN111651363A true CN111651363A (zh) 2020-09-11

Family

ID=72347811

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010610866.XA Pending CN111651363A (zh) 2020-06-29 2020-06-29 测试数据获取方法、装置、电子设备及介质

Country Status (1)

Country Link
CN (1) CN111651363A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112685288A (zh) * 2020-12-03 2021-04-20 福建亿能达信息技术股份有限公司 一种关联表的测试数据的生成方法、装置、设备和介质
CN113138933A (zh) * 2021-05-13 2021-07-20 网易(杭州)网络有限公司 数据表的测试方法、电子设备及存储介质

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100030757A1 (en) * 2008-08-01 2010-02-04 Microsoft Corporation Query builder for testing query languages
CN105930274A (zh) * 2016-05-05 2016-09-07 中国银行股份有限公司 一种自动化测试方法及系统
CN108509637A (zh) * 2018-04-10 2018-09-07 口碑(上海)信息技术有限公司 数据表关联查询方法及装置
CN109144862A (zh) * 2018-08-10 2019-01-04 深圳市小牛在线互联网信息咨询有限公司 测试数据的统计方法、装置、计算机设备及存储介质
CN110109947A (zh) * 2017-12-28 2019-08-09 北京京东尚科信息技术有限公司 提取数据的方法和装置
CN110221982A (zh) * 2019-06-17 2019-09-10 深圳前海微众银行股份有限公司 业务系统的性能测试方法、装置、设备及可读存储介质
CN110287192A (zh) * 2019-06-26 2019-09-27 浙江大搜车软件技术有限公司 搜索应用数据处理方法、装置、计算机设备和存储介质
CN110399387A (zh) * 2019-07-26 2019-11-01 北京明略软件系统有限公司 基于表关联关系动态生成查询sql的方法及装置
CN110399293A (zh) * 2019-06-21 2019-11-01 平安科技(深圳)有限公司 系统测试方法、装置、计算机设备和存储介质

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100030757A1 (en) * 2008-08-01 2010-02-04 Microsoft Corporation Query builder for testing query languages
CN105930274A (zh) * 2016-05-05 2016-09-07 中国银行股份有限公司 一种自动化测试方法及系统
CN110109947A (zh) * 2017-12-28 2019-08-09 北京京东尚科信息技术有限公司 提取数据的方法和装置
CN108509637A (zh) * 2018-04-10 2018-09-07 口碑(上海)信息技术有限公司 数据表关联查询方法及装置
CN109144862A (zh) * 2018-08-10 2019-01-04 深圳市小牛在线互联网信息咨询有限公司 测试数据的统计方法、装置、计算机设备及存储介质
CN110221982A (zh) * 2019-06-17 2019-09-10 深圳前海微众银行股份有限公司 业务系统的性能测试方法、装置、设备及可读存储介质
CN110399293A (zh) * 2019-06-21 2019-11-01 平安科技(深圳)有限公司 系统测试方法、装置、计算机设备和存储介质
CN110287192A (zh) * 2019-06-26 2019-09-27 浙江大搜车软件技术有限公司 搜索应用数据处理方法、装置、计算机设备和存储介质
CN110399387A (zh) * 2019-07-26 2019-11-01 北京明略软件系统有限公司 基于表关联关系动态生成查询sql的方法及装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112685288A (zh) * 2020-12-03 2021-04-20 福建亿能达信息技术股份有限公司 一种关联表的测试数据的生成方法、装置、设备和介质
CN113138933A (zh) * 2021-05-13 2021-07-20 网易(杭州)网络有限公司 数据表的测试方法、电子设备及存储介质

Similar Documents

Publication Publication Date Title
CN111694840B (zh) 数据同步方法、装置、服务器及存储介质
CN111901327B (zh) 云网络漏洞挖掘方法、装置、电子设备及介质
CN112667240A (zh) 程序代码转换方法及相关设备
CN111679975A (zh) 单证生成方法、装置、电子设备及介质
CN111814441A (zh) 报表生成方法、装置、电子设备及存储介质
CN111883251A (zh) 医疗误诊检测方法、装置、电子设备及存储介质
CN113283675B (zh) 指标数据分析方法、装置、设备及存储介质
CN111651363A (zh) 测试数据获取方法、装置、电子设备及介质
CN112329043A (zh) 信息加密处理方法、装置、计算机设备及介质
CN112363923A (zh) 基于问卷系统的测试方法、装置、计算机设备及介质
CN111814045A (zh) 数据查询方法、装置、电子设备及存储介质
CN113536770A (zh) 基于人工智能的文本解析方法、装置、设备及存储介质
CN113938408B (zh) 一种数据流量测试方法、装置、服务器及存储介质
CN114116108A (zh) 动态渲染方法、装置、设备及存储介质
CN113900955A (zh) 自动化测试方法、装置、设备及存储介质
CN114418398A (zh) 场景任务开发方法、装置、设备及存储介质
CN110633258B (zh) 日志插入方法、装置、计算机装置及存储介质
CN112434062A (zh) 准实时数据处理方法、装置、服务器及存储介质
CN114360732B (zh) 医疗数据分析方法、装置、电子设备及存储介质
CN113886263A (zh) 系统测试方法、装置、设备及存储介质
CN113326365B (zh) 回复语句生成方法、装置、设备及存储介质
CN113283677B (zh) 指标数据处理方法、装置、设备及存储介质
CN112181485A (zh) 脚本执行方法、装置、电子设备及存储介质
CN113627186B (zh) 基于人工智能的实体关系检测方法及相关设备
CN114416417A (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