一种SQL测试脚本的生成方法技术

技术编号:25708299 阅读:44 留言:0更新日期:2020-09-23 02:55
本发明专利技术提供了一种SQL测试脚本的生成方法,包括以下步骤:S1、构建测试脚本用例编写语言,便于编写者编写用例;S2、利用编辑器解析编写用例,并将编写用例翻译成所需的目标语言用例代码;S3、如果S2生成的目标语言是编译型语言,编译S2生成的目标语言的用例代码得到测试程序,执行测试程序进行测试,如果S2生成的目标言语是解释型语言,则可直接执行S2生成的用例代码。本发明专利技术所述的SQL测试脚本的生成方法,可以让用例编写者用几行语句表达通用编程语言几十甚至上百行代码表达的内容,同时一次编写多种目标语言执行,极大的提升了效率。

【技术实现步骤摘要】
一种SQL测试脚本的生成方法
本专利技术属于数据库领域,尤其是涉及一种SQL测试脚本的生成方法。
技术介绍
SQL测试是数据库系统的核心测试之一,传统的SQL测试的方法有很多,但基本都是选择一种通用编程语言,用标准的数据库连接接口如JDBC和ODBC访问数据库。通常用这种方法,一个测试用例根据用例的复杂层度,可能要写几十到几百行的代码,代码之间难以避免交叉调用,大多数代码与测试意图无关,用例越来越多,测试代码会变得越来越复杂,越来越难维护,难交接,难以新增用例,几乎不能快速地将用例迁移到另一种语言。同时随着技术的发展,形成了多种编程语言百花齐放的局面,多种语言都需要使用数据库,对数据库厂商来说,需要对多种语言提供连接支持,需要通过测试来验证通过每种语言的连接器执行SQL都能正常工作,这样需要为每一种语言都提供一套测试代码,用例开发的成本、维护成本及效率都不高。
技术实现思路
针对现有技术中的缺陷,本专利技术提供了一种SQL测试脚本的生成方法,本专利技术通过对测试用例进行抽象设计出与通用编程语言无关的专用于描述SQL测试的语言,让SQL测试用例的编写与具体的实现语言分离,让用例编写者不再关心具体实现语言的实现逻辑,可以更专注的写用例。为达到上述目的,本专利技术的技术方案是这样实现的:一种SQL测试脚本的生成方法,包括以下步骤:S1、构建测试脚本用例编写语言,便于编写者编写用例;S2、利用编辑器解析编写用例,并将编写用例翻译成所需的目标语言用例代码;S3、如果S2生成的目标语言是编译型语言,编译S2生成的目标语言的用例代码得到测试程序,执行测试程序进行测试,如果S2生成的目标言语是解释型语言,则可直接执行S2生成的用例代码。进一步的,所述步骤S1中,构建用例编写语言包括用例编写语言的语法构建;语法构建信息包括用于SQL测试描述的配置描述部分和用例描述部分;配置描述部分设置在用例描述部分的前端,用于定义用例编译时及运行时的配置;所述用例描述部分用于定义具体测试用例。进一步的,所述配置描述部分包括语法关键词和配置字符串;所述配置字符串设置在括号内,所述语法关键词设置在括号的前端。进一步的,所述用例描述部分包括由1个以上用例描述依次组成的用例描述组;单个用例描述包括由前向后依次设置的语法关键词、测试用例名称、执行语句组,所述执行语句组设置在大括号内。进一步的,所述执行语句组由1条以上的执行语句构成;单个执行语句由多种类型的语句组成,语句的类型及其构成如下:终端申明语句:Term终端名列表赋值语句:变量名=赋值表达式无结果集语句::SQL语句有结果集语句::ResultSet(SQL语句)无结果集指定终端执行语句::终端名SQL语句有结果集指定终端执行语句::终端名ResultSet(SQL语句)异步执行语句::Async无结果集语句Async有结果集语句Async无结果集指定终端执行语句Async有结果集指定终端执行语句断语言句期望相等:ExpectEqual(表达式,表达式)断语言句期望不相等:ExpectNotEqual(表达式,表达式)断言期望包含子串:ExpectSubstr(表达式,表达式)断言期望不包含子串:ExpectNoSubstr(表达式,表达式)断言期望元素在:ExpectIn(表达式,表达式)断言期望元素不在:ExpectNoIn(表达式,表达式)Shell语句:Shell(shell命令)其中Term、ResultSet、Async、ExpectEqual、ExpectNotEqual、ExpectSubstr、ExpectNoSubstr、ExpectIn、ExpectNotIn和Shell均为语法关键字。进一步的,所述表达式采用但不限于字符串或者数字。进一步的,所述步骤S2中,编译器的执行方法如下:S201、解析用例编写语言编写的用例文件;S202、进行词法检查和语法检查后,生成执行树;S203、根据生成的执行树及设定,将执行树翻译成目标语言用例代码。进一步的,所述目标语言用例代码包括但不限于python代码、java代码或C/C++代码。一种SQL测试用终端,其SQL测试方法采用权利要求1-8任一所述的SQL测试脚本的生成方法生成得到。一种SQL测试用系统,其SQL测试方法采用权利要求1-8任一所述的SQL测试脚本的生成方法生成得到。相对于现有技术,本专利技术所述的SQL测试脚本的生成方法具有以下优势:(1)本专利技术所述的SQL测试脚本的生成方法可以让用例编写者用几行语句表达通用编程语言几十甚至上百行代码表达的内容,同时一次编写多种目标语言执行,极大的提升了效率。(2)本专利技术所述的SQL测试脚本的生成方法以将SQL测试用例编写语言编译成python,java和C/C++等目标语言。附图说明构成本专利技术的一部分的附图用来提供对本专利技术的进一步理解,本专利技术的示意性实施例及其说明用于解释本专利技术,并不构成对本专利技术的不当限定。在附图中:图1为本实施例中SQL测试用例编写语言及其编译系统工作流程图;图2为本实施例中编译器的结构图;图3为本实施例中虚拟终端执行流程图;图4为本实施例中用例调度器执行流程图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。还应当理解,在此本专利技术说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本专利技术。如在本专利技术说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。还应当进一步理解,在本专利技术说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。现有技术中,EsgynDB是企业级的SQL-on-Hadoop解决方案,能够在Hadoop环境中处理运行时间较短的联机事务处理(onlinetransactionprocessing,OLTP)和运行时间较长的运营型数据存储(operationaldatastore,ODS)工作负载。如果EsgynDB要具备具有竞争性的品质,高品质的SQL测试必不可少。有效的方法本文档来自技高网...

【技术保护点】
1.一种SQL测试脚本的生成方法,其特征在于,包括以下步骤:/nS1、构建测试脚本用例编写语言,便于编写者编写用例;/nS2、利用编辑器解析编写用例,并将编写用例翻译成所需的目标语言用例代码;/nS3、如果S2生成的目标语言是编译型语言,编译S2生成的目标语言的用例代码得到测试程序,执行测试程序进行测试,如果S2生成的目标言语是解释型语言,则可直接执行S2生成的用例代码。/n

【技术特征摘要】
1.一种SQL测试脚本的生成方法,其特征在于,包括以下步骤:
S1、构建测试脚本用例编写语言,便于编写者编写用例;
S2、利用编辑器解析编写用例,并将编写用例翻译成所需的目标语言用例代码;
S3、如果S2生成的目标语言是编译型语言,编译S2生成的目标语言的用例代码得到测试程序,执行测试程序进行测试,如果S2生成的目标言语是解释型语言,则可直接执行S2生成的用例代码。


2.根据权利要求1所述的SQL测试脚本的生成方法,其特征在于:所述步骤S1中,构建用例编写语言包括用例编写语言的语法构建;
语法构建信息包括用于SQL测试描述的配置描述部分和用例描述部分;配置描述部分设置在用例描述部分的前端,用于定义用例编译时及运行时的配置;所述用例描述部分用于定义具体测试用例。


3.根据权利要求2所述的SQL测试脚本的生成方法,其特征在于:所述配置描述部分包括语法关键词和配置字符串;
所述配置字符串设置在组合符号内,所述语法关键词设置在组合符号的前端。


4.根据权利要求2所述的SQL测试脚本的生成方法,其特征在于:所述用例描述部分包括由1个以上用例描述依次组成的用例描述组;
单个用例描述包括由前向后依次设置的语法关键词、测试用例名称、执行语句组,所述执行语句组设置在组合符号内。


5.根据权利要求4所述的SQL测试脚本的生成方法,其特征在于:所述执行语句组由1条以上的执行语句构成;
单个执行语句由多种类型的语句组成,语句的类型及其构成如下:
终端申明语句:Term终端名列表
赋值语句:变量名=赋值表达式
无结果集语句::SQL语句
有结果集语句::ResultSet(SQL语句)
无结果集指定终端执行语句::终端名SQL语句
有结果集指定终端执行语句::终端名ResultSet(SQL语句)
异步执行语句::Async...

【专利技术属性】
技术研发人员:苏锦佩周建国王效忠刘明何振兴冀贤亮
申请(专利权)人:贵州易鲸捷信息技术有限公司
类型:发明
国别省市:贵州;52

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1