CN105589803B - 一种测试工具的生成方法和终端设备 - Google Patents
一种测试工具的生成方法和终端设备 Download PDFInfo
- Publication number
- CN105589803B CN105589803B CN201410575713.0A CN201410575713A CN105589803B CN 105589803 B CN105589803 B CN 105589803B CN 201410575713 A CN201410575713 A CN 201410575713A CN 105589803 B CN105589803 B CN 105589803B
- Authority
- CN
- China
- Prior art keywords
- program
- fingerprint
- terminal device
- statement
- server
- 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
Links
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本申请公开了一种测试工具的生成方法和终端设备,其特征在于,包括以下步骤:终端设备获取服务器中的工作日志,并提取所述工作日志中对应执行状态为成功的程序语句;所述终端设备根据所述程序语句生成程序指纹;所述终端设备将所述程序指纹与程序语句测试集中已有的程序指纹进行匹配,如果存在相同程序指纹,则将所述程序指纹及其所对应的程序语句丢弃;如果不存在相同程序指纹,则将所述程序指纹及其所对应的程序语句添加到所述程序语句测试集中。通过本申请,可以依据业务线上的实际运行并成功执行的程序语句来持续地补充程序测试集。
Description
技术领域
本申请涉及计算机领域,特别是涉及一种测试工具的生成方法和终端设备。
背景技术
数据仓库是一个面向主题的、集成的、相对稳定的、反映历史变化的数据集合,其主要功能是进行分析型处理。随着网络技术和计算机应用的发展,互联网、电信和银行等行业的企业在运营过程中产生的数据量快速膨胀,对数据仓库的性能、可扩展性等有着巨大影响。传统的集中式数据仓库架构已经无法满足大型企业的经营分析***在数据集成性、及时性和查询响应时间等各方面的要求。
当前的很多第三方工具,都是针对数据库的,而现有的数据仓库的测试方法又多是针对传统的集中型数据仓库提出的。大数据时代的信息***,使得分布式/并行处理变得如此重要。无论是传统行业,还是新兴行业,特别是互联网行业,日常业务运行所产生的海量用户和服务数据都需要更大的硬件资源来处理。SQL(Structured Query Language,结构化查询语言)是一种数据仓库查询和程序设计语言,用于数据的存取以及查询、更新和管理,SQL测试是数据仓库产品测试的一个重要而繁琐的部分。目前,业界普遍利用第三方提供的测试工具直接进行基准测试,例如,Sysbench、Supersmach、Benchmark SQL和Jmeter等测试工具以及业界广泛使用的TPC-H(Transaction Processing Performance Council-H,数据仓库决策支持能力的测试基准)标准。
在实现本申请的过程中,发明人发现现有技术至少存在如下问题:
SQL语法很复杂,手工写SQL语法成本很大,且很容易产生错误,并且手写产生的SQL语法也可能存在不能使用的情况,一般采用语法模板推导来生成SQL测试集,但是利用推导来生成SQL测试集,只能生成简单的SQL语法,对于复杂的需要进行分支组合的场景不能胜任,很可能不能遍历所有的分支路径的所有组合,并且使用起来较为复杂。第三方提供的测试工具中框架复杂,组件繁多,移植性较差,无法模拟实际场景下实际数据的测试。传统的数据仓库的测试工具与大数据的数据仓库平台的测试并不能很好地结合。
发明内容
本申请的目的在于提供一种测试工具的生成方法和终端设备,以已有程序语句测试集为基准,以程序指纹为测试用例识别规则,将线上真实的用户数据访问的程序语句持续地补充到已有测试集,以期最大化地覆盖程序功能测试,为此,本申请采用如下技术方案:
一种测试工具的生成方法,其特征在于,包括以下步骤:
终端设备获取服务器中的工作日志,并提取所述工作日志中对应执行状态为成功的程序语句;
所述终端设备根据所述程序语句生成程序指纹;
所述终端设备将所述程序指纹与程序语句测试集中已有的程序指纹进行匹配,如果存在相同程序指纹,则将所述程序指纹及其所对应的程序语句丢弃;
如果不存在相同程序指纹,则将所述程序指纹及其所对应的程序语句添加到所述程序语句测试集中。
所述终端设备获取所述服务器中的工作日志,具体为:
所述终端设备周期性获取所述服务器中的工作日志;或,
所述终端设备获取所述服务器推送的工作日志。
所述工作日志,具体为:
所述终端设备使用程序语句访问服务器时的实时访问日志;或,
历史访问日志。
所述终端设备根据所述程序语句生成所述程序指纹,具体为:
所述终端设备将所述程序语句解析为抽象语法树;
所述终端设备将所述抽象语法树转换为操作算子树;
所述终端设备根据所述操作算子树生成数据流的执行单元;
所述终端设备提取所述数据流的执行单元中的特征字符串,将所述特征字符串作为所述程序语句的程序指纹。
所述特征字符串,具体为:
根据所述数据流的执行单元各层级的名称所生成。
一种测试工具的生成终端设备,其特征在于,包括:
数据获取模块,用于获取服务器中的工作日志,并提取所述工作日志中对应执行状态为成功的程序语句;
指纹生成模块,用于根据所述程序语句生成一个程序指纹;
测试反馈模块,用于将所述程序指纹与程序语句测试集中已有的程序指纹进行匹配,如果存在相同程序指纹,则将所述程序指纹及其所对应的程序语句丢弃;
如果不存在相同程序指纹,则将所述程序指纹及其所对应的程序语句添加到所述程序语句测试集中。
所述数据获取模块获取所述服务器中的工作日志,具体为:
所述数据获取模块周期性获取所述服务器中的工作日志;或,
所述数据获取模块获取所述服务器推送的工作日志。
所述终端设备,还包括:
访问模块,用于使用程序语句访问所述服务器;
所述工作日志,具体为:
所述访问模块业务请求访问所述服务器时的实时访问日志;或,
历史访问日志。
所述指纹生成模块,具体用于:
将所述程序语句解析为抽象语法树;
将所述抽象语法树转换为操作算子树;
根据所述操作算子树生成数据流的执行单元;
提取所述数据流的执行单元中的特征字符串,将所述特征字符串作为所述程序语句的程序指纹。
所述特征字符串,具体为:
根据所述数据流的执行单元各层级的名称所生成。
本申请的实施例包括以下优点,以SQL指纹为测试用例的基准,收集线上真实执行的SQL语句并补充到数据仓库平台产品的测试集,这样不仅可以避免大量的手写工作和手写过程中产生的错误,节省了工作人员的时间,还能适用于复杂的需要进行分值组合的场景,且能够尽可能地覆盖所有的分支路径的所有组合,使SQL测试集更加准确、完善,从而保证数据仓库平台的可靠性、可用性以及稳定性。
附图说明
图1为本申请实施例中的测试工具的生成方法流程图;
图2为本申请实施例中的测试工具的生成终端设备结构示意图。
具体实施方式
本申请实施例提供的技术方案中,依据服务器线上的实际提交并成功执行的程序语句来补充测试集,设备终端获取到所述服务器的工作日志,并从获取到的工作日志中提取对应执行状态为成功的程序语句,将所述程序语句解析为抽象语法树,再将所述抽象语法树转换为操作算子树后生成相应的数据流的执行单元,然后遍历所述数据流的执行单元组成的特征树,提取所述特征树中的特征字符串,将所述特征字符串作为所述程序语句的程序指纹,基于新得到的程序指纹,在程序测试集中已有的程序指纹中验证是否存在指纹一样的程序语句,如果不存在,则将所述程序指纹及其所对应的程序语句添加到程序测试集中,如果存在,则将所述程序指纹及其所对应的程序语句丢弃,以达到用程序指纹为测试用例的基准,收集线上真实执行的程序语句并补充到产品(在具体的应用场景中,该产品指代的对象为相应应用场景下的具体处理对象,例如在数据仓库平台场景下,该产品具体指数据仓库平台产品)的程序测试集的目的,以使程序测试集更加完善。
下面将结合本申请中的附图,对本申请中的技术方案进行清楚、完整的描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
如图1所示,为本申请实施例中的测试工具的生成方法流程图,包括以下步骤:
步骤101,终端设备获取服务器中的工作日志,并提取所述工作日志中对应执行状态为成功的程序语句。
所述终端设备获取所述服务器中的工作日志,包括:
所述终端设备周期性获取所述服务器中的工作日志;或,
所述终端设备获取所述服务器推送的工作日志。
其中,所述终端设备获取所述服务器推送的工作日志,具体可以为:
当服务器检测到有程序语句执行成功时,所述服务器将所述程序语句发送给所述终端设备;或,
当终端设备检测到所述服务器中有程序语句执行成功时,所述设备终端向所述服务器发送请求信息,所述服务器根据所述请求信息将对应的程序语句发送给所述终端设备;或,
当有其他设备检测到所述服务器中有程序语句执行成功时,所述其他设备向所述服务器发送请求信息,所述服务器根据所述请求信息将对应的程序语句发送给所述终端设备;或,
所述终端设备向所述服务器发送请求信息,所述服务器根据所述请求信息将对应的程序语句发送给所述终端设备,其中,所述请求信息可以为:将某一时间段内的程序语句发送给所述终端设备;或,将某一类型程序语句发送给所述终端用户等。
所述工作日志,具体为:
所述终端设备使用程序语句访问所述服务器时产生的实时访问日志;或,
历史访问日志。
当终端设备在日常使用程序语句查询服务器时,会在服务器中产生访问日志,如果是当前访问的,产生的日志就分类为实时访问日志,如果是以前访问的,产生的日志就分类为历史访问日志。
所述实时访问日志由后台服务器存储到指定目录下的指定文件;所述业务的历史访问日志由用户导入到指定目录下的指定文件。
其中,所述工作日志中存储有所述终端设备查询服务器的程序语句,以及在使用程序语句查询服务器时的执行状态是否成功的标识。例如:服务器在接收到所述终端设备发送的程序语句查询请求时,如果此次程序语句查询成功,那么,所述服务器将查询结果响应反馈至所述终端设备,并对此次程序语句所对应的访问日志的执行状态进行标识,如:“成功”、“Success”或“S”;如果此次程序语句查询失败,那么,所述服务器会将失败原因反馈给终端设备,并对此次程序语句所对应的访问日志的执行状态进行标识,如:“失败”、“Failure”或“F”。
步骤102,所述终端设备根据所述程序语句生成程序指纹。
所述终端设备根据所述程序语句生成程序指纹,具体为:
所述终端设备将所述程序语句解析为抽象语法树,其中,用户可以根据个人需求设置解析软件,并将程序语句进行解析。
所述终端设备将所述抽象语法树转换为操作算子树,其中,用户可以根据个人需求设置转换软件,并将抽象语法树进行转换。
所述终端设备根据所述操作算子树生成数据流的执行单元;其中,所述数据流的执行单元还可以根据所述操作算子树结合产品引擎得到。
提取所述数据流的执行单元中的特征字符串,将所述特征字符串作为该程序语句的程序指纹。其中,所述特征字符串为遍历由所述数据流的执行单元构成的特征树后提取的。在得到所述特征字符串后,还可以将所述特征字符串通过MD5(Message-DigestAlgorithm 5,信息摘要算法)方式进行精简,将精简后的特征字符串作为所述程序语句的程序指纹。
所述特征字符串,具体为:根据所述数据流的执行单元各层级的名称所生成。
步骤103,所述终端设备将所述程序指纹与程序语句测试集中已有的程序指纹进行匹配,如果存在相同程序指纹,则将所述程序指纹及其所对应的程序语句丢弃;
如果不存在相同程序指纹,则将所述程序指纹及其所对应的程序语句添加到所述程序语句测试集中。
其中,所述终端设备中的程序测试集中存储有一定量的程序语句,以及所述程序语句对应的程序指纹。将得到的程序指纹与程序测试集中已有的程序指纹进行匹配,如果所述程序测试集中存在相同的程序指纹,则表示匹配成功,说明在所述程序测试集中存在所述得到程序指纹对应的程序语句用例,那么终端设备将该程序指纹及其所对应的程序语句丢弃;如果所述得到的程序指纹匹配不成功,说明在所述程序测试集中不存在所述程序指纹对应的程序语句用例,那么所述终端将所述得到的程序指纹及其所对应的程序语句添加到所述程序语句测试集中。
其中,所述测试工具可以为数据仓库平台的测试工具,也可以为其他的测试工具,所述程序语句可以为查询语句,在具体的应用场景中,该查询语句可以为SQL语句。当然,在实际的应用场景中,可以根据需要选择测试工具和程序语句,凡是能够达到测试的测试工具和查询的程序语句均可以应用于本申请所提出的技术方案,这样的变化并不影响本发明的保护范围。
为了进一步阐述本申请的技术思想,现结合具体的应用场景,对本发明的技术方案进行说明。为了描述方便,本申请实施例中具体以数据仓库平台和SQL语句作为程序的一种具体示例,对本申请所提出的技术方案进行说明,在实际应用中,具体程序语句的变化并不会影响本发明的保护范围。
基于上述说明,本发明提供了一种数据仓库平台测试工具的生成方法,以SQL指纹为测试用例的基准,收集线上真实执行的SQL语句并补充到数据仓库平台产品的测试集,这样不仅可以避免大量的手写工作和手写过程中产生的错误,节省了工作人员的时间,还能适用于复杂的需要进行分值组合的场景,且能够遍历所有的分值路径组合,使SQL测试集更加完善,并且保证了生成的SQL语句是能够使用的。
具体的,对本发明提出的一种数据仓库平台测试工具的生成方法的处理流程进行说明如下:
首先,终端设备获取服务器中的工作日志,并提取所述工作日志中对应执行状态为成功的SQL语句。
其次,所述终端设备根据所述SQL语句生成SQL指纹。
具体的,将所述SQL语句解析为抽象语法树,再将所述抽象语法树转换为操作算子树,然后根据所述操作算子树结合数据仓库平台产品引擎得到JOB/TASK/OPERATOR,遍历由所述JOB/TASK/OPERATOR构成的特征树,并提取所述JOB/TASK/OPERATOR构成的特征树中的特征字符串。将所述特征字符串采用MD5方式进行精简,将精简后的特征字符串作为所述SQL语句的SQL指纹。
所述特征字符串,具体为:根据所述JOB/TASK/OPERATOR各层级的名称所生成。
其中,操作算子树是SQL语句最小的处理单元,如表1所述:
表1
一个SQL语句可以有一个或者一个以上的JOB组成,一个JOB可以有一个或者一个以上的TASK组成;一个TASK可以有多个OPERATOR组成。
进一步的,以SQL语句:
SELECT device_id FROM equipment WHERE pt=‘20140808’LIMIT 100为例,该SQL语句被读取之后经过以下几个处理过程:
TableScanOPerator→FilterOperator→SelectOperator→LimitOperator→FileSy ncOperator;其中,该SQL语句中只有一个JOB,一个MapTask,所以,提取的特征字符串为:JOB1[Maptask[TableScanOPerator,FilterOperator,SelectOperator,LimitOperator,FileSyncOperator]],将该特征字符串采用MD5进行精简的结果为该SQL的指纹。
下面进一步举例来进行说明来用MD5进行精简的SQL指纹,以SQL语句:
基于DAG优化掉不需要的Task。在上述例子中,job2的maptask部分就是一个不需要的Task,将所有优化剩余的Task重新组织成一个单job的plan。
其特征字符串为:
JOB1[Maptask[TableScanOPerator,SelectOperator,ReduceSinkOperator]]Maptask[TableScanOPerator,SelectOperator,ReduceSinkOperator]]Reducetask[JoinOperator,SelectOperator,GroupByOperator,ReduceSinkOperator]]Reducetask[GroupByOperator,SelectOperator,FileSinkOperator]]。
以SQL语句:
再次,所述终端设备将所述SQL指纹与SQL语句测试集中已有的SQL指纹进行匹配,如果存在相同SQL指纹,则将所述SQL指纹及其所对应的SQL语句丢弃;如果不存在相同SQL指纹,则将所述SQL指纹及其所对应的SQL语句添加到所述SQL语句测试集中。
具体的,已有SQL测试集,记为:S={s1,s2,......,si,......,sn},其中,S表示用户设备中SQL语句的集合,si为第i个SQL语句。假设第i个SQL语句对应的SQL指纹为pi,则测试集S对应的SQL指纹集为:P={p1,p2,......,pi,......,pn}。假设新采集到的SQL语句为sn+1,计算得到SQL指纹为:pn+1,如果该SQL语句的SQL指纹在SQL指纹集P里面不存在,则补充之后的SQL语句测试集为:S={s1,s2,......,si,......,sn,sn+1},SQL指纹集P={p1,p2,......,pi,......,pn,pn+1}。
本申请的实施例包括以下优点,以SQL指纹为测试用例的基准,收集线上真实执行的SQL语句并补充到数据仓库平台产品的测试集,这样不仅可以避免大量的手写工作和手写过程中产生的错误,节省了工作人员的时间,还能适用于复杂的需要进行分值组合的场景,且能够尽可能地覆盖所有的分支路径的所有组合,使SQL测试集更加准确、完善,从而保证数据仓库平台的可靠性、可用性以及稳定性。当然,实施本申请的实施例的任一产品并不一定需要同时达到以上所述的所有优点,并且,在实际的应用场景中,可以根据需要选择测试工具和程序语句,凡是能够达到测试的测试工具和查询的程序语句均可以应用于本申请所提出的技术方案,这样的变化并不影响本发明的保护范围。
根据上述实施方式中提供的测试工具的生成方法,本申请实施例还提供了应用上述测试工具的终端设备。
如图2所示,为本申请实施例中的测试工具的生成终端结构示意图,该测试工具的生成设备包括:
数据获取模块201,用于获取服务器中的工作日志,并提取所述工作日志中对应执行状态为成功的程序语句。
所述数据获取模块获取所述服务器中的工作日志,包括:
所述数据获取模块期性获取所述服务器中的工作日志;或,
所述数据获取模块获取所述服务器推送的工作日志。
其中,所述数据获取模块获取所述服务器推送的工作日志,具体可以为:
当服务器检测到有程序语句执行成功时,所述服务器将所述程序语句发送给所述数据获取模块;或,
当数据获取模块检测到所述服务器中有程序语句执行成功时,所述数据获取模块向所述服务器发送请求信息,所述服务器根据所述请求信息将对应的程序语句发送给所述数据获取模块;或,
当有其他设备检测到所述服务器中有程序语句执行成功时,所述其他设备向所述服务器发送请求信息,所述服务器根据所述请求信息将对应的程序语句发送给所述数据获取模块;或,
所述数据获取模块向所述服务器发送请求信息,所述服务器根据所述请求信息将对应的程序语句发送给所述数据获取模块,其中,所述请求信息可以为:将某一时间段内的程序语句发送给所述数据获取模块;或,将某一类型程序语句发送给所述数据获取模块等。
所述终端设备,还包括:
访问模块,用于使用程序语句访问所述服务器。
所述工作日志,具体为:
所述访问模块使用程序语句访问所述服务器时产生的实时访问日志;或,
历史访问日志。
当所述访问模块在日常使用程序语句查询服务器时,会在服务器中产生访问日志,如果是当前访问的,产生的日志就分类为实时访问日志,如果是以前访问的,产生的日志就分类为历史访问日志。
所述实时访问日志由后台服务器存储到指定目录下的指定文件;所述业务的历史访问日志由用户导入到指定目录下的指定文件。
其中,所述工作日志中存储有所述访问模块查询服务器的程序语句,以及在使用程序语句查询服务器时的执行状态是否成功的标识。例如:服务器在接收到所述访问模块发送的程序语句查询请求时,如果此次程序语句查询成功,那么,所述服务器将查询结果响应反馈至所述访问模块,并对此次程序语句所对应的访问日志的执行状态进行标识,如:“成功”、“Success”或“S”;如果此次程序语句查询失败,那么,所述服务器会将失败原因反馈给所述访问模块,并对此次程序语句所对应的访问日志的执行状态进行标识,如:“失败”、“Failure”或“F”。
指纹生成模块202,用于根据所述程序语句生成程序指纹。
所述指纹生成模块,具体用于:
将所述程序语句解析为抽象语法树,其中,用户可以根据个人需求设置解析软件,并将程序语句进行解析。
将所述抽象语法树转换为操作算子树,其中,用户可以根据个人需求设置转换软件,并将抽象语法树进行转换。
根据所述操作算子树生成数据流的执行单元;其中,所述数据流的执行单元还可以根据所述操作算子树结合产品引擎得到。
提取所述数据流的执行单元中的特征字符串,将所述特征字符串作为该程序语句的程序指纹。其中,所述特征字符串为遍历由所述数据流的执行单元构成的特征树后提取的。在得到所述特征字符串后,还可以将所述特征字符串通过MD5方式进行精简,将精简后的特征字符串作为所述程序语句的程序指纹。
所述特征字符串,具体为:根据所述数据流的执行单元各层级的名称所生成。
测试反馈模块203,用于将所述程序指纹与程序语句测试集中已有的程序指纹进行匹配,如果存在相同程序指纹,则将所述程序指纹及其所对应的程序语句丢弃;如果不存在相同程序指纹,则将所述程序指纹及其所对应的程序语句添加到所述程序语句测试集中。
其中,所述测试反馈模块中的程序测试集中存储有一定量的程序语句,以及所述程序语句对应的程序指纹。将得到的程序指纹与程序测试集中已有的程序指纹进行匹配,如果所述程序测试集中存在相同的程序指纹,则表示匹配成功,说明在所述程序测试集中存在所述得到程序指纹对应的程序语句用例,那么所述测试反馈模块将该程序指纹及其所对应的程序语句丢弃;如果所述得到的程序指纹匹配不成功,说明在所述程序测试集中不存在所述程序指纹对应的程序语句用例,那么所述测试反馈模块将所述得到的程序指纹及其所对应的程序语句添加到所述程序语句测试集中。
本申请的实施例包括以下优点,以SQL指纹为测试用例的基准,收集线上真实执行的SQL语句并补充到数据仓库平台产品的测试集,这样不仅可以避免大量的手写工作和手写过程中产生的错误,节省了工作人员的时间,还能适用于复杂的需要进行分值组合的场景,且能够尽可能地覆盖所有的分支路径的所有组合,使SQL测试集更加准确、完善,从而保证数据仓库平台的可靠性、可用性以及稳定性。当然,实施本申请的实施例的任一产品并不一定需要同时达到以上所述的所有优点。
本领域技术人员可以理解实施例中的设备中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台终端设备(可以是手机,个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本申请的保护范围。
以上公开的仅为本申请的几个具体实施例,但是,本申请并非局限于此,任何本领域的技术人员能思之的变化都应落入本申请的保护范围。
Claims (8)
1.一种测试工具的生成方法,其特征在于,包括以下步骤:
终端设备获取服务器中的工作日志,并提取所述工作日志中对应执行状态为成功的程序语句;
所述终端设备根据所述程序语句生成程序指纹;
所述终端设备将所述程序指纹与程序语句测试集中已有的程序指纹进行匹配,如果存在相同程序指纹,则将所述程序指纹及其所对应的程序语句丢弃;
如果不存在相同程序指纹,则将所述程序指纹及其所对应的程序语句添加到所述程序语句测试集中;
其中,所述终端设备根据所述程序语句生成所述程序指纹,具体为:
所述终端设备将所述程序语句解析为抽象语法树;
所述终端设备将所述抽象语法树转换为操作算子树;
所述终端设备根据所述操作算子树生成数据流的执行单元;
所述终端设备提取所述数据流的执行单元中的特征字符串,将所述特征字符串作为所述程序语句的程序指纹。
2.如权利要求1所述方法,其特征在于,所述终端设备获取所述服务器中的工作日志,具体为:
所述终端设备周期性获取所述服务器中的工作日志;或,
所述终端设备获取所述服务器推送的工作日志。
3.如权利要求1或2所述方法,其特征在于,所述工作日志,具体为:
所述终端设备使用程序语句访问所述服务器时产生的实时访问日志;或,
历史访问日志。
4.如权利要求1所述方法,其特征在于,所述特征字符串,具体为:
根据所述数据流的执行单元各层级的名称所生成。
5.一种测试工具的生成终端设备,其特征在于,包括:
数据获取模块,用于获取服务器中的工作日志,并提取所述工作日志中对应执行状态为成功的程序语句;
指纹生成模块,用于根据所述程序语句生成一个程序指纹;
测试反馈模块,用于将所述程序指纹与程序语句测试集中已有的程序指纹进行匹配,如果存在相同程序指纹,则将所述程序指纹及其所对应的程序语句丢弃;
如果不存在相同程序指纹,则将所述程序指纹及其所对应的程序语句添加到所述程序语句测试集中;
其中,所述指纹生成模块,具体用于:
将所述程序语句解析为抽象语法树;
将所述抽象语法树转换为操作算子树;
根据所述操作算子树生成数据流的执行单元;
提取所述数据流的执行单元中的特征字符串,将所述特征字符串作为所述程序语句的程序指纹。
6.如权利要求5所述终端设备,其特征在于,所述数据获取模块获取所述服务器中的工作日志,具体为:
所述数据获取模块周期性获取所述服务器中的工作日志;或,
所述数据获取模块获取所述服务器推送的工作日志。
7.如权利要求5或6所述终端设备,其特征在于,还包括:
访问模块,用于使用程序语句访问所述服务器;
所述工作日志,具体为:
所述访问模块使用程序语句访问所述服务器时产生的实时访问日志;或,
历史访问日志。
8.如权利要求5所述终端设备,其特征在于,所述特征字符串,具体为:
根据所述数据流的执行单元各层级的名称所生成。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410575713.0A CN105589803B (zh) | 2014-10-24 | 2014-10-24 | 一种测试工具的生成方法和终端设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410575713.0A CN105589803B (zh) | 2014-10-24 | 2014-10-24 | 一种测试工具的生成方法和终端设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105589803A CN105589803A (zh) | 2016-05-18 |
CN105589803B true CN105589803B (zh) | 2018-12-28 |
Family
ID=55929401
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410575713.0A Active CN105589803B (zh) | 2014-10-24 | 2014-10-24 | 一种测试工具的生成方法和终端设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105589803B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107609026B (zh) * | 2017-08-09 | 2020-11-06 | 中南大学 | 一种数据密集型应用集成测试方法及*** |
CN110164216B (zh) * | 2019-05-23 | 2021-04-23 | 福建工程学院 | 一种sql在线评测*** |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2003083690A1 (en) * | 2002-03-25 | 2003-10-09 | Data Quality Solutions, Inc. | Method and system for enterprise business process management |
CN101281571A (zh) * | 2008-04-22 | 2008-10-08 | 白杰 | 防御未知病毒程序的方法 |
CN102054043A (zh) * | 2010-12-30 | 2011-05-11 | 畅捷通软件有限公司 | 大数据生成方法和装置 |
CN103309975A (zh) * | 2013-06-09 | 2013-09-18 | 华为技术有限公司 | 一种重复数据删除方法和设备 |
CN103729361A (zh) * | 2012-10-12 | 2014-04-16 | 百度在线网络技术(北京)有限公司 | 一种数据库性能测试方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8612754B2 (en) * | 2011-06-14 | 2013-12-17 | At&T Intellectual Property I, L.P. | Digital fingerprinting via SQL filestream with common text exclusion |
-
2014
- 2014-10-24 CN CN201410575713.0A patent/CN105589803B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2003083690A1 (en) * | 2002-03-25 | 2003-10-09 | Data Quality Solutions, Inc. | Method and system for enterprise business process management |
CN101281571A (zh) * | 2008-04-22 | 2008-10-08 | 白杰 | 防御未知病毒程序的方法 |
CN102054043A (zh) * | 2010-12-30 | 2011-05-11 | 畅捷通软件有限公司 | 大数据生成方法和装置 |
CN103729361A (zh) * | 2012-10-12 | 2014-04-16 | 百度在线网络技术(北京)有限公司 | 一种数据库性能测试方法及装置 |
CN103309975A (zh) * | 2013-06-09 | 2013-09-18 | 华为技术有限公司 | 一种重复数据删除方法和设备 |
Also Published As
Publication number | Publication date |
---|---|
CN105589803A (zh) | 2016-05-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107368503B (zh) | 基于Kettle的数据同步方法和*** | |
US20170242934A1 (en) | Methods for integrating semantic search, query, and analysis and devices thereof | |
US10303689B2 (en) | Answering natural language table queries through semantic table representation | |
CN106649630A (zh) | 数据查询方法及装置 | |
CN107016019B (zh) | 数据库索引创建方法及装置 | |
CN105912527A (zh) | 根据自然语言输出答案的方法、装置及*** | |
WO2022027943A1 (zh) | 一种基于污染要素源解析的水污染溯源***及方法 | |
US10642897B2 (en) | Distance in contextual network graph | |
CN109947770A (zh) | 一种数据库查询方法、终端设备及存储介质 | |
CN112015771B (zh) | 数据检索方法、装置、电子设备及计算机存储介质 | |
CN109902009A (zh) | 一种linux环境下自动测试的方法及*** | |
Malviya et al. | A study on web usage mining theory and applications | |
CN110502520A (zh) | 一种数据入库的方法、***、设备及计算机可读存储介质 | |
CN110263021B (zh) | 一种基于个性化标签体系的主题库生成方法 | |
CN105589803B (zh) | 一种测试工具的生成方法和终端设备 | |
CN110347573A (zh) | 应用程序分析方法、装置、电子设备及计算机可读介质 | |
CN107729428A (zh) | 一种基于Presto和Elasticsearch的SQL查询方法 | |
CN113609100A (zh) | 数据存储方法、数据查询方法、装置及电子设备 | |
CN111899807B (zh) | 一种分子结构生成方法、***、设备及存储介质 | |
CN100456291C (zh) | 词汇共享***及方法 | |
CN107180024A (zh) | 一种中心连通子图的多源异构数据实体识别方法及*** | |
JP2018081403A (ja) | インシデント管理システム、インシデント管理方法およびコンピュータプログラム | |
CN109684351A (zh) | 一种执行计划查看方法、装置、服务器及存储介质 | |
US20220129418A1 (en) | Method for determining blood relationship of data, electronic device and storage medium | |
CN117009430A (zh) | 数据管理方法、装置和存储介质及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |