CN112988595A - 动态同步测试方法、装置、设备及存储介质 - Google Patents

动态同步测试方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN112988595A
CN112988595A CN202110449563.9A CN202110449563A CN112988595A CN 112988595 A CN112988595 A CN 112988595A CN 202110449563 A CN202110449563 A CN 202110449563A CN 112988595 A CN112988595 A CN 112988595A
Authority
CN
China
Prior art keywords
sql
script
statement
variable
tested
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
CN202110449563.9A
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.)
OneConnect Smart Technology Co Ltd
OneConnect Financial Technology Co Ltd Shanghai
Original Assignee
OneConnect Financial Technology Co Ltd Shanghai
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 OneConnect Financial Technology Co Ltd Shanghai filed Critical OneConnect Financial Technology Co Ltd Shanghai
Priority to CN202110449563.9A priority Critical patent/CN112988595A/zh
Publication of CN112988595A publication Critical patent/CN112988595A/zh
Priority to PCT/CN2021/109147 priority patent/WO2022227314A1/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
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites

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

本发明涉及功能测试领域,本发明公开了一种动态同步测试方法、装置、设备及存储介质,所述方法包括:通过获取待测文件;通过Mybatis工具建立与数据库信息对应的源数据库的连接,以及对待执行脚本进行单步解析处理,生成SQL单步语句;通过Eclipse工具,对各SQL单步语句进行入参识别,得到入参清单;通过Eclipse工具,根据变量测试清单和入参清单,对各SQL单步语句进行动态脚本生成处理,生成SQL待测试单步脚本;通过Mybatis工具,对所有SQL待测试单步脚本进行同步测试,得到单步结果,并输出与待测文件对应的测试结果。因此,本发明实现了通过Mybatis工具和Eclipse工具自动动态生成SQL待测试单步脚本以及并行测试输出测试结果,缩短了测试周期,节省了测试成本。

Description

动态同步测试方法、装置、设备及存储介质
技术领域
本发明涉及功能测试技术领域,尤其涉及一种动态同步测试方法、装置、设备及存储介质。
背景技术
目前,基于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待测试单步脚本,最后运用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 ObjectNotation,JS对象简谱)文件指一种轻量级的数据交换格式的文件,Redis(RemoteDictionary 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(boyer moore)算法,所述快速查询算法为一种从右往左的字符串匹配算法,分别包含坏字符算法和好后缀算法,这两个算法分别计算在主串中我们能够向后移动模式串长度,然后选取这两个算法中移动大的,作为我们真正移动的距离,通过所述快速查询算法,从所述变量测试清单中运用多线程同步查找与各个所述输出变量相同的所述预期变量,并获取与该预期变量一一对应的所述预期值。
其中,坏字符算法为当出现一个坏字符时,向右移动模式串,让模式串中最靠右的对应字符与坏字符相对,然后继续匹配主串的算法;好后缀算法为在模式串中有子串匹配出好后缀时,此时移动模式串,让该子串和好后缀对齐即可,如果超过一个子串匹配上好后缀,则选择最靠右边的子串对齐,防止有漏匹配的;在模式串中没有子串匹配出好后缀时,则需要寻找模式串的一个最长前缀,并让该前缀等于好后缀的后缀,寻找到该前缀后,让该前缀和好后缀对齐即可;在模式串中没有子串匹配出好后缀时,且在模式串中找不到最长前缀时,让该前缀等于好后缀的后缀,直接移动模式到好后缀的下一个字符。
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 (10)

1.一种动态同步测试方法,其特征在于,包括:
获取待测文件;所述待测文件包括数据库信息、待执行脚本和变量测试清单;
通过Mybatis工具建立与所述数据库信息对应的源数据库的连接,以及对所述待执行脚本进行单步解析处理,生成至少一个SQL单步语句;
通过Eclipse工具,对各所述SQL单步语句进行入参识别,得到与各所述SQL单步语句一一对应的入参清单;
通过所述Eclipse工具,根据所述变量测试清单和与各所述SQL单步语句对应的所述入参清单,对各所述SQL单步语句进行动态脚本生成处理,生成与各所述SQL单步语句对应的SQL待测试单步脚本;
通过所述Mybatis工具,对所有所述SQL待测试单步脚本进行同步测试,得到与各所述SQL单步语句对应的单步结果;
根据所有所述单步结果,输出与所述待测文件对应的测试结果。
2.如权利要求1所述的动态同步测试方法,其特征在于,所述通过Mybatis工具建立与所述数据库信息对应的源数据库的连接,以及对所述待执行脚本进行单步解析处理,生成至少一个SQL单步语句,包括:
通过所述Mybatis工具,创建连接接口和与所述数据库信息对应的数据库配置文件,并通过所述数据库配置文件建立与所述源数据库的连接;
根据所述变量测试清单,对所述待执行脚本进行语法检测及变量检测,得到检测结果;
根据所述检测结果,对所述待执行脚本进行修正处理,得到可执行脚本;
对所述可执行脚本进行单步拆分,得到至少一个所述SQL单步语句。
3.如权利要求2所述的动态同步测试方法,其特征在于,所述根据所述变量测试清单,对所述待执行脚本进行语法检测及变量检测,得到检测结果,包括:
对所述待执行脚本进行序列标注,得到标注文本;
通过相似匹配算法,查询出所述标注文本中的待处理字符串;
通过语法规则模型对各待处理字符串进行规则校验,得到各待处理字符串的字符串结果;
根据所有所述字符串结果,对所述待执行脚本进行剔除处理,得到变量文本;
通过字符串匹配算法,从所述变量文本中识别出与所述变量测试清单中的源变量相匹配的变量,得到各所述变量的变量结果;
将所有所述字符串结果和所有所述变量结果确定为所述检测结果。
4.如权利要求2所述的动态同步测试方法,其特征在于,所述对所述可执行脚本进行单步拆分,得到至少一个所述SQL单步语句,包括:
对所述可执行脚本进行mapper生成,生成与所述待执行脚本对应的mapper文件;
对所述mapper文件进行单步识别及分割处理,分割出所述SQL单步语句。
5.如权利要求1所述的动态同步测试方法,其特征在于,所述通过所述Mybatis工具,对所有所述SQL待测试单步脚本进行同步测试,得到与各所述SQL单步语句对应的单步结果,包括:
同步执行所有所述SQL待测试单步脚本,得到与各所述SQL待测试单步脚本一一对应的单步执行结果;
根据所述变量测试清单和所有所述单步执行结果,对各所述SQL待测试单步脚本进行同步校验处理,得到与各所述SQL单步语句对应的单步结果。
6.如权利要求1所述的动态同步测试方法,其特征在于,所述根据所述变量测试清单和所有所述单步执行结果,对各所述SQL待测试单步脚本进行同步校验处理,得到与各所述SQL单步语句对应的单步结果,包括:
运用快速查询算法,在所述变量测试清单中同步查找与各所述单步执行结果中的输出变量相同的预期变量,获取与查找到的所述预期变量对应的预期值;
将与各所述单步执行结果中的所述输出变量对应的输出变量值和获取的与其相应的所述预期值进行比对,得到所述单步结果。
7.一种动态同步测试装置,其特征在于,包括:
获取模块,用于获取待测文件;所述待测文件包括数据库信息、待执行脚本和变量测试清单;
解析模块,用于通过Mybatis工具建立与所述数据库信息对应的源数据库的连接,以及对所述待执行脚本进行单步解析处理,生成至少一个SQL单步语句;
识别模块,用于通过Eclipse工具,对各所述SQL单步语句进行入参识别,得到与各所述SQL单步语句一一对应的入参清单;
生成模块,用于通过所述Eclipse工具,根据所述变量测试清单和与各所述SQL单步语句对应的所述入参清单,对各所述SQL单步语句进行动态脚本生成处理,生成与各所述SQL单步语句对应的SQL待测试单步脚本;
测试模块,用于通过所述Mybatis工具,对所有所述SQL待测试单步脚本进行同步测试,得到与各所述SQL单步语句对应的单步结果;
输出模块,用于根据所有所述单步结果,输出与所述待测文件对应的测试结果。
8.如权利要求7所述的动态同步测试装置,其特征在于,所述解析模块包括:
创建子模块,用于通过所述Mybatis工具,创建连接接口和与所述数据库信息对应的数据库配置文件,并通过所述数据库配置文件建立与所述源数据库的连接;
检测子模块,用于根据所述变量测试清单,对所述待执行脚本进行语法检测及变量检测,得到检测结果;
修正子模块,用于根据所述检测结果,对所述待执行脚本进行修正处理,得到可执行脚本;
拆分子模块,用于对所述可执行脚本进行单步拆分,得到至少一个所述SQL单步语句。
9.一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至6任一项所述动态同步测试方法。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述动态同步测试方法。
CN202110449563.9A 2021-04-25 2021-04-25 动态同步测试方法、装置、设备及存储介质 Pending CN112988595A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202110449563.9A CN112988595A (zh) 2021-04-25 2021-04-25 动态同步测试方法、装置、设备及存储介质
PCT/CN2021/109147 WO2022227314A1 (zh) 2021-04-25 2021-07-29 动态同步测试方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110449563.9A CN112988595A (zh) 2021-04-25 2021-04-25 动态同步测试方法、装置、设备及存储介质

Publications (1)

Publication Number Publication Date
CN112988595A true CN112988595A (zh) 2021-06-18

Family

ID=76340088

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110449563.9A Pending CN112988595A (zh) 2021-04-25 2021-04-25 动态同步测试方法、装置、设备及存储介质

Country Status (2)

Country Link
CN (1) CN112988595A (zh)
WO (1) WO2022227314A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022227314A1 (zh) * 2021-04-25 2022-11-03 深圳壹账通智能科技有限公司 动态同步测试方法、装置、设备及存储介质
CN116881244A (zh) * 2023-06-05 2023-10-13 北京捷泰云际信息技术有限公司 一种基于列存数据库的空间数据的实时处理方法及装置

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116366609B (zh) * 2023-06-02 2023-09-01 天津金城银行股份有限公司 全局唯一标识生成方法、系统、计算机和可读存储介质
CN116701237B (zh) * 2023-08-09 2023-12-29 北京集度科技有限公司 测试脚本生成及测试方法、设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105389251A (zh) * 2014-08-28 2016-03-09 Sap欧洲公司 结构化查询语言调试器
CN108399130A (zh) * 2018-02-28 2018-08-14 平安科技(深圳)有限公司 自动生成测试案例的方法、装置、设备及可读存储介质
CN110347598A (zh) * 2019-07-10 2019-10-18 上海达梦数据库有限公司 一种测试脚本生成方法、装置、服务器及存储介质
WO2021051501A1 (zh) * 2019-09-18 2021-03-25 平安科技(深圳)有限公司 Sql提取方法、装置、计算机设备和存储介质

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8452754B2 (en) * 2009-05-08 2013-05-28 Microsoft Corporation Static analysis framework for database applications
CN109101415A (zh) * 2018-06-25 2018-12-28 平安科技(深圳)有限公司 基于数据库比对的接口测试方法、系统、设备和存储介质
CN109408381B (zh) * 2018-10-10 2019-07-16 四川新网银行股份有限公司 一种基于数据校验模板的产品数据自动校验平台及方法
CN110221967A (zh) * 2019-05-20 2019-09-10 深圳壹账通智能科技有限公司 测试数据构造方法、装置、计算机设备和存储介质
CN112988595A (zh) * 2021-04-25 2021-06-18 深圳壹账通智能科技有限公司 动态同步测试方法、装置、设备及存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105389251A (zh) * 2014-08-28 2016-03-09 Sap欧洲公司 结构化查询语言调试器
CN108399130A (zh) * 2018-02-28 2018-08-14 平安科技(深圳)有限公司 自动生成测试案例的方法、装置、设备及可读存储介质
CN110347598A (zh) * 2019-07-10 2019-10-18 上海达梦数据库有限公司 一种测试脚本生成方法、装置、服务器及存储介质
WO2021051501A1 (zh) * 2019-09-18 2021-03-25 平安科技(深圳)有限公司 Sql提取方法、装置、计算机设备和存储介质

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
何成万;青旺;徐雅琴;严柯;: "基于AOP与SQL结构分析的SQLIAs动态检测及防御", 计算机工程, no. 04, 15 April 2018 (2018-04-15) *
周聚;: "数据库测试用例生成系统设计与实现", 电子测试, no. 2, 7 January 2015 (2015-01-07) *
石聪聪;张涛;余勇;林为民;: "一种新的SQL注入防护方法的研究与实现", 计算机科学, no. 1, 15 June 2012 (2012-06-15) *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022227314A1 (zh) * 2021-04-25 2022-11-03 深圳壹账通智能科技有限公司 动态同步测试方法、装置、设备及存储介质
CN116881244A (zh) * 2023-06-05 2023-10-13 北京捷泰云际信息技术有限公司 一种基于列存数据库的空间数据的实时处理方法及装置
CN116881244B (zh) * 2023-06-05 2024-03-26 易智瑞信息技术有限公司 一种基于列存数据库的空间数据的实时处理方法及装置

Also Published As

Publication number Publication date
WO2022227314A1 (zh) 2022-11-03

Similar Documents

Publication Publication Date Title
CN112988595A (zh) 动态同步测试方法、装置、设备及存储介质
US8782609B2 (en) Test failure bucketing
JP6287549B2 (ja) ソースコードをポーティングする方法及び装置
US20220083450A1 (en) Automated bug fixing using deep learning
US20150363197A1 (en) Systems And Methods For Software Analytics
CN111078568B (zh) 代码规范方法、装置、计算机设备和存储介质
CN111176996A (zh) 测试用例生成方法、装置、计算机设备及存储介质
US11327722B1 (en) Programming language corpus generation
WO2020206840A1 (zh) 代码翻译方法、装置、计算机设备和存储介质
CN110955608B (zh) 测试数据处理方法、装置、计算机设备和存储介质
JP2018505506A (ja) 機械ベースの命令編集
CN111581271A (zh) 接口参数确定方法、装置、计算机设备和存储介质
CN113961768B (zh) 敏感词检测方法、装置、计算机设备和存储介质
CN115066674A (zh) 使用源代码元素的数值数组表示来评估源代码的方法
CN114385491A (zh) 一种基于深度学习的js转译器缺陷检测方法
CN109344385B (zh) 自然语言处理方法、装置、计算机设备和存储介质
CN111492364B (zh) 数据标注方法、装置及存储介质
CN113778852B (zh) 一种基于正则表达式的代码分析方法
Lavoie et al. A case study of TTCN-3 test scripts clone analysis in an industrial telecommunication setting
US11977477B2 (en) System and method for identification of web elements used in automation test case
CN115129598A (zh) 一种sql语句的风险检测方法、装置、系统及介质
CN110244954B (zh) 一种应用程序的编译方法及设备
JP2022078962A (ja) エラーに関連するコードの行の自動識別
CN114116268A (zh) Flink SQL语句的校验方法、装置、计算机设备和存储介质
CN113448982A (zh) Ddl语句的解析方法、装置、计算机设备及存储介质

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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40045438

Country of ref document: HK