CN110347598B - 一种测试脚本生成方法、装置、服务器及存储介质 - Google Patents

一种测试脚本生成方法、装置、服务器及存储介质 Download PDF

Info

Publication number
CN110347598B
CN110347598B CN201910620458.XA CN201910620458A CN110347598B CN 110347598 B CN110347598 B CN 110347598B CN 201910620458 A CN201910620458 A CN 201910620458A CN 110347598 B CN110347598 B CN 110347598B
Authority
CN
China
Prior art keywords
script
test
statement
tested
template
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
Application number
CN201910620458.XA
Other languages
English (en)
Other versions
CN110347598A (zh
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.)
Shanghai Dameng Database Co Ltd
Original Assignee
Shanghai Dameng Database 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 Shanghai Dameng Database Co Ltd filed Critical Shanghai Dameng Database Co Ltd
Priority to CN201910620458.XA priority Critical patent/CN110347598B/zh
Publication of CN110347598A publication Critical patent/CN110347598A/zh
Application granted granted Critical
Publication of CN110347598B publication Critical patent/CN110347598B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

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

本发明实施例公开了一种测试脚本生成方法、装置、服务器及存储介质。测试脚本生成方法,包括:获取被测试语句;根据被测试语句和测试脚本模板,生成测试脚本;其中,测试脚本模板包括:文件类型模板、数据库连接模板、测试集模板和环境清理模板。无需测试人员每次人工编写测试脚本,通过一次编写测试脚本模板,即可实现自动将被测试SQL语句转化为测试脚本,提高了测试脚本模板的可复用性,增强了测试脚本的可维护性,提高了测试人员的工作效率。

Description

一种测试脚本生成方法、装置、服务器及存储介质
技术领域
本发明实施例涉及计算机技术领域,尤其涉及一种测试脚本生成方法、装置、服务器及存储介质。
背景技术
结构化查询语言(Structured Query Language,SQL)是一种数据库查询和程序设计语言,可以用于数据的存取、查询、更新和管理关系数据库系统,被广泛应用到各个领域。无论是使用数据库还是开发数据库都要用到SQL语句,而对于SQL语句的测试是一个不可或缺的重要环节。
目前在测试环节,测试人员不仅需要编写大量的测试脚本,还要保证测试脚本为可解析执行的标准格式。这样对于工作人员来说,编写一个正确的测试脚本,一方面要保证SQL语句的正确性,另一方面要保证测试脚本格式的正确性。现有测试脚本的编写过程复杂,测试人员工作量大,测试工作效率低。
发明内容
本发明提供一种测试脚本生成方法、装置、服务器及存储介质,以实现自动将所编写的SQL语句转化为测试脚本,提高测试人员的工作效率。
第一方面,本发明实施例提供了一种测试脚本生成方法,包括:
获取被测试语句;
根据所述被测试语句和测试脚本模板,生成测试脚本;其中,所述测试脚本模板包括:文件类型模板、数据库连接模板、测试集模板和环境清理模板。
第二方面,本发明实施例还提供了一种测试脚本生成装置,包括:
语句获取模块,用于获取被测试语句;
测试脚本生成模块,用于根据所述被测试语句和测试脚本模板,生成测试脚本;其中,所述测试脚本模板包括:文件类型模板、数据库连接模板、测试集模板和环境清理模板。
第三方面,本发明实施例还提供了一种服务器,所述服务器包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本发明任意实施例提供的测试脚本生成方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,其中,该程序被处理器执行时实现如本发明任意实施例提供的测试脚本生成方法。
本发明实施例由测试人员预先编写包括文件类型、数据库连接、测试集和环境清理这五个部分的测试脚本模板并存储;根据获取的被测试语句,可自动生成测试集脚本和环境清理脚本,并写入测试脚本模板中的对应部分,拼接为测试脚本。无需测试人员每次人工编写测试脚本,通过一次编写测试脚本模板,即可实现自动将被测试SQL语句转化为测试脚本,提高了测试脚本模板的可复用性,增强了测试脚本的可维护性,提高了测试人员的工作效率。
附图说明
图1是本发明实施例一中的一种测试脚本生成方法的流程图;
图2是本发明实施例二中的一种测试脚本生成方法的流程图;
图3是本发明实施例二中的一种测试脚本生成方法的流程图;
图4是本发明实施例三中的一种测试脚本生成装置的结构示意图;
图5是本发明实施例四中的一种服务器的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
图1为本发明实施例一提供的一种测试脚本生成方法的流程图,本实施例可适用于将编写的SQL语句自动转化为测试脚本进行测试的情况,该方法可以由本实施例提供的测试脚本生成装置来执行,该装置可采用软件和/或硬件的方式实现。参见图1,该方法具体包括如下步骤:
步骤110、获取被测试语句。
数据库通常采用的是结构化查询语言(Structured Query Language,SQL),在数据库开发和使用过程中,测试人员需要对编写的SQL语句进行测试。
可选的,被测试语句可以为测试人员所编写的一组SQL语句。
可选的,获取被测试语句的方式可以为:测试人员输入一组被测试SQL语句,获取用户输入的被测试SQL语句,并对被测试SQL语句进行语法分析,例如,可以对被测试SQL语句分段,并逐段对SQL语句进行分析。
示例性地,一组被测试SQL语句可以为:
CREATE TABLE T1(C1INT);
INSERT INTO T1VALUES(1);
SELECT*FROM T1;
其中,一组被测试SQL语句中可以包含查询项和非查询项。查询项可以是SELECT查询项子句;非查询项可以为除SELECT查询项子句以外的其他子句。可选的,可以通过语法解析器对输入的被测试SQL语句进行解析得到查询项和非查询项。
可选的,为了进一步提高测试效率,在获取被测试语句之后,还可以对被测试语句进行语法检查。当被测试语句不符合语法规则时,修改为正确的被测试语句。
具体地,语法规则为SQL语句通用的语法规则。可以通过语法解析器,对获取的被测试SQL语句进行语法规则检查。若语法规则检查结果为通过,则记录被测试SQL语句中所创建对象类型和对象名,并执行步骤120;否则,将不符合语法规则的被测试SQL语句修改为正确的被测试SQL语句后,记录正确的被测试SQL语句中所创建对象类型和对象名,并执行步骤120。
其中,所创建对象类型和对象名可以为被测试SQL语句中CREATE创建项子句对应的对象类型和对象名。在上述实施例的基础上,以被测试SQL语句中的“CREATE TABLE T1(C1INT);”子句为例,所创建的对象类型为数据表“TABLE”,对象名为“T1”。
步骤120、根据被测试语句和测试脚本模板,生成测试脚本。
其中,测试脚本模板包括:文件类型模板、数据库连接模板、测试集模板和环境清理模板。文件类型模板用于声明测试脚本的文件类型;数据库连接模板、测试集模板和环境清理模板均为成对出现的标签语言形式。
可选的,可以由测试人员在文件类型模板中设置包含测试脚本的文件版本号信息和文件编码方式信息,以声明测试脚本的文件类型。其中,文件版本号和文件编码方式为测试脚本文件的固有属性,文件版本号代表了测试脚本的版本,文件编码方式由encoding属性指定编码方式,默认为“UTF-8”编码方式。
示例性地,文件类型模板可以为:<?xml version=""encoding=""?>。
可选的,可以在数据库连接模板中设置用于连接到目标数据库的连接信息,以实现对目标数据库的操作。
示例性地,数据库连接模板可以为:
<CONTENT></CONTENT><!--请在这里加入对脚本的简要描述-->
<CONNECT></CONNECT><!--连接数据库-->
可选的,可以根据被测试SQL语句,得到每条被测试SQL语句的预期执行结果和/或结果集,并将被测试SQL语句以及对应的预期执行结果和/或结果集转化为脚本格式写入测试集模板中,形成测试集脚本。
示例性地,测试集模板可以为:<SQL_CASE></SQL_CASE>。
可选的,可以根据被测试SQL语句中所创建对象类型和对象名,生成环境清理语句,并转化为对应的脚本格式写入环境清理模板,形成环境清理脚本。
示例性地,环境清理模板可以为:
<CLEAR><!—脚本清除模块,该关键字标识清除块开始-->
<SQL_CASE>
</SQL_CASE>
</CLEAR>
可选的,数据库连接模板、测试集模板和环境清理模板可以共同包含在标签语言“<SQLTEST></SQLTEST>”中。
示例性地,文件类型模板、数据库连接模板、测试集模板和环境清理模板所构成的测试脚本模板可以为:
可选的,文件类型脚本、数据库连接信息脚本、测试集脚本和环境清理脚本构成测试脚本。
可选的,在根据被测试语句和测试脚本模板,生成测试脚本之后,还可以包括:根据测试脚本,检查被测试语句逻辑功能的正确性。
具体的,测试脚本可以为测试用例。通过测试用例可以检查被测试语句是否能够实现预期的逻辑功能。示例性地,以上述实施例中的一组被测试SQL语句为例进行说明,该组被测试SQL语句为:
CREATE TABLE T1(C1INT);
INSERT INTO T1VALUES(1);
SELECT*FROM T1;
该组被测试SQL语句实现的逻辑功能为:首先创建了数据表T1,该数据表T1包含一列C1,然后在数据表T1的C1列中插入数值1,最后查询数据表T1有哪些数据,返回查询结果。
根据所生成的测试脚本,检查是否能够实现上述逻辑功能,从而可以验证数据库的正确性。
本发明实施例由测试人员预先编写包括文件类型、数据库连接、测试集和环境清理这五个部分的测试脚本模板并存储;根据获取的被测试语句,可自动生成测试集脚本和环境清理脚本,并写入测试脚本模板中的对应部分,拼接为测试脚本。无需测试人员每次人工编写测试脚本,通过一次编写测试脚本模板,即可实现自动将被测试SQL语句转化为测试脚本,提高了测试脚本模板的可复用性,增强了测试脚本的可维护性,提高了测试人员的工作效率。
实施例二
在上述实施例的基础上,对根据被测试语句和测试脚本模板,生成测试脚本的步骤进行进一步细化,如图2所示,图2是本发明实施例二提供的一种测试脚本生成方法的流程图,具体包括如下步骤:
步骤210,将文件版本号和文件编码方式写入文件类型模板,生成文件类型脚本。
示例性地,测试人员可以将测试脚本的文件版本号和文件编码方式写入文件类型模板,生成文件类型脚本可以为:
<?xml version="1.0"encoding="UTF-8"?>
步骤220,将数据库连接信息写入数据库连接模板中,生成数据库连接脚本。
可选的,测试人员可以将数据库连接信息直接写入数据库连接模板中,生成数据库连接脚本。其中,数据库连接信息包括用于连接到目标数据库的数据库驱动信息,可选的,数据库驱动可以为JDBC驱动;数据库连接信息还可以包括目标数据库的用户名和密码。
可选的,为了让测试脚本不依赖数据库连接信息,可以将数据库连接信息配置在一个独立的配置文件中,当执行到测试脚本中的数据库连接脚本语句时,先读取连接配置文件中的数据库连接信息,然后连接到目标数据库。
步骤230,根据被测试语句和测试集模板,生成测试集脚本。
可选的,被测试语句可以为一组被测试SQL语句。一组被测试SQL语句中可以包含查询项和非查询项,即可以将被测试SQL语句分为查询类SQL语句和非查询类SQL语句。顺序执行每条被测试SQL语句,并判断该条被测试SQL语句的预期执行结果是否成功,预期执行结果有两种:预期执行成功和预期执行失败。每条被测试SQL语句均需进行预期执行结果判断,而对于查询类SQL语句,可能会返回查询结果,因此,对于预期执行结果为成功的查询类SQL语句还需进行结果集判断。最终,根据每条被测试SQL语句、预期执行结果、结果集和测试集模板,生成测试集脚本。具体的实现过程如图3所示,图3是本发明实施例二中的一种测试脚本生成方法的流程图,具体包括如下步骤:
步骤2302,按照被测试语句执行顺序,获取一条未执行的被测试语句,并执行该条被测试语句。
可选的,按照测试人员输入的被测试SQL语句的逻辑执行顺序,获取一条未执行的被测试SQL语句。
针对上述实施例给出的一组被测试SQL语句:
CREATE TABLE T1(C1INT);
INSERT INTO T1VALUES(1);
SELECT*FROM T1;
所列出的各条被测试SQL语句顺序即为逻辑执行顺序,按照逻辑执行顺序依次获取每条未执行的被测试SQL语句,并执行该条被测试SQL语句。
步骤2304,判断该条被测试语句预期执行结果是否成功。若是,则执行步骤2308;否则,执行步骤2306。
可选的,执行获取的每条被测试SQL语句后,均进行预期执行结果判断,并返回预期执行结果语句。预期执行结果语句有两种:执行结果成功和执行结果失败。若预期执行结果成功,则继续执行步骤2308。
步骤2306,返回预期执行结果失败的语句。
示例性地,预期执行结果失败的语句可以为:
DIRECT_EXECUTE_FAIL
步骤2308,判断该条被测试语句是否为查询类被测试语句。若是,则执行步骤2312,否则执行步骤2310。
可选的,若被测试SQL语句中包含SELECT查询项子句,则该条被测试SQL语句为查询类被测试语句,继续执行步骤2312。否则为非查询类被测试语句,直接返回步骤2310的执行结果。
示例性地,针对被测试SQL语句:
SELECT*FROM T1;
包含SELECT查询项子句,判断为查询类被测试语句,则继续执行步骤2312,进一步判断是否有结果集。
步骤2310,返回预期执行结果成功的语句。
示例性地,预期执行结果失败的语句可以为:
DIRECT_EXECUTE_SUCCESS
步骤2312,判断该条被测试语句是否有结果集。若是,则执行步骤2316,否则,则执行步骤2314。
具体的,只有查询类被测试SQL语句才会返回结果集。若判断该查询类被测试SQL语句有结果集,则执行步骤2316,否则执行步骤2314。
步骤2314,返回预期执行结果成功且无结果集的语句。
示例性地,预期执行结果成功且无结果集的语句可以为:
DIRECT_EXECUTE_SELECT_COMPARE_RESULT_NULL
步骤2316,返回预期执行结果成功且有结果集的语句以及结果集。
示例性地,预期执行结果成功且有结果集的语句可以为:
DIRECT_EXECUTE_SELECT_COMPARE_RESULT_FULL
示例性地,当执行上述被测试SQL语句“SELECT*FROM T1;”后,其结果集为:1。则返回预期执行结果成功且有结果集的语句:
DIRECT_EXECUTE_SELECT_COMPARE_RESULT_FULL
以及结果集:1。
步骤2318,将该条被测试语句转化为语句脚本,对应的预期执行结果语句和/或结果集转化为预期执行结果脚本和/或结果集脚本,并写入测试集模板。
在上述实施例的基础上,以获取的一条被测试SQL语句为例进行说明。例如,该条被测试SQL语句为:
SELECT*FROM T1;
转化为语句脚本为:
<SQL>SELECT*FROM T1;</SQL>
对应的预期执行结果语句转化为预期执行结果脚本为:
<TYPE>
DIRECT_EXECUTE_SELECT_COMPARE_RESULT_FULL
</TYPE>
对应的结果集转化为结果集脚本为:
将该条被测试SQL语句对应的语句脚本、预期执行结果脚本和结果集脚本写入测试集模板,形成该条被测试SQL语句对应的测试集脚本为:
可选的,为了便于更加直观的查看预期执行结果脚本分类,可以将预期执行结果脚本写在语句脚本之前。对于属于同一预期执行结果脚本分类的连续多条被测试SQL语句,可以共用同一预期执行结果脚本。
步骤2320,判断被测试SQL语句是否全部执行完。若是,则执行步骤2322;否则,返回执行步骤2302。
当判断该组被测试SQL语句全部执行完毕时,则每条被测试SQL语句对应的测试集脚本均被写入测试集模板,构成了对应该组被测试SQL语句的测试集脚本。否则,返回执行步骤2302。
步骤240,根据被测试语句和环境清理模板,生成环境清理脚本。
可选的,当被测试语句全部执行完毕,生成测试集脚本后,可以根据记录的被测试SQL语句中所创建的对象类型和对象名,生成环境清理语句。
在上述实施例的基础上,以被测试SQL语句中的“CREATE TABLE T1(C1INT);”子句为例,所创建的对象类型为数据表“TABLE”,对象名为“T1”。则生成环境清理语句为:
DROP TABLE T1;
同时,判断该环境清理语句的预期执行结果是否成功,若是,则返回预期执行结果成功的执行结果语句;否则,返回预期执行结果失败的执行结果语句。
具体的,执行上述环境清理语句“DROP TABLE T1;”后,预期执行结果为成功,则返回预期执行结果语句为:
DIRECT_EXECUTE_SUCCESS
将环境清理语句转化为环境清理语句脚本为:
<SQL>DROP TABLE T1;</SQL>
将预期执行结果语句转化为预期执行结果脚本为:
<TYPE>DIRECT_EXECUTE_SUCCESS</TYPE>
将环境清理语句脚本和对应的预期执行结果脚本写入环境清理模板,生成环境清理脚本为:
步骤250,文件类型脚本、数据库连接信息脚本、测试集脚本和环境清理脚本构成测试脚本。
上述实施例生成的文件类型脚本、数据库连接信息脚本、测试集脚本和环境清理脚本共同组成测试脚本。
本发明实施例由测试人员预先编写包括文件类型、数据库连接、测试集和环境清理这五个部分的测试脚本模板并存储;根据获取的被测试语句,可自动生成测试集脚本和环境清理脚本,并写入测试脚本模板中的对应部分,拼接为测试脚本。无需测试人员每次人工编写测试脚本,通过一次编写测试脚本模板,即可实现自动将被测试SQL语句转化为测试脚本,提高了测试脚本模板的可复用性,增强了测试脚本的可维护性,提高了测试人员的工作效率。
实施例三
图4是本发明实施例三提供的一种测试脚本生成装置的结构示意图,如图4所示,该装置包括:
语句获取模块310,用于获取被测试语句;
测试脚本生成模块320,用于根据被测试语句和测试脚本模板,生成测试脚本;其中,测试脚本模板包括:文件类型模板、数据库连接模板、测试集模板和环境清理模板。
本发明实施例由测试人员预先编写包括文件类型、数据库连接、测试集和环境清理这五个部分的测试脚本模板并存储;根据获取的被测试语句,可自动生成测试集脚本和环境清理脚本,并写入测试脚本模板中的对应部分,拼接为测试脚本。无需测试人员每次人工编写测试脚本,通过一次编写测试脚本模板,即可实现自动将被测试SQL语句转化为测试脚本,提高了测试脚本模板的可复用性,增强了测试脚本的可维护性,提高了测试人员的工作效率。
可选的,该装置还包括:
逻辑功能检查模块,用于根据测试脚本,检查被测试语句逻辑功能的正确性。
可选的,该装置还包括:
语法检查模块,用于对被测试语句进行语法检查;当被测试语句不符合语法规则时,修改为正确的被测试语句。
可选的,测试脚本生成模块320,包括:
类型脚本生成单元,用于将文件版本号和文件编码方式写入文件类型模板,生成文件类型脚本;
连接脚本生成单元,用于将数据库连接信息写入数据库连接模板中,生成数据库连接脚本;
测试集脚本生成单元,用于根据被测试语句和测试集模板,生成测试集脚本;
清理脚本生成单元,用于根据被测试语句和环境清理模板,生成环境清理脚本;
测试脚本生成单元,用于文件类型脚本、数据库连接信息脚本、测试集脚本和环境清理脚本构成测试脚本;
其中,文件类型脚本用于声明测试脚本的文件类型;数据库连接信息脚本、测试集脚本和环境清理脚本均为成对出现的标签语言形式。
可选的,测试集脚本生成单元,具体用于:
顺序执行每条被测试语句,并判断预期执行结果是否成功;
当预期执行结果为成功时,判断是否有结果集;
根据每条被测试语句、预期执行结果、结果集和测试集模板,生成测试集脚本。
可选的,测试集脚本生成单元,还用于:
将每条被测试语句和对应的预期执行结果,分别转化为语句脚本和预期执行结果脚本;
若被测试语句的预期执行结果为成功且有结果集,则将结果集转化为结果集脚本;
将语句脚本、预期执行结果脚本和结果集脚本写入测试集模板中形成测试集脚本。
可选的,清理脚本生成单元,具体用于:
当判断所有被测试语句执行完毕,根据被测试语句中所有创建的对象类型和对象名,生成环境清理语句;
执行环境清理语句,并判断预期执行结果是否成功;
将环境清理语句和预期执行结果,分别转化为环境清理语句脚本和预期执行结果脚本,并写入环境清理模板,生成环境清理脚本。
本发明实施例所提供的测试脚本生成装置可执行本发明任意实施例所提供的测试脚本生成方法,具备执行方法相应的功能模块和有益效果。
实施例四
图5为本发明实施例三提供的一种服务器的结构示意图。图5示出了适于用来实现本发明实施方式的示例性服务器12的框图。图5显示的服务器12仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图5所示,该服务器12以通用计算设备的形式表现。该服务器12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。
总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
服务器12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被服务器12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)30和/或高速缓存存储器32。服务器12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图5未显示,通常称为“硬盘驱动器”)。尽管图5中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。系统存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如系统存储器28中,这样的程序模块42包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明实施例中的功能和/或方法。
服务器12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该设备交互的设备通信,和/或与使得该服务器12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口22进行。并且,服务器12还可以通过网络适配器20与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与服务器12的其它模块通信。应当明白,尽管图中未示出,可以结合服务器12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
处理单元16通过运行存储在系统存储器28中的程序,从而执行各种功能应用以及数据处理,例如实现本发明实施例所提供的测试脚本生成方法。
实施例五
本发明实施例五还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种测试脚本生成方法,该方法包括:
获取被测试语句;
根据所述被测试语句和测试脚本模板,生成测试脚本;其中,所述测试脚本模板包括:文件类型模板、数据库连接模板、测试集模板和环境清理模板。
当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的测试脚本生成方法中的相关操作。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
值得注意的是,上述搜索装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

Claims (7)

1.一种测试脚本生成方法,其特征在于,包括:
获取被测试语句,所述被测试语句为结构化查询语句;
根据所述被测试语句和测试脚本模板,生成测试脚本;其中,所述测试脚本模板包括:文件类型模板、数据库连接模板、测试集模板和环境清理模板;
其中,所述根据所述被测试语句和测试脚本模板,生成测试脚本的步骤,包括:
将文件版本号和文件编码方式写入所述文件类型模板,生成文件类型脚本;
将数据库连接信息写入所述数据库连接模板中,生成数据库连接脚本;
根据所述被测试语句和所述测试集模板,生成测试集脚本;
根据所述被测试语句和所述环境清理模板,生成环境清理脚本;
所述文件类型脚本、所述数据库连接信息脚本、所述测试集脚本和所述环境清理脚本构成测试脚本;
其中,所述文件类型脚本用于声明所述测试脚本的文件类型;所述数据库连接信息脚本、所述测试集脚本和所述环境清理脚本均为成对出现的标签语言形式;
其中,被测试语句分为查询类语句和非查询类语句,对于查询类语句,会返回查询结果;
其中,所述根据所述被测试语句和所述测试集模板,生成测试集脚本的步骤,包括:
顺序执行每条被测试语句,并判断预期执行结果是否成功;
当所述预期执行结果为成功时,判断是否有结果集;
根据所述每条被测试语句、所述预期执行结果、所述结果集和所述测试集模板,生成测试集脚本;
其中,所述根据所述被测试语句和所述环境清理模板,生成环境清理脚本的步骤,包括:
当判断所有被测试语句执行完毕,根据所述被测试语句中所有创建的对象类型和对象名,生成环境清理语句;
执行所述环境清理语句,并判断所述预期执行结果是否成功;
将所述环境清理语句和所述预期执行结果,分别转化为环境清理语句脚本和所述预期执行结果脚本,并写入所述环境清理模板,生成所述环境清理脚本。
2.根据权利要求1所述的方法,其特征在于,在所述根据所述被测试语句和测试脚本模板,生成测试脚本之后,还包括:
根据所述测试脚本,检查被测试语句逻辑功能的正确性。
3.根据权利要求1所述的方法,其特征在于,在所述获取被测试语句之后,在所述根据所述被测试语句和测试脚本模板,生成测试脚本之前,还包括:
对所述被测试语句进行语法检查;
当所述被测试语句不符合语法规则时,修改为正确的被测试语句。
4.根据权利要求1所述的方法,其特征在于,所述根据所述每条被测试语句、所述预期执行结果、所述结果集和所述测试集模板,生成测试集脚本的步骤,包括:
将每条被测试语句和对应的预期执行结果,分别转化为语句脚本和预期执行结果脚本;
若所述被测试语句的预期执行结果为成功且有结果集,则将所述结果集转化为结果集脚本;
将所述语句脚本、所述预期执行结果脚本和所述结果集脚本写入所述测试集模板中形成所述测试集脚本。
5.一种测试脚本生成装置,其特征在于,包括:
语句获取模块,用于获取被测试语句,所述被测试语句为结构化查询语句;
测试脚本生成模块,用于根据所述被测试语句和测试脚本模板,生成测试脚本;其中,所述测试脚本模板包括:文件类型模板、数据库连接模板、测试集模板和环境清理模板;
其中,测试脚本生成模块,包括:
类型脚本生成单元,用于将文件版本号和文件编码方式写入文件类型模板,生成文件类型脚本;
连接脚本生成单元,用于将数据库连接信息写入数据库连接模板中,生成数据库连接脚本;
测试集脚本生成单元,用于根据被测试语句和测试集模板,生成测试集脚本;
清理脚本生成单元,用于根据被测试语句和环境清理模板,生成环境清理脚本;
测试脚本生成单元,用于文件类型脚本、数据库连接信息脚本、测试集脚本和环境清理脚本构成测试脚本;
其中,文件类型脚本用于声明测试脚本的文件类型;数据库连接信息脚本、测试集脚本和环境清理脚本均为成对出现的标签语言形式;
其中,被测试语句分为查询类语句和非查询类语句,对于查询类语句,会返回查询结果;
其中,测试集脚本生成单元,具体用于:
顺序执行每条被测试语句,并判断预期执行结果是否成功;
当预期执行结果为成功时,判断是否有结果集;
根据每条被测试语句、预期执行结果、结果集和测试集模板,生成测试集脚本;
其中,清理脚本生成单元,具体用于:
当判断所有被测试语句执行完毕,根据被测试语句中所有创建的对象类型和对象名,生成环境清理语句;
执行环境清理语句,并判断预期执行结果是否成功;
将环境清理语句和预期执行结果,分别转化为环境清理语句脚本和预期执行结果脚本,并写入环境清理模板,生成环境清理脚本。
6.一种服务器,其特征在于,所述服务器包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-4中任一项所述的测试脚本生成方法。
7.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-4中任一项所述的测试脚本生成方法。
CN201910620458.XA 2019-07-10 2019-07-10 一种测试脚本生成方法、装置、服务器及存储介质 Active CN110347598B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910620458.XA CN110347598B (zh) 2019-07-10 2019-07-10 一种测试脚本生成方法、装置、服务器及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910620458.XA CN110347598B (zh) 2019-07-10 2019-07-10 一种测试脚本生成方法、装置、服务器及存储介质

Publications (2)

Publication Number Publication Date
CN110347598A CN110347598A (zh) 2019-10-18
CN110347598B true CN110347598B (zh) 2023-11-28

Family

ID=68174845

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910620458.XA Active CN110347598B (zh) 2019-07-10 2019-07-10 一种测试脚本生成方法、装置、服务器及存储介质

Country Status (1)

Country Link
CN (1) CN110347598B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110888641B (zh) * 2019-11-15 2024-04-05 深圳市宏电技术股份有限公司 一种脚本自动生成方法、装置、服务器及存储介质
CN111694738B (zh) * 2020-06-04 2023-07-18 贵州易鲸捷信息技术有限公司 一种sql测试脚本的生成方法
CN111737280A (zh) * 2020-06-22 2020-10-02 中国银行股份有限公司 一种sql存储过程脚本优化的方法及装置
CN113051173B (zh) * 2021-04-13 2024-04-19 广州虎牙科技有限公司 测试流程的编排执行方法、装置、计算机设备和存储介质
CN112988595A (zh) * 2021-04-25 2021-06-18 深圳壹账通智能科技有限公司 动态同步测试方法、装置、设备及存储介质
CN113342644B (zh) * 2021-05-31 2024-03-26 中国工商银行股份有限公司 基于语法分析技术的测试脚本自动生成方法及装置
CN114025027B (zh) * 2021-11-02 2023-10-03 三维通信股份有限公司 数据传输脚本的运行方法、装置、存储介质和电子装置
CN114579202B (zh) * 2022-03-03 2024-07-02 平安壹钱包电子商务有限公司 任务处理方法、装置、计算机设备及计算机可读存储介质
CN117472785B (zh) * 2023-12-25 2024-04-16 银河麒麟软件(长沙)有限公司 Linux系统下的Openstack测试方法及系统

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5754755A (en) * 1996-10-10 1998-05-19 Microsoft Corporation Method and system for generating test scripts
CN102521133A (zh) * 2011-12-15 2012-06-27 盛科网络(苏州)有限公司 基于tcl的白盒测试自动化方法及系统
CN103186460A (zh) * 2011-12-30 2013-07-03 金蝶软件(中国)有限公司 一种生成测试用例脚本的方法、装置及系统
CN103268226A (zh) * 2013-05-17 2013-08-28 瑞斯康达科技发展股份有限公司 一种测试脚本文件生成方法及装置
CN105512036A (zh) * 2015-12-12 2016-04-20 天津南大通用数据技术股份有限公司 根据预置规则自动生成测试用例的测试模板及测试方法
CN107168873A (zh) * 2017-05-11 2017-09-15 南京南瑞继保电气有限公司 一种基于脚本的网络测试系统及方法
CN108549604A (zh) * 2018-04-11 2018-09-18 上海达梦数据库有限公司 一种测试脚本生成方法、装置、终端设备及存储介质
CN109086199A (zh) * 2018-06-22 2018-12-25 网宿科技股份有限公司 一种自动化生成测试脚本的方法、终端和可存储介质
CN109446059A (zh) * 2018-09-12 2019-03-08 北京邮电大学 测试模板脚本的生成方法及装置
CN109697161A (zh) * 2017-10-24 2019-04-30 中兴通讯股份有限公司 一种存储过程的测试方法、存储介质和数据库服务器
CN109710528A (zh) * 2018-12-25 2019-05-03 中国人民财产保险股份有限公司 一种测试脚本生成方法、装置、设备和介质
CN109871314A (zh) * 2019-01-02 2019-06-11 石化盈科信息技术有限责任公司 测试脚本的自动生成方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9152542B2 (en) * 2013-03-14 2015-10-06 Sap Se Automatic generation of test scripts

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5754755A (en) * 1996-10-10 1998-05-19 Microsoft Corporation Method and system for generating test scripts
CN102521133A (zh) * 2011-12-15 2012-06-27 盛科网络(苏州)有限公司 基于tcl的白盒测试自动化方法及系统
CN103186460A (zh) * 2011-12-30 2013-07-03 金蝶软件(中国)有限公司 一种生成测试用例脚本的方法、装置及系统
CN103268226A (zh) * 2013-05-17 2013-08-28 瑞斯康达科技发展股份有限公司 一种测试脚本文件生成方法及装置
CN105512036A (zh) * 2015-12-12 2016-04-20 天津南大通用数据技术股份有限公司 根据预置规则自动生成测试用例的测试模板及测试方法
CN107168873A (zh) * 2017-05-11 2017-09-15 南京南瑞继保电气有限公司 一种基于脚本的网络测试系统及方法
CN109697161A (zh) * 2017-10-24 2019-04-30 中兴通讯股份有限公司 一种存储过程的测试方法、存储介质和数据库服务器
CN108549604A (zh) * 2018-04-11 2018-09-18 上海达梦数据库有限公司 一种测试脚本生成方法、装置、终端设备及存储介质
CN109086199A (zh) * 2018-06-22 2018-12-25 网宿科技股份有限公司 一种自动化生成测试脚本的方法、终端和可存储介质
CN109446059A (zh) * 2018-09-12 2019-03-08 北京邮电大学 测试模板脚本的生成方法及装置
CN109710528A (zh) * 2018-12-25 2019-05-03 中国人民财产保险股份有限公司 一种测试脚本生成方法、装置、设备和介质
CN109871314A (zh) * 2019-01-02 2019-06-11 石化盈科信息技术有限责任公司 测试脚本的自动生成方法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
SQL测试用例集的自动生成;丁祥武等;《计算机应用与软件》;20120815(第08期);第191-195页 *
Web Application Security: Threats, Countermeasures, and Pitfalls;Hsiu-Chuan Huang et.al;《COMPUTER》;第50卷(第6期);第81-85页 *
武剑洁 等.《软件测试基础》.华中科技大学出版社,2008,第267-268页. *
脚本自动生成测试系统的设计与实现;林惠娟;李志蜀;;四川大学学报(自然科学版)(04);第59-62页 *

Also Published As

Publication number Publication date
CN110347598A (zh) 2019-10-18

Similar Documents

Publication Publication Date Title
CN110347598B (zh) 一种测试脚本生成方法、装置、服务器及存储介质
CN110309071B (zh) 测试代码的生成方法及模块、测试方法及系统
US8875110B2 (en) Code inspection executing system for performing a code inspection of ABAP source codes
US9043759B1 (en) System and method for generating software unit tests simultaneously with API documentation
US9280442B1 (en) System and method for generating coverage reports for software unit tests
US20160306736A1 (en) Translation verification testing
CN112560100A (zh) 数据脱敏方法及装置、计算机可读存储介质、电子设备
US11347619B2 (en) Log record analysis based on log record templates
CN113094625B (zh) 页面元素定位方法、装置、电子设备及存储介质
CN113962597A (zh) 一种数据分析方法、装置、电子设备及存储介质
US11853196B1 (en) Artificial intelligence driven testing
CN113064811B (zh) 基于工作流的自动化测试方法、装置以及电子设备
CN112860584A (zh) 基于工作流模型的测试方法及装置
CN112597171A (zh) 表格关系可视化方法、装置、电子设备及存储介质
US11947530B2 (en) Methods and systems to automatically generate search queries from software documents to validate software component search engines
Gupta et al. Testing functional requirements using B model specifications
WO2023284108A1 (zh) 需求符合性分析方法、系统、电子设备及存储介质
Wang et al. What do we know about the tools of detecting design patterns?
EP2535813B1 (en) Method and device for generating an alert during an analysis of performance of a computer application
US9471890B2 (en) Enterprise decision management
Zhang et al. A new semantic annotation approach for software vulnerability source code
CN117390055B (zh) Jooq连表语句生成方法、设备以及介质
CN112988593B (zh) 代码分析方法、装置、计算机设备及存储介质
CN113392024B (zh) 存储过程的测试方法、装置、设备及介质
CN113641572B (zh) 一种基于sql的海量大数据计算开发的调试方法

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
GR01 Patent grant
GR01 Patent grant