WO2022227314A1 - 动态同步测试方法、装置、设备及存储介质 - Google Patents
动态同步测试方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- WO2022227314A1 WO2022227314A1 PCT/CN2021/109147 CN2021109147W WO2022227314A1 WO 2022227314 A1 WO2022227314 A1 WO 2022227314A1 CN 2021109147 W CN2021109147 W CN 2021109147W WO 2022227314 A1 WO2022227314 A1 WO 2022227314A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- sql
- variable
- script
- tested
- executed
- Prior art date
Links
- 238000012360 testing method Methods 0.000 title claims abstract description 164
- 238000000034 method Methods 0.000 title claims abstract description 39
- 230000001360 synchronised effect Effects 0.000 title claims abstract description 33
- 238000013515 script Methods 0.000 claims abstract description 199
- 238000001514 detection method Methods 0.000 claims description 55
- 238000012545 processing Methods 0.000 claims description 51
- 238000004422 calculation algorithm Methods 0.000 claims description 38
- 238000012795 verification Methods 0.000 claims description 24
- 238000010998 test method Methods 0.000 claims description 20
- 238000012937 correction Methods 0.000 claims description 10
- 230000011218 segmentation Effects 0.000 claims description 6
- 239000013598 vector Substances 0.000 description 13
- 238000010586 diagram Methods 0.000 description 5
- 230000003068 static effect Effects 0.000 description 5
- 238000006243 chemical reaction Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 230000018109 developmental process Effects 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 238000002372 labelling Methods 0.000 description 2
- 230000002688 persistence Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
Definitions
- the identification module is used to identify the input parameters of each of the SQL single-step statements through the Eclipse tool, and obtain an input parameter list corresponding to each of the SQL single-step statements;
- a connection to the source database corresponding to the database information is established through the Mybatis tool, and a single-step parsing process is performed on the script to be executed to generate at least An SQL single-step statement, including:
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
一种动态同步测试方法、装置、设备及存储介质,涉及功能测试领域,所述方法包括:获取待测文件;所述待测文件包括数据库信息、待执行脚本和变量测试清单(S10);通过Mybatis工具建立与数据库信息对应的源数据库的连接,以及对待执行脚本进行单步解析处理,生成至少一个SQL单步语句(S20);通过Eclipse工具,对各SQL单步语句进行入参识别,得到入参清单(S30);通过Eclipse工具,根据变量测试清单和入参清单,对各SQL单步语句进行动态脚本生成处理,生成SQL待测试单步脚本(S40);通过Mybatis工具,对所有SQL待测试单步脚本进行同步测试,得到单步结果(S50),并输出与待测文件对应的测试结果(S60)。因此,该方法实现了通过Mybatis工具和Eclipse工具自动动态生成SQL待测试单步脚本以及并行测试输出测试结果,缩短了测试周期,节省了测试成本。
Description
本申请要求于2021年4月25日提交中国专利局、申请号为202110449563.9,发明名称为“动态同步测试方法、装置、设备及存储介质”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
本申请涉及功能测试技术领域,尤其涉及一种动态同步测试方法、装置、设备及存储介质。
目前,发明人发现基于java的网页开发技术中,Mybatis已经成为网页的持久层框架的主流,对于网页的测试大部分是基于Mybatis编写测试代码,而这些测试代码均为测试人员根据不同的入参拼接不同的SQL语句编写获得,在此编写过程中测试人员往往人工判断测试代码是否存在语法错误,面对现在版本更新频繁以及复杂的网页,很容易出现人工误判的情况,而且每次修改完语法错误后都需要对整体进行重新编译及运行,才能输出测试结果,并人工判断测试结果是否符合预期结果,因此,整个测试周期长,测试效率低下,并且要求测试人员具有较强的编码能力,导致测试工作费力、费时、成本高。
发明内容
本申请提供一种动态同步测试方法、装置、计算机设备及存储介质,实现了通过Mybatis工具和Eclipse工具自动动态生成SQL待测试单步脚本以及并行测试输出测试结果,无需人工解读和编写,降低了测试人员的要求门槛,缩短了测试周期,提高了测试效率,节省了测试成本。
一种动态同步测试方法,包括:
获取待测文件;所述待测文件包括数据库信息、待执行脚本和变量测试清单;
通过Mybatis工具建立与所述数据库信息对应的源数据库的连接,以及对所述待执行脚本进行单步解析处理,生成至少一个SQL单步语句;
通过Eclipse工具,对各所述SQL单步语句进行入参识别,得到与各所述SQL单步语句一一对应的入参清单;
通过所述Eclipse工具,根据所述变量测试清单和与各所述SQL单步语句对应的所述入参清单,对各所述SQL单步语句进行动态脚本生成处理,生成与各所述SQL单步语句对应的SQL待测试单步脚本;
通过所述Mybatis工具,对所有所述SQL待测试单步脚本进行同步测试,得到与各所述SQL单步语句对应的单步结果;
根据所有所述单步结果,输出与所述待测文件对应的测试结果。
一种动态同步测试装置,包括:
获取模块,用于获取待测文件;所述待测文件包括数据库信息、待执行脚本和变量测试清单;
解析模块,用于通过Mybatis工具建立与所述数据库信息对应的源数据库的连接,以及对所述待执行脚本进行单步解析处理,生成至少一个SQL单步语句;
识别模块,用于通过Eclipse工具,对各所述SQL单步语句进行入参识别,得到与各所述SQL单步语句一一对应的入参清单;
生成模块,用于通过所述Eclipse工具,根据所述变量测试清单和与各所述SQL单步语句对应的所述入参清单,对各所述SQL单步语句进行动态脚本生成处理,生成与各所述SQL单步语句对应的SQL待测试单步脚本;
测试模块,用于通过所述Mybatis工具,对所有所述SQL待测试单步脚本进行同步测试,得到与各所述SQL单步语句对应的单步结果;
输出模块,用于根据所有所述单步结果,输出与所述待测文件对应的测试结果。
一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机可读指令,所述处理器执行所述计算机可读指令时实现如下步骤:
获取待测文件;所述待测文件包括数据库信息、待执行脚本和变量测试清单;
通过Mybatis工具建立与所述数据库信息对应的源数据库的连接,以及对所述待执行脚本进行单步解析处理,生成至少一个SQL单步语句;
通过Eclipse工具,对各所述SQL单步语句进行入参识别,得到与各所述SQL单步语句一一对应的入参清单;
通过所述Eclipse工具,根据所述变量测试清单和与各所述SQL单步语句对应的所述入参清单,对各所述SQL单步语句进行动态脚本生成处理,生成与各所述SQL单步语句对应的SQL待测试单步脚本;
通过所述Mybatis工具,对所有所述SQL待测试单步脚本进行同步测试,得到与各所述SQL单步语句对应的单步结果;
根据所有所述单步结果,输出与所述待测文件对应的测试结果。
一个或多个存储有计算机可读指令的可读存储介质,所述计算机可读指令被一个或多个处理器执行时,使得所述一个或多个处理器执行如下步骤:
获取待测文件;所述待测文件包括数据库信息、待执行脚本和变量测试清单;
通过Mybatis工具建立与所述数据库信息对应的源数据库的连接,以及对所述待执行脚本进行单步解析处理,生成至少一个SQL单步语句;
通过Eclipse工具,对各所述SQL单步语句进行入参识别,得到与各所述SQL单步语句一一对应的入参清单;
通过所述Eclipse工具,根据所述变量测试清单和与各所述SQL单步语句对应的所述入参清单,对各所述SQL单步语句进行动态脚本生成处理,生成与各所述SQL单步语句对应的SQL待测试单步脚本;
通过所述Mybatis工具,对所有所述SQL待测试单步脚本进行同步测试,得到与各所述SQL单步语句对应的单步结果;
根据所有所述单步结果,输出与所述待测文件对应的测试结果。
本申请提供的动态同步测试方法、装置、计算机设备及存储介质,通过获取待测文件;所述待测文件包括数据库信息、待执行脚本和变量测试清单;通过Mybatis工具建立与所述数据库信息对应的源数据库的连接,以及对所述待执行脚本进行单步解析处理,生成至少一个SQL单步语句;通过Eclipse工具,对各所述SQL单步语句进行入参识别,得到与各所述SQL单步语句一一对应的入参清单;通过所述Eclipse工具,根据所述变量测试清单和与各所述SQL单步语句对应的所述入参清单,对各所述SQL单步语句进行动态脚本生成处理,生成与各所述SQL单步语句对应的SQL待测试单步脚本;通过所述Mybatis工具,对所有所述SQL待测试单步脚本进行同步测试,得到与各所述SQL单步语句对应的单步结果;根据所有所述单步结果,输出与所述待测文件对应的测试结果,如此,本申请实现了通过Mybatis工具,对待测文件中的待执行脚本进行单步解析处理,得到多个SQL单步语句,再通过Eclipse工具进行入参识别,并动态脚本生成多个SQL待测试单步脚本,最后运用Mybatis工具进行同步测试获得待测文件的测试结果,因此,通过Mybatis工具和Eclipse工具自动动态生成SQL待测试单步脚本以及并行测试输出测试结果,完成无需测 试人员解读待测文件和编写测试用例,并无需人工判断语法错误,以及无需修改后进行整体编译及运行才输出测试结果,降低了测试人员的要求门槛,缩短了测试周期,提高了测试效率,节省了测试成本。
本申请的一个或多个实施例的细节在下面的附图和描述中提出,本申请的其他特征和优点将从说明书、附图以及权利要求变得明显。
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一实施例中动态同步测试方法的应用环境示意图;
图2是本申请一实施例中动态同步测试方法的流程图;
图3是本申请一实施例中动态同步测试方法的步骤S20的流程图;
图4是本申请一实施例中动态同步测试方法的步骤S202的流程图;
图5是本申请一实施例中动态同步测试方法的步骤S204的流程图;
图6是本申请一实施例中动态同步测试方法的步骤S50的流程图;
图7是本申请一实施例中动态同步测试方法的步骤S502的流程图;
图8是本申请一实施例中动态同步测试装置的原理框图;
图9是本申请一实施例中动态同步测试装置中的解析模块的原理框图;
图10是本申请一实施例中计算机设备的示意图。
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请提供的动态同步测试方法,可应用在如图1的应用环境中,其中,客户端(计算机设备)通过网络与服务器进行通信。其中,客户端(计算机设备)包括但不限于为各种个人计算机、笔记本电脑、智能手机、平板电脑、摄像头和便携式可穿戴设备。服务器可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一实施例中,如图2所示,提供一种动态同步测试方法,其技术方案主要包括以下步骤S10-S60:
S10,获取待测文件;所述待测文件包括数据库信息、待执行脚本和变量测试清单。
可理解地,所述待执行脚本为需要测试的XML格式的网页脚本,所述数据库信息为所述待执行脚本需要访问的数据库的相关信息,例如:数据库信息包括数据表名,数据表字段,数据库对象(存储过程、视图、自定义函数、内置函数)、数据库类型、sql语言关键词等,其中该数据库的存储结构为json文件或Redis中的HashMap,所述json(JavaScript Object Notation,JS对象简谱)文件指一种轻量级的数据交换格式的文件,Redis(Remote Dictionary Server),即远程字典服务,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的接口,HashMap为基于哈希表的Map接口的实现映射操作,所述变量测试清单为测试时输入的入参的集合以和预期的出参集合,所述待测文件为测试人员在对所述待执行脚本进行测试时收集的所述数据库信息、所述待执行脚本和所述变量测试清单。
其中,XML指可扩展标记语言(eXtensible Markup Language),XML被设计用来传输 和存储数据,主要是定义使用标签来表示数据的标记语言的语法。
S20,通过Mybatis工具建立与所述数据库信息对应的源数据库的连接,以及对所述待执行脚本进行单步解析处理,生成至少一个SQL单步语句。
可理解地,所述Mybatis工具为常用的数据库持久层技术的工具,通过Mybatis工具可以设计出与之对应的数据库操作程序单元关联的各个模块功能,即MappedStatement接口,所述MappedStatement接口描述<select|update|insert|delete>或者@Select、@Update等注解配置的与SQL相关的信息。用于实现对包含一条或多条sql语句的XML文件配对生成java程序的接口Mapper文件,其中,所述Mapper文件是用于管理SQL语句的文件,所述Mapper文件分别对相应数据库的查询,***,修改,删除操作的管理,通过所述Mybatis工具根据所述数据库信息建立与其的连接,并根据所述数据库信息构建与该数据库的MappedStatement接口,同时进行所述单步解析处理,所述单步解析处理的过程为对所述待执行脚本进行语法检测和变量检测,再通过校验结果对该待执行脚本修正处理,从修正处理后的所述待执行脚本中解析出与SQL相关的语句,生成Mapper文件,再从该Mapper文件中拆分出独立的SQL语句的过程,解析出与SQL相关的语句的过程为识别出SQL语句中的首尾并通过句首的字符串确定出该SQL语句的类型,并通过与该SQL语句的类型相匹配的句首符和句末符标注,SQL类型包括insert类型(***语句),update类型(更新语句),delete类型(删除语句)、select类型(查询语句)等等,根据解析的SQL类型,检测与所述Mapper文件对应的所述待执行脚本中的语法和变量是否错误,再通过检测结果对该待执行脚本进行修正处理,输出可执行脚本,从该可执行脚本中的拆分出多个所述SQL单步语句,从而得到各个SQL单步语句,所述SQL单步语句为一个可以执行的SQL语句。
在一实施例中,如图3所示,所述步骤S20中,即通过Mybatis工具建立与所述数据库信息对应的源数据库的连接,以及对所述待执行脚本进行单步解析处理,生成至少一个SQL单步语句,包括:
S201,通过所述Mybatis工具,创建连接接口和与所述数据库信息对应的数据库配置文件,并通过所述数据库配置文件建立与所述源数据库的连接。
可理解地,根据所述数据库信息和预先设定的参数,创建与其对应的所述连接接口和所述数据库配置文件,所述预先设定的参数包括数据库连接数及连接标识名等等,所述连接接口为MappedStatement接口,所述数据库配置文件为基于Mybatis工具连接所述源数据库的文件,通过连接所述源数据库才能进行后续的测试。
S202,根据所述变量测试清单,对所述待执行脚本进行语法检测及变量检测,得到检测结果。
可理解地,通过相似匹配算法,快速查询出所述待执行脚本中所有与SQL语法相关的相同或相似的字符串,并对查询到的字符串进行序列标注,生成SQL语法文本,运用语法规则模型对序列标注后的字符串进行规则校验,所述规则校验的处理过程为通过语法规则模型将所述SQL语法文本中的字符串进行字符向量转换,通过字符向量转换后的字符串进行上下文规则识别,识别出与该字符串映射的符合SQL语句的SQL语法的字符串,即根据该字符串的向量和与该字符串向量的相邻的上下文的字符串进行该字符串的语法语义特征提取,对提取出该字符串的语法语义特征进行分类,得到与该字符串匹配的符合SQL语法的字符串结果。
其中,将所述SQL语法文本中与所述字符串结果为不属于语法字符串对应的字符串从所述SQL语法文本中去除,再从所述待执行脚本中去除所述SQL语法文本中的字符串,将所述待执行脚本去除后剩下的文本确定为变量文本,通过字符串匹配算法,将所述变量文本中的字符串与所述变量测试清单中的源变量进行匹配,根据匹配结果标记出所述变量文本中的变量,以及得到与该变量对应的变量结果,所述变量结果为在所述变量测试清单 中与其匹配度最高的变量,根据所有所述字符串结果和所有所述变量结果进行汇总得到所述检测结果。
在一实施例中,如图4所示,所述步骤S202中,即所述根据所述变量测试清单,对所述待执行脚本进行语法检测及变量检测,得到检测结果,包括:
S2021,对所述待执行脚本进行序列标注,得到标注文本。
可理解地,对所述待执行脚本中的各个字符串进行顺序标注,无需对无用的符号进行标注,得到所述标注文本,如此,只需对字符串进行处理。
S2022,通过相似匹配算法,查询出所述标注文本中的待处理字符串。
可理解地,所述相似匹配算法为运用余弦相似度衡量两个字符串之间的相似程度的算法,将所述待执行脚本中的各个字符与SQL语法相关的预设的字符串相对比,计算出各个字符与SQL语法相关的预设的字符串的余弦相似度值,将与大于预设阈值的最大余弦相似度值对应的字符串确定为所述待处理字符串。
S2023,通过语法规则模型对各待处理字符串进行规则校验,得到各待处理字符串的字符串结果。
可理解地,所述语法规则模型为训练完成或者预设的SQL语句的语法规则的模型,对各所述待处理字符串进行字符向量转换,得到各所述待处理字符串的向量,并根据该待处理字符串的向量和与该字符串向量的相邻的上下文的待处理字符串的向量进行该字符串的语法语义特征提取,对提取出该字符串的语法语义特征进行分类,得到与该待处理字符串匹配的符合SQL语法的字符串结果,所述字符串结果表明了该待处理字符串是否为涉及SQL语法的字符串且关联了一个符合SQL语句的语法的字符串。
S2024,根据所有所述字符串结果,对所述待执行脚本进行剔除处理,得到变量文本。
可理解地,对所述待执行脚本中剔除所述字符串结果标记为涉及SQL语法的字符串的所述待处理字符串,将剔除剩下的所有字符串确定为所述变量文本。
S2025,通过字符串匹配算法,从所述变量文本中识别出与所述变量测试清单中的源变量相匹配的变量,得到各所述变量的变量结果。
可理解地,所述字符串匹配算法为运用RK算法将所述变量文本中的字符串与所述变量测试清单中的源变量进行比较,通过哈希值衡量两个字符串的相似度,将与哈希值大于预设哈希阈值对应的字符串确定为待处理变量,将与其相匹配的所述源变量确定为该待处理变量的所述变量结果,如此,可以识别出误输入且相似的字符串。
其中,所述RM算法是通过hash(哈希)的方式减少比较,通过hash的方式比较可以将字符串转变成一个26进制的数之后进行比较。
S2026,将所有所述字符串结果和所有所述变量结果确定为所述检测结果。
可理解地,所述字符串结果和所述变量结果可以确定出错误输入的字符串,并能够匹配出与其对应的符合SQL语句的字符串,为后续修正处理提供了数据依据。
本申请实现了通过对所述待执行脚本进行序列标注,得到标注文本;通过相似匹配算法,查询出所述标注文本中的待处理字符串;通过语法规则模型对各待处理字符串进行规则校验,得到各待处理字符串的字符串结果;根据所有所述字符串结果,对所述待执行脚本进行剔除处理,得到变量文本;通过字符串匹配算法,从所述变量文本中识别出与所述变量测试清单中的源变量相匹配的变量,得到各所述变量的变量结果;将所有所述字符串结果和所有所述变量结果确定为所述检测结果,如此,实现了通过序列标注、相似匹配算法、语法规则模型的规则校验完成语法检测,以及通过字符串匹配算法完成变量检测,能够快速地自动识别出所述待执行脚本中误输入的字符串,并得出与各误输入的字符串对应的修正后的字符串。
S203,根据所述检测结果,对所述待执行脚本进行修正处理,得到可执行脚本。
可理解地,根据所述检测结果,将所有所述字符串结果和所有所述变量结果中的内容 相应替换现有的所述待执行脚本中的内容,从而完成所述修正处理,将经所述修正处理后的所述待执行脚本确定为所述可执行脚本。
S204,对所述可执行脚本进行单步拆分,得到至少一个所述SQL单步语句。
可理解地,所述单步拆分处理为通过所述Mybatis工具生成与所述可执行脚本的Mapper文件,所述Mapper文件是用于管理SQL语句的文件,对所述mapper文件进行单步识别及分割处理,所述单步识别为从该Mapper文件中拆分并解析出独立的SQL语句的过程,解析的过程为运用Mybatis工具对所述可执行脚本中的字符串进行识别,识别出独立SQL语句的句首和句尾,然后进行分割出所诉SQL单步语句。
在一实施例中,如图5所示,所述步骤S204中,即所述对所述可执行脚本进行单步拆分,得到至少一个所述SQL单步语句,包括:
S2041,对所述可执行脚本进行mapper生成,生成与所述待执行脚本对应的mapper文件。
可理解地,所述mapper生成的过程为通过Mybatis工具中的Maven插件获取预设的generatorConfig配置文件,所述generatorConfig配置文件包含了class对象的设置及模板,根据所述generatorConfig配置文件生成DAO层代码,所述DAO层代码为数据访问层的SQL代码,并将SQL代码中的字段通过关联表进行comment注释,从而生成所述mapper文件。
S2042,对所述mapper文件进行单步识别及分割处理,分割出所述SQL单步语句。
可理解地,所述单步识别为从该Mapper文件中拆分并解析出独立的SQL语句的过程,解析的过程为运用Mybatis工具对所述可执行脚本中的字符串进行识别,识别出独立SQL语句的句首和句尾,然后进行分割出所诉SQL单步语句。
本申请实现了对所述可执行脚本进行mapper生成,生成与所述待执行脚本对应的mapper文件;对所述mapper文件进行单步识别及分割处理,分割出所述SQL单步语句,如此,能够准确地分割出独立的SQL单步语句。
本申请实现了通过所述Mybatis工具,创建连接接口和与所述数据库信息对应的数据库配置文件,并通过所述数据库配置文件建立与所述源数据库的连接;根据所述变量测试清单,对所述待执行脚本进行语法检测及变量检测,得到检测结果;根据所述检测结果,对所述待执行脚本进行修正处理,得到可执行脚本;对所述可执行脚本进行单步拆分,得到至少一个所述SQL单步语句,如此,实现了通过Mybatis工具自动与源数据库建立谅解,并自动语法检测及变量检测,修正错误的SQL语句中的语法和变量错误,并自动单步拆分出独立的SQL单步语句,因此,减少了人工判断语法的成本,以及避免变量输入错误的情况,提高了测试效率和缩短了测试周期,提高了测试准确率。
S30,通过Eclipse工具,对各所述SQL单步语句进行入参识别,得到与各所述SQL单步语句一一对应的入参清单。
可理解地,所述Eclipse工具为基于Eclipse插件(集成开发环境插件)开发的集成工具,通过所述Eclipse工具可以实现识别出所述Mybatis工具输出的SQL单步语句中的入参变量,并根据各入参变量及其类型,生成与该入参变量对应的输入变量,通过该输入变量输入的内容可以生成需要测试的SQL待测试单步脚本,所述入参识别的过程为通过所述Eclipse工具,将各所述SQL单步语句中的与SQL语法相关的内容进行去除,将去除后的所述SQL单步语句进行入参特征提取,将提取的所述入参特征进行识别,识别出与所述SQL单步语句对应的入参变量,汇总与所述SQL单步语句对应的所有入参变量,将其确定为与所述SQL单步语句对应的所述入参清单
其中,所述入参特征为入参与SQL符号相邻具备的特征,例如在“where”字符串之后的字符串或/和SQL符号(例如:“=”等等)或/和SQL逻辑字符串(例如:“and”、“or”等等)。
S40,通过所述Eclipse工具,根据所述变量测试清单和与各所述SQL单步语句对应的所述入参清单,对各所述SQL单步语句进行动态脚本生成处理,生成与各所述SQL单步语句对应的SQL待测试单步脚本。
可理解地,所述变量测试清单包括源变量、源值、预期变量和预期值,所述源变量为与所述数据库信息对应的数据库中的字段,所述源值为所述源变量根据其数据类型设置的入参值,所述预期变量为输出的出参的表中的字段,所述预期值为与所述预期变量一一对应的值,是指预期能够输出的值,所述动态脚本生成处理为获取与所述SQL单步语句对应的所述入参清单中的入参变量,从所述变量测试清单中查找入参变量,并从获取与查找到的入参变量相同的所述源变量对应的所述源值,根据获取的所有所述源值对所述SQL单步语句进行组合成不同的SQL待测试单步脚本的过程,实现了自动动态调整入参变量生成不同的脚本,无需人工编写,提高了编写效率和准确率,例如:SQL单步语句中涉及两个入参变量,分别为“name”和“password”,在所述变量测试清单中与“name”相同的源变量对应的源值包括3个值,与“password”相同的源变量对应的源值包括4个值,相当于通过所述Eclipse工具,弹出“name”和“password”两个变量的输入对话框,分别对这两个输入对话框输入3个值中的一个和4个值中的一个,按照所述SQL单步语句中的语法格式组合成12个不同情况的输入,生成与该SQL单步语句对应的12个不同的SQL待测试单步脚本,所述SQL待测试单步脚本为经所述动态脚本生成处理之后获得且可以执行的脚本。
其中,所述动态脚本生成处理过程中,如果所述SQL单步语句是静态SQL语句,就将所述SQL单步语句中的“#{}”参数替换成与其相应的源值;如果所述SQL单步语句是动态SQL语句,则需要对<if><foreach>等标签进行与其对应的解析,解析成只包含“#{}”的StaticSqlSource,从而将其转换成静态SQL语句,再对转换后的静态SQL语句中的“#{}”参数替换成与其相应的源值。
S50,通过所述Mybatis工具,对所有所述SQL待测试单步脚本进行同步测试,得到与各所述SQL单步语句对应的单步结果。
可理解地,所述同步测试处理的过程为通过所述Mybatis工具对所有所述SQL待测试单步脚本进行同步执行,得到各所述SQL待测试单步脚本的单步执行结果;根据所述变量测试清单和所有所述单步执行结果,运用多线程对各所述SQL待测试单步脚本进行同步校验处理,得到各所述SQL单步语句相应的单步结果,其中,所述单步结果为执行所述SLQ单步语句后获得的校验处理后的结果。
在一实施例中,如图6所示,所述步骤S50中,即所述通过所述Mybatis工具,对所有所述SQL待测试单步脚本进行同步测试,得到与各所述SQL单步语句对应的单步结果,包括:
S501,同步执行所有所述SQL待测试单步脚本,得到与各所述SQL待测试单步脚本一一对应的单步执行结果。
可理解地,通过资源调度策略分派到多个线程,通过多个线程同步执行所有所述SQL待测试单步脚本,得到与各所述SQL待测试单步脚本一一对应的单步执行结果。
S502,根据所述变量测试清单和所有所述单步执行结果,对各所述SQL待测试单步脚本进行同步校验处理,得到与各所述SQL单步语句对应的单步结果。
可理解地,所述同步校验处理为同步查找与所述单步执行结果中的输出变量相同的预期变量,将与所述单步执行结果中的所述输出变量对应的输出变量值和相应的所述预期值进行比对,校验出与该SQL单步语句对应的单步结果的处理过程,其中查找的过程运用的算法可以根据需求设定,比如字符串匹配算法中的BF、RK或BM算法等等,所述同步查找为通过多个线程同步查找各个所述输出变量。
本申请实现了通过同步执行所有所述SQL待测试单步脚本,得到与各所述SQL待测 试单步脚本一一对应的单步执行结果;根据所述变量测试清单和所有所述单步执行结果,对各所述SQL待测试单步脚本进行同步校验处理,得到与各所述SQL单步语句对应的单步结果,如此,能够多线程执行加快测试速度,提高了测试效率。
在一实施例中,如图7所示,所述步骤S502中,即所述根据所述变量测试清单和所有所述单步执行结果,对各所述SQL待测试单步脚本进行同步校验处理,得到与各所述SQL单步语句对应的单步结果,包括:
S5021,运用快速查询算法,在所述变量测试清单中同步查找与各所述单步执行结果中的输出变量相同的预期变量,获取与查找到的所述预期变量对应的预期值。
可理解地,所述快速查询算法简称为BM(boyermoore)算法,所述快速查询算法为一种从右往左的字符串匹配算法,分别包含坏字符算法和好后缀算法,这两个算法分别计算在主串中我们能够向后移动模式串长度,然后选取这两个算法中移动大的,作为我们真正移动的距离,通过所述快速查询算法,从所述变量测试清单中运用多线程同步查找与各个所述输出变量相同的所述预期变量,并获取与该预期变量一一对应的所述预期值。
其中,坏字符算法为当出现一个坏字符时,向右移动模式串,让模式串中最靠右的对应字符与坏字符相对,然后继续匹配主串的算法;好后缀算法为在模式串中有子串匹配出好后缀时,此时移动模式串,让该子串和好后缀对齐即可,如果超过一个子串匹配上好后缀,则选择最靠右边的子串对齐,防止有漏匹配的;在模式串中没有子串匹配出好后缀时,则需要寻找模式串的一个最长前缀,并让该前缀等于好后缀的后缀,寻找到该前缀后,让该前缀和好后缀对齐即可;在模式串中没有子串匹配出好后缀时,且在模式串中找不到最长前缀时,让该前缀等于好后缀的后缀,直接移动模式到好后缀的下一个字符。
S5022,将与各所述单步执行结果中的所述输出变量对应的输出变量值和获取的与其相应的所述预期值进行比对,得到所述单步结果。
可理解地,通过多个线程同步将所述输出变量值和与其相应的所述预期值进行比对,得到两者之间比对的差值,根据该差值可以确定出与所述单步执行结果一一对应的所述单步结果,比对的方式可以根据需求设定,比如将所述输出变量值和所述预测值分别转换成向量,即将所述输出变量值中的各个字符串进行字符向量转换,将转换后的所述输出变量值和所述预测值的向量进行对比,判断对比结果是否在预设范围内,从而确定所述单步结果是否为通过,即若所述对比结果在预设范围内,则确定所述单步结果为通过,若所述对比结果不在预设范围内,则确定所述单步结果为不通过。
本申请实现了通过运用快速查询算法,在所述变量测试清单中同步查找与各所述单步执行结果中的输出变量相同的预期变量,获取与查找到的所述预期变量对应的预期值;将与各所述单步执行结果中的所述输出变量对应的输出变量值和获取的与其相应的所述预期值进行比对,得到所述单步结果,如此,实现了运用快速查询算法,自动校验各所述单步执行结果,输出相应的单步结果,能够自动完成单步执行结果的校验,无需人工校验,减少了人工成本,提高了校验效率,提高了校验的准确率。
S60,根据所有所述单步结果,输出与所述待测文件对应的测试结果。
可理解地,在所有所述单步结果均为校验合格时,确定所述测试结果为测试合格;在任一所述单步结果为校验不合格时,确定所述测试结果为测试不合格,且将校验不合格的所述单步结果通过列表呈现。
本申请通过获取待测文件;所述待测文件包括数据库信息、待执行脚本和变量测试清单;通过Mybatis工具建立与所述数据库信息对应的源数据库的连接,以及对所述待执行脚本进行单步解析处理,生成至少一个SQL单步语句;通过Eclipse工具,对各所述SQL单步语句进行入参识别,得到与各所述SQL单步语句一一对应的入参清单;通过所述Eclipse工具,根据所述变量测试清单和与各所述SQL单步语句对应的所述入参清单,对各所述SQL单步语句进行动态脚本生成处理,生成与各所述SQL单步语句对应的SQL待 测试单步脚本;通过所述Mybatis工具,对所有所述SQL待测试单步脚本进行同步测试,得到与各所述SQL单步语句对应的单步结果;根据所有所述单步结果,输出与所述待测文件对应的测试结果,如此,实现了通过Mybatis工具,对待测文件中的待执行脚本进行单步解析处理,得到多个SQL单步语句,再通过Eclipse工具进行入参识别,并动态脚本生成多个SQL待测试单步脚本,最后运用Mybatis工具进行同步测试获得待测文件的测试结果,因此,通过Mybatis工具和Eclipse工具自动动态生成SQL待测试单步脚本以及并行测试输出测试结果,完成无需测试人员解读待测文件和编写测试用例,并无需人工判断语法错误,以及无需修改后进行整体编译及运行才输出测试结果,降低了测试人员的要求门槛,缩短了测试周期,提高了测试效率,节省了测试成本。
在一实施例中,提供一种动态同步测试装置,该动态同步测试装置与上述实施例中动态同步测试方法一一对应。如图8所示,该动态同步测试装置包括获取模块11、解析模块12、识别模块13、生成模块14、测试模块15和输出模块16。各功能模块详细说明如下:
获取模块11,用于获取待测文件;所述待测文件包括数据库信息、待执行脚本和变量测试清单;
解析模块12,用于通过Mybatis工具建立与所述数据库信息对应的源数据库的连接,以及对所述待执行脚本进行单步解析处理,生成至少一个SQL单步语句;
识别模块13,用于通过Eclipse工具,对各所述SQL单步语句进行入参识别,得到与各所述SQL单步语句一一对应的入参清单;
生成模块14,用于通过所述Eclipse工具,根据所述变量测试清单和与各所述SQL单步语句对应的所述入参清单,对各所述SQL单步语句进行动态脚本生成处理,生成与各所述SQL单步语句对应的SQL待测试单步脚本;
测试模块15,用于通过所述Mybatis工具,对所有所述SQL待测试单步脚本进行同步测试,得到与各所述SQL单步语句对应的单步结果;
输出模块16,用于根据所有所述单步结果,输出与所述待测文件对应的测试结果。
在一实施例中,如图9所示,所述解析模块12包括:
创建子模块21,用于通过所述Mybatis工具,创建连接接口和与所述数据库信息对应的数据库配置文件,并通过所述数据库配置文件建立与所述源数据库的连接;
检测子模块22,用于根据所述变量测试清单,对所述待执行脚本进行语法检测及变量检测,得到检测结果;
修正子模块23,用于根据所述检测结果,对所述待执行脚本进行修正处理,得到可执行脚本;
拆分子模块24,用于对所述可执行脚本进行单步拆分,得到至少一个所述SQL单步语句。
关于动态同步测试装置的具体限定可以参见上文中对于动态同步测试方法的限定,在此不再赘述。上述动态同步测试装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是客户端或者服务端,其内部结构图可以如图10所示。该计算机设备包括通过***总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括可读存储介质、内存储器。该可读存储介质存储有操作***、计算机可读指令和数据库。该内存储器为可读存储介质中的操作***和计算机可读指令的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机可读指令被处理器执行时以实现一种动态同步测试方法。本实施例所提供的可读存储介质包括非易失性可读存储介质和易失性可读存储介质。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机可读指令,处理器执行计算机可读指令时实现上述实施例中动态同步测试方法。
在一个实施例中,提供了一个或多个存储有计算机可读指令的可读存储介质,本实施例所提供的可读存储介质包括非易失性可读存储介质和易失性可读存储介质;该可读存储介质上存储有计算机可读指令,该计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器实现上述实施例中动态同步测试方法。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机可读指令来指令相关的硬件来完成,所述的计算机可读指令可存储于一非易失性计算机可读取存储介质或易失性可读存储介质中,该计算机可读指令在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。
Claims (20)
- 一种动态同步测试方法,其中,包括:获取待测文件;所述待测文件包括数据库信息、待执行脚本和变量测试清单;通过Mybatis工具建立与所述数据库信息对应的源数据库的连接,以及对所述待执行脚本进行单步解析处理,生成至少一个SQL单步语句;通过Eclipse工具,对各所述SQL单步语句进行入参识别,得到与各所述SQL单步语句一一对应的入参清单;通过所述Eclipse工具,根据所述变量测试清单和与各所述SQL单步语句对应的所述入参清单,对各所述SQL单步语句进行动态脚本生成处理,生成与各所述SQL单步语句对应的SQL待测试单步脚本;通过所述Mybatis工具,对所有所述SQL待测试单步脚本进行同步测试,得到与各所述SQL单步语句对应的单步结果;根据所有所述单步结果,输出与所述待测文件对应的测试结果。
- 如权利要求1所述的动态同步测试方法,其中,所述通过Mybatis工具建立与所述数据库信息对应的源数据库的连接,以及对所述待执行脚本进行单步解析处理,生成至少一个SQL单步语句,包括:通过所述Mybatis工具,创建连接接口和与所述数据库信息对应的数据库配置文件,并通过所述数据库配置文件建立与所述源数据库的连接;根据所述变量测试清单,对所述待执行脚本进行语法检测及变量检测,得到检测结果;根据所述检测结果,对所述待执行脚本进行修正处理,得到可执行脚本;对所述可执行脚本进行单步拆分,得到至少一个所述SQL单步语句。
- 如权利要求2所述的动态同步测试方法,其中,所述根据所述变量测试清单,对所述待执行脚本进行语法检测及变量检测,得到检测结果,包括:对所述待执行脚本进行序列标注,得到标注文本;通过相似匹配算法,查询出所述标注文本中的待处理字符串;通过语法规则模型对各待处理字符串进行规则校验,得到各待处理字符串的字符串结果;根据所有所述字符串结果,对所述待执行脚本进行剔除处理,得到变量文本;通过字符串匹配算法,从所述变量文本中识别出与所述变量测试清单中的源变量相匹配的变量,得到各所述变量的变量结果;将所有所述字符串结果和所有所述变量结果确定为所述检测结果。
- 如权利要求2所述的动态同步测试方法,其中,所述对所述可执行脚本进行单步拆分,得到至少一个所述SQL单步语句,包括:对所述可执行脚本进行mapper生成,生成与所述待执行脚本对应的mapper文件;对所述mapper文件进行单步识别及分割处理,分割出所述SQL单步语句。
- 如权利要求1所述的动态同步测试方法,其中,所述通过所述Mybatis工具,对所有所述SQL待测试单步脚本进行同步测试,得到与各所述SQL单步语句对应的单步结果,包括:同步执行所有所述SQL待测试单步脚本,得到与各所述SQL待测试单步脚本一一对应的单步执行结果;根据所述变量测试清单和所有所述单步执行结果,对各所述SQL待测试单步脚本进行同步校验处理,得到与各所述SQL单步语句对应的单步结果。
- 如权利要求1所述的动态同步测试方法,其中,所述根据所述变量测试清单和所有所述单步执行结果,对各所述SQL待测试单步脚本进行同步校验处理,得到与各所述SQL 单步语句对应的单步结果,包括:运用快速查询算法,在所述变量测试清单中同步查找与各所述单步执行结果中的输出变量相同的预期变量,获取与查找到的所述预期变量对应的预期值;将与各所述单步执行结果中的所述输出变量对应的输出变量值和获取的与其相应的所述预期值进行比对,得到所述单步结果。
- 一种动态同步测试装置,其中,包括:获取模块,用于获取待测文件;所述待测文件包括数据库信息、待执行脚本和变量测试清单;解析模块,用于通过Mybatis工具建立与所述数据库信息对应的源数据库的连接,以及对所述待执行脚本进行单步解析处理,生成至少一个SQL单步语句;识别模块,用于通过Eclipse工具,对各所述SQL单步语句进行入参识别,得到与各所述SQL单步语句一一对应的入参清单;生成模块,用于通过所述Eclipse工具,根据所述变量测试清单和与各所述SQL单步语句对应的所述入参清单,对各所述SQL单步语句进行动态脚本生成处理,生成与各所述SQL单步语句对应的SQL待测试单步脚本;测试模块,用于通过所述Mybatis工具,对所有所述SQL待测试单步脚本进行同步测试,得到与各所述SQL单步语句对应的单步结果;输出模块,用于根据所有所述单步结果,输出与所述待测文件对应的测试结果。
- 如权利要求7所述的动态同步测试装置,其中,所述解析模块包括:创建子模块,用于通过所述Mybatis工具,创建连接接口和与所述数据库信息对应的数据库配置文件,并通过所述数据库配置文件建立与所述源数据库的连接;检测子模块,用于根据所述变量测试清单,对所述待执行脚本进行语法检测及变量检测,得到检测结果;修正子模块,用于根据所述检测结果,对所述待执行脚本进行修正处理,得到可执行脚本;拆分子模块,用于对所述可执行脚本进行单步拆分,得到至少一个所述SQL单步语句。
- 一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机可读指令,其中,所述处理器执行所述计算机可读指令时实现如下步骤:获取待测文件;所述待测文件包括数据库信息、待执行脚本和变量测试清单;通过Mybatis工具建立与所述数据库信息对应的源数据库的连接,以及对所述待执行脚本进行单步解析处理,生成至少一个SQL单步语句;通过Eclipse工具,对各所述SQL单步语句进行入参识别,得到与各所述SQL单步语句一一对应的入参清单;通过所述Eclipse工具,根据所述变量测试清单和与各所述SQL单步语句对应的所述入参清单,对各所述SQL单步语句进行动态脚本生成处理,生成与各所述SQL单步语句对应的SQL待测试单步脚本;通过所述Mybatis工具,对所有所述SQL待测试单步脚本进行同步测试,得到与各所述SQL单步语句对应的单步结果;根据所有所述单步结果,输出与所述待测文件对应的测试结果。
- 如权利要求9所述的计算机设备,其中,所述通过Mybatis工具建立与所述数据库信息对应的源数据库的连接,以及对所述待执行脚本进行单步解析处理,生成至少一个SQL单步语句,包括:通过所述Mybatis工具,创建连接接口和与所述数据库信息对应的数据库配置文件,并通过所述数据库配置文件建立与所述源数据库的连接;根据所述变量测试清单,对所述待执行脚本进行语法检测及变量检测,得到检测结果;根据所述检测结果,对所述待执行脚本进行修正处理,得到可执行脚本;对所述可执行脚本进行单步拆分,得到至少一个所述SQL单步语句。
- 如权利要求10所述的计算机设备,其中,所述根据所述变量测试清单,对所述待执行脚本进行语法检测及变量检测,得到检测结果,包括:对所述待执行脚本进行序列标注,得到标注文本;通过相似匹配算法,查询出所述标注文本中的待处理字符串;通过语法规则模型对各待处理字符串进行规则校验,得到各待处理字符串的字符串结果;根据所有所述字符串结果,对所述待执行脚本进行剔除处理,得到变量文本;通过字符串匹配算法,从所述变量文本中识别出与所述变量测试清单中的源变量相匹配的变量,得到各所述变量的变量结果;将所有所述字符串结果和所有所述变量结果确定为所述检测结果。
- 如权利要求10所述的计算机设备,其中,所述对所述可执行脚本进行单步拆分,得到至少一个所述SQL单步语句,包括:对所述可执行脚本进行mapper生成,生成与所述待执行脚本对应的mapper文件;对所述mapper文件进行单步识别及分割处理,分割出所述SQL单步语句。
- 如权利要求9所述的计算机设备,其中,所述通过所述Mybatis工具,对所有所述SQL待测试单步脚本进行同步测试,得到与各所述SQL单步语句对应的单步结果,包括:同步执行所有所述SQL待测试单步脚本,得到与各所述SQL待测试单步脚本一一对应的单步执行结果;根据所述变量测试清单和所有所述单步执行结果,对各所述SQL待测试单步脚本进行同步校验处理,得到与各所述SQL单步语句对应的单步结果。
- 如权利要求9所述的计算机设备,其中,所述根据所述变量测试清单和所有所述单步执行结果,对各所述SQL待测试单步脚本进行同步校验处理,得到与各所述SQL单步语句对应的单步结果,包括:运用快速查询算法,在所述变量测试清单中同步查找与各所述单步执行结果中的输出变量相同的预期变量,获取与查找到的所述预期变量对应的预期值;将与各所述单步执行结果中的所述输出变量对应的输出变量值和获取的与其相应的所述预期值进行比对,得到所述单步结果。
- 一个或多个存储有计算机可读指令的可读存储介质,其中,所述计算机可读指令被一个或多个处理器执行时,使得所述一个或多个处理器执行如下步骤:获取待测文件;所述待测文件包括数据库信息、待执行脚本和变量测试清单;通过Mybatis工具建立与所述数据库信息对应的源数据库的连接,以及对所述待执行脚本进行单步解析处理,生成至少一个SQL单步语句;通过Eclipse工具,对各所述SQL单步语句进行入参识别,得到与各所述SQL单步语句一一对应的入参清单;通过所述Eclipse工具,根据所述变量测试清单和与各所述SQL单步语句对应的所述入参清单,对各所述SQL单步语句进行动态脚本生成处理,生成与各所述SQL单步语句对应的SQL待测试单步脚本;通过所述Mybatis工具,对所有所述SQL待测试单步脚本进行同步测试,得到与各所述SQL单步语句对应的单步结果;根据所有所述单步结果,输出与所述待测文件对应的测试结果。
- 如权利要求15所述的可读存储介质,其中,所述通过Mybatis工具建立与所述数据库信息对应的源数据库的连接,以及对所述待执行脚本进行单步解析处理,生成至少一个SQL单步语句,包括:通过所述Mybatis工具,创建连接接口和与所述数据库信息对应的数据库配置文件,并通过所述数据库配置文件建立与所述源数据库的连接;根据所述变量测试清单,对所述待执行脚本进行语法检测及变量检测,得到检测结果;根据所述检测结果,对所述待执行脚本进行修正处理,得到可执行脚本;对所述可执行脚本进行单步拆分,得到至少一个所述SQL单步语句。
- 如权利要求16所述的可读存储介质,其中,所述根据所述变量测试清单,对所述待执行脚本进行语法检测及变量检测,得到检测结果,包括:对所述待执行脚本进行序列标注,得到标注文本;通过相似匹配算法,查询出所述标注文本中的待处理字符串;通过语法规则模型对各待处理字符串进行规则校验,得到各待处理字符串的字符串结果;根据所有所述字符串结果,对所述待执行脚本进行剔除处理,得到变量文本;通过字符串匹配算法,从所述变量文本中识别出与所述变量测试清单中的源变量相匹配的变量,得到各所述变量的变量结果;将所有所述字符串结果和所有所述变量结果确定为所述检测结果。
- 如权利要求16所述的可读存储介质,其中,所述对所述可执行脚本进行单步拆分,得到至少一个所述SQL单步语句,包括:对所述可执行脚本进行mapper生成,生成与所述待执行脚本对应的mapper文件;对所述mapper文件进行单步识别及分割处理,分割出所述SQL单步语句。
- 如权利要求15所述的可读存储介质,其中,所述通过所述Mybatis工具,对所有所述SQL待测试单步脚本进行同步测试,得到与各所述SQL单步语句对应的单步结果,包括:同步执行所有所述SQL待测试单步脚本,得到与各所述SQL待测试单步脚本一一对应的单步执行结果;根据所述变量测试清单和所有所述单步执行结果,对各所述SQL待测试单步脚本进行同步校验处理,得到与各所述SQL单步语句对应的单步结果。
- 如权利要求15所述的可读存储介质,其中,所述根据所述变量测试清单和所有所述单步执行结果,对各所述SQL待测试单步脚本进行同步校验处理,得到与各所述SQL单步语句对应的单步结果,包括:运用快速查询算法,在所述变量测试清单中同步查找与各所述单步执行结果中的输出变量相同的预期变量,获取与查找到的所述预期变量对应的预期值;将与各所述单步执行结果中的所述输出变量对应的输出变量值和获取的与其相应的所述预期值进行比对,得到所述单步结果。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110449563.9A CN112988595A (zh) | 2021-04-25 | 2021-04-25 | 动态同步测试方法、装置、设备及存储介质 |
CN202110449563.9 | 2021-04-25 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2022227314A1 true WO2022227314A1 (zh) | 2022-11-03 |
Family
ID=76340088
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2021/109147 WO2022227314A1 (zh) | 2021-04-25 | 2021-07-29 | 动态同步测试方法、装置、设备及存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN112988595A (zh) |
WO (1) | WO2022227314A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116032813A (zh) * | 2022-12-29 | 2023-04-28 | 龙尚科技(上海)有限公司 | 通信模块测试方法、装置、电子设备及存储介质 |
CN116366609A (zh) * | 2023-06-02 | 2023-06-30 | 天津金城银行股份有限公司 | 全局唯一标识生成方法、***、计算机和可读存储介质 |
CN116701237A (zh) * | 2023-08-09 | 2023-09-05 | 北京集度科技有限公司 | 测试脚本生成及测试方法、设备及存储介质 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112988595A (zh) * | 2021-04-25 | 2021-06-18 | 深圳壹账通智能科技有限公司 | 动态同步测试方法、装置、设备及存储介质 |
CN116881244B (zh) * | 2023-06-05 | 2024-03-26 | 易智瑞信息技术有限公司 | 一种基于列存数据库的空间数据的实时处理方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100287214A1 (en) * | 2009-05-08 | 2010-11-11 | Microsoft Corporation | Static Analysis Framework for Database Applications |
CN109101415A (zh) * | 2018-06-25 | 2018-12-28 | 平安科技(深圳)有限公司 | 基于数据库比对的接口测试方法、***、设备和存储介质 |
CN109408381A (zh) * | 2018-10-10 | 2019-03-01 | 四川新网银行股份有限公司 | 一种基于数据校验模板的产品数据自动校验平台及方法 |
CN110221967A (zh) * | 2019-05-20 | 2019-09-10 | 深圳壹账通智能科技有限公司 | 测试数据构造方法、装置、计算机设备和存储介质 |
CN112988595A (zh) * | 2021-04-25 | 2021-06-18 | 深圳壹账通智能科技有限公司 | 动态同步测试方法、装置、设备及存储介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9823995B2 (en) * | 2014-08-28 | 2017-11-21 | Sap Se | Structured query language debugger |
CN108399130A (zh) * | 2018-02-28 | 2018-08-14 | 平安科技(深圳)有限公司 | 自动生成测试案例的方法、装置、设备及可读存储介质 |
CN110347598B (zh) * | 2019-07-10 | 2023-11-28 | 上海达梦数据库有限公司 | 一种测试脚本生成方法、装置、服务器及存储介质 |
CN110765152B (zh) * | 2019-09-18 | 2023-05-30 | 平安科技(深圳)有限公司 | Sql提取方法、装置、计算机设备和存储介质 |
-
2021
- 2021-04-25 CN CN202110449563.9A patent/CN112988595A/zh active Pending
- 2021-07-29 WO PCT/CN2021/109147 patent/WO2022227314A1/zh unknown
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100287214A1 (en) * | 2009-05-08 | 2010-11-11 | Microsoft Corporation | Static Analysis Framework for Database Applications |
CN109101415A (zh) * | 2018-06-25 | 2018-12-28 | 平安科技(深圳)有限公司 | 基于数据库比对的接口测试方法、***、设备和存储介质 |
CN109408381A (zh) * | 2018-10-10 | 2019-03-01 | 四川新网银行股份有限公司 | 一种基于数据校验模板的产品数据自动校验平台及方法 |
CN110221967A (zh) * | 2019-05-20 | 2019-09-10 | 深圳壹账通智能科技有限公司 | 测试数据构造方法、装置、计算机设备和存储介质 |
CN112988595A (zh) * | 2021-04-25 | 2021-06-18 | 深圳壹账通智能科技有限公司 | 动态同步测试方法、装置、设备及存储介质 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116032813A (zh) * | 2022-12-29 | 2023-04-28 | 龙尚科技(上海)有限公司 | 通信模块测试方法、装置、电子设备及存储介质 |
CN116032813B (zh) * | 2022-12-29 | 2024-07-12 | 龙尚科技(上海)有限公司 | 通信模块测试方法、装置、电子设备及存储介质 |
CN116366609A (zh) * | 2023-06-02 | 2023-06-30 | 天津金城银行股份有限公司 | 全局唯一标识生成方法、***、计算机和可读存储介质 |
CN116366609B (zh) * | 2023-06-02 | 2023-09-01 | 天津金城银行股份有限公司 | 全局唯一标识生成方法、***、计算机和可读存储介质 |
CN116701237A (zh) * | 2023-08-09 | 2023-09-05 | 北京集度科技有限公司 | 测试脚本生成及测试方法、设备及存储介质 |
CN116701237B (zh) * | 2023-08-09 | 2023-12-29 | 北京集度科技有限公司 | 测试脚本生成及测试方法、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112988595A (zh) | 2021-06-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2022227314A1 (zh) | 动态同步测试方法、装置、设备及存储介质 | |
WO2021037196A1 (zh) | 智能合约代码漏洞检测方法、装置、计算机设备和存储介质 | |
US8782609B2 (en) | Test failure bucketing | |
WO2022142613A1 (zh) | 训练语料扩充方法及装置、意图识别模型训练方法及装置 | |
AU2010319344B2 (en) | Managing record format information | |
US8887135B2 (en) | Generating test cases for functional testing of a software application | |
CN113220782B (zh) | 多元测试数据源生成方法、装置、设备及介质 | |
WO2021217846A1 (zh) | 接口数据处理方法、装置、计算机设备和存储介质 | |
WO2021258848A1 (zh) | 数据字典生成方法、数据查询方法、装置、设备及介质 | |
WO2020206840A1 (zh) | 代码翻译方法、装置、计算机设备和存储介质 | |
CN109325042B (zh) | 处理模版获取方法、表格处理方法、装置、设备及介质 | |
JP2018505506A (ja) | 機械ベースの命令編集 | |
CN112181489A (zh) | 代码迁移方法、装置、计算机设备及存储介质 | |
WO2020206838A1 (zh) | 代码片段翻译方法、装置、计算机设备和存储介质 | |
CN113961768B (zh) | 敏感词检测方法、装置、计算机设备和存储介质 | |
CN115827895A (zh) | 一种漏洞知识图谱处理方法、装置、设备及介质 | |
CN111897946A (zh) | 漏洞补丁推荐方法、***、计算机设备和存储介质 | |
CN108388606B (zh) | 一种校验Sql语句中库表字段名的方法以及计算机设备 | |
CN110955608A (zh) | 测试数据处理方法、装置、计算机设备和存储介质 | |
CN106547765B (zh) | 基于sql的数据库管理方法及装置 | |
CN111309596A (zh) | 数据库测试方法、装置、终端设备及存储介质 | |
US10592400B2 (en) | System and method for creating variants in a test database during various test stages | |
WO2021259290A1 (zh) | 存储过程转换方法、装置、设备和存储介质 | |
GB2513348A (en) | Translation validation | |
WO2019148797A1 (zh) | 自然语言处理方法、装置、计算机设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 21938780 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
32PN | Ep: public notification in the ep bulletin as address of the adressee cannot be established |
Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205A DATED 220324) |