CN110309071A - 测试代码的生成方法及模块、测试方法及系统 - Google Patents
测试代码的生成方法及模块、测试方法及系统 Download PDFInfo
- Publication number
- CN110309071A CN110309071A CN201910566044.3A CN201910566044A CN110309071A CN 110309071 A CN110309071 A CN 110309071A CN 201910566044 A CN201910566044 A CN 201910566044A CN 110309071 A CN110309071 A CN 110309071A
- Authority
- CN
- China
- Prior art keywords
- test
- file
- data
- template
- code
- 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.)
- Granted
Links
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
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
本申请是关于测试代码的生成方法及模块、测试方法及系统、电子设备、存储介质。其中,测试代码的生成方法包括:获取待测系统对应的接口信息、测试数据和测试用例;分别将所述接口信息、所述测试数据和所述测试用例导入对应的模板中,以生成相应的封装层测试文件、数据层测试文件和验证层测试文件;根据所述封装层测试文件、所述数据层测试文件和所述验证层测试文件生成测试代码。本申请中,测试人员无需手动编写代码,只需要关注接口测试的流程步骤、提供相应的数据,即可实现测试代码的自动生成,大大提高了代码编写的效率,降低了人力成本。
Description
技术领域
本公开涉及计算机技术领域,尤其涉及一种测试代码的生成方法及模块、测试方法及系统、电子设备、存储介质。
背景技术
当前云计算领域高速发展,云产品不断推陈出新,随着用户需求的快速变更以及应用场景的不断拓展,新老云产品的功能保证和接口维护都面临着比较大的考验。为了充分保证产品和系统质量,需对云产品做包括接口在内的各类测试。
由于机器执行的出错率要远低于人工执行,且运行时间快,运行效率高,目前对于接口测试一般采用自动化测试,就需要测试人员通过编写大量的测试代码,并借助一系列开源的测试框架来实现。随着新增云产品的大量接入,一方面需要不断投入人力去进行新产品测试代码的编写,另一方面还要不断去确保老的云产品功能和接口的可用,维护已开发的测试代码,人力成本很高。
发明内容
有鉴于此,本申请提供一种测试代码的生成方法及模块、测试方法及系统、电子设备、存储介质。
具体地,本申请是通过如下技术方案实现的:
根据本申请的第一方面,提供一种测试代码的生成方法,所述生成方法包括:
获取待测系统对应的接口信息、测试数据和测试用例;
分别将所述接口信息、所述测试数据和所述测试用例导入对应的模板中,以生成相应的封装层测试文件、数据层测试文件和验证层测试文件;
根据所述封装层测试文件、所述数据层测试文件和所述验证层测试文件生成测试代码。
根据本申请的第二方面,提供一种测试方法,所述测试方法包括:
获取测试代码;所述测试代码由第一方面所述的测试代码的生成方法生成;
运行所述测试代码,以针对所述待测系统进行测试。
根据本申请的第三方面,提供一种测试代码的生成模块,所述生成模块包括:
获取单元,用于获取待测系统对应的接口信息、测试数据和测试用例;
测试文件生成单元,用于分别将所述接口信息、所述测试数据和所述测试用例导入对应的模板中,以生成相应的封装层测试文件、数据层测试文件和验证层测试文件;
代码生成单元,用于根据所述封装层测试文件、所述数据层测试文件和所述验证层测试文件生成测试代码。
根据本申请的第四方面,提供一种测试系统,所述测试系统包括:
获取模块,用于获取测试代码;所述测试代码由第三方面所述的测试代码的生成模块生成;
测试模块,用于运行所述测试代码,以针对所述待测系统进行测试。。
根据本申请的第五方面,提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现第一方面所述的测试代码的生成方法。
根据本申请的第六方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现第一方面所述的测试代码的生成方法的步骤。
根据本申请的第七方面,提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现第二方面所述的测试方法。
根据本申请的第八方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现第二方面所述的测试方法的步骤。
本公开的实施例提供的技术方案可以包括以下有益效果:
将获取的接口信息、测试数据和测试用例分别导入对应的三个模板中,即可自动生成测试接口的测试代码。也就是说,测试人员无需手动编写代码,只需要关注接口测试的流程步骤、提供相应的数据即可,大大提高了代码编写的效率,降低了人力的重复投入。且测试代码根据模板生成,规范了测试代码格式,便于代码维护。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
图1A是根据一示例性实施例示出的一种测试代码的生成方法的流程图。
图1B是根据一示例性实施例示出的另一种测试代码的生成方法的流程图。
图2A是根据一示例性实施例示出的一种测试代码的生成模块的结构示意图。
图2B是根据一示例性实施例示出的另一种测试代码的生成模块的结构示意图。
图3A是根据一示例性实施例示出的一种测试方法的流程图。
图3B是根据一示例性实施例示出的另一种测试方法的流程图。
图4A是根据一示例性实施例示出的一种测试系统的结构示意图。
图4B是根据一示例性实施例示出的另一种测试系统的结构示意图。
图5是根据一示例性实施例示出的一种电子设备的结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
图1A是本申请一示例性实施例示出的一种测试代码的生成方法的流程图,该生成方法可自动生成用于测试各类系统的接口的测试代码,系统例如可以是云系统、业务系统等,每个系统包括多个用于数据获取或进行二次开发的接口。如图1A所示,该生成方法包括以下步骤:
步骤110、获取待测系统对应的接口信息、测试数据和测试用例。
目前,接口的自动化测试一般通过测试框架实现,测试框架例可以但不限于采用testng框架或junit框架,测试框架包括:接口封装层、测试数据层和接口验证层。接口封装层对待测系统中的接口请求进行定义,包括各接口的接口名称、请求参数、请求地址、数据格式、请求方法,并可添加请求头部,执行请求操作。接口验证层通过事先创建的测试用例、待测系统的依赖资源,调用待测系统中的目标接口,验证接口的返回值,并调用相关接口去验证功能的正确性。测试数据层将测试数据和测试用例分离,减少两者之间的耦合,使得测试用例和测试数据的变动互不影响,同时也便于对测试数据的新增和修改。
本实施例中,通过对测试框架的分析,相对应的,将编写接口测试代码所需的数据分为三部分:接口信息、测试数据和测试用例,并分别获取。需要说明的是,该三部分数据用于赋值给对应模板中的相应变量,因此,三部分数据的参数需分别包括对应模板中定义的所有变量,且参数名称与模板中定义的变量名称需一一对应。获取的三部分数据的数据格式要求编程语言可以对其进行解析,可以但不限于使用json、xml、yaml。
其中,接口信息包括以下参数中的至少一种:接口封装层类名、接口名称、请求地址、请求方法、数据格式、请求数据;请求数据可以json数组形式存储,数组的每个元素定义一个参数,可以但不限于包括请求参数名称、请求参数类型、参数值、参数位置等。
测试数据包括以下参数中的至少一种:测试数据层类名、数据提供方法名、测试数据;与请求数据类似的,请求数据可以json数组形式存储,数组的每个元素定义一个参数,可以但不限于包括请求参数名称、请求参数类型、参数值、参数位置等。
测试用例包括以下参数中的至少一种:接口验证层类名、用例方法名、待调用接口信息(包括接口封装层类名、请求方法、创建资源所需的参数)、测试数据层信息(包括数据测试层类名、数据提供方法名、是否通过测试数据层传递测试数据)、接口数据变量数组、预期信息(包括返回结果预期信息、返回码预期信息、验证字段和测试用例成功条件)。
步骤120、分别将接口信息、测试数据和测试用例导入对应的模板中,以生成相应的封装层测试文件、数据层测试文件和验证层测试文件。
本实施例中,可采用启动类或类似控制器的方式实现文件夹的分层创建。具体的,启动类或控制器分别从步骤110获取的三部分数据中依次提取具体值,赋值给对应模板中的同名变量,以分别生成接口封装层、测试数据层和接口验证层的三个文件,三个文件中包括用于生成测试代码的代码。其中,具体值赋值的过程中可以但不限于使用json数组。生成的每个文件下都包含多个小文件,每个小文件对应系统的一个模块。以接口封装层为例,接口封装层文件夹下包括多个模块的小文件夹,每个小文件夹根据该模块的接口信息和接口信息模板生成。
步骤130、根据封装层测试文件、数据层测试文件和验证层测试文件生成测试代码。
步骤130也即使用代码生成工具将封装层测试文件、数据层测试文件和验证层测试文件中的代码自动转化为测试代码。其中,代码生成工具可以但不限于使用EvoSuite、PICT、ALLPAIRS等。
从而,将测试人员提供的接口信息、测试数据和测试用例导入对应的模板中,即可自动生成最终的接口测试代码。也就是说,测试人员无需手动编写代码,只需要关注接口测试的流程步骤、提供相应的数据即可,大大提高了代码编写的效率,降低了人力的重复投入。且测试代码根据模板生成,规范了测试代码格式,便于代码维护。
在图1A的基础上,参见图1B,示出了在另一种测试代码的生成方法的流程图。本实施例的步骤流程与图1A示出的步骤流程基本相同,如图1B所示,不同之处在于,本实施例中步骤110之后,还包括:
步骤111、分别将接口信息、测试数据和测试用例写入第一文件、第二文件和第三文件。
其中,第一文件、第二文件和第三文件可以但不限于使用excel文件、xml文件、txt文件、配置文件或数据库文件。为了便于后续编写测试代码,可将写有接口信息的第一文件命名为operation,将写有测试数据的第二文件命名为data,将写有测试用例的第三文件命名为testcase。在将数据写入文件中时,每类数据中的数据内容需按照测试逻辑或时序顺序写入文件,以测试用例为例,其包括多条测试用例,需要将每条测试用例按照接口测试逻辑依次写入文件中。
下面以生成云系统中的创建负载均衡模块的接口测试代码为例,若将该模块的接口信息、测试数据和测试用例分别写入三个excel文件,数据写入结果参见表1、表2和表3。
表1的第一行示出了测试负载均衡模块的接口时,需写入第一文件的接口信息的参数字段,以下每一行记录一个待测接口的接口信息,例如,表1的第二行示出了该模块的一个接口的接口信息,该接口的接口名称为createSlb,对应封装层类名为SlbOperation,请求地址为test/createSlb,请求方法为POST,数据格式采用json,以及对应的请求数据、数据是否编码,此处不再赘述。
表1
表2的第一行示出了测试负载均衡模块的接口时,需写入第二文件的测试数据的参数字段,以下每一行记录一个测试用例下的测试数据,例如,表2的第二行示出了一条测试数据的相关信息,该条测试数据的测试数据层类名为SlbData,数据提供方法名为createSlb,具体测试数据参见表2所示。
表2
表3示出了测试负载均衡模块的接口的部分测试用例,表3的第一行示出了测试负载均衡模块的接口时,需提供的测试用例的参数字段,以下每一行记录一条测试用例,例如,第二行为创建云产品归属的部门的测试用例、第三行为创建云产品归属的项目的测试用例,第四行为创建负载均衡资源的测试用例,第五行的测试用例为获取负载均衡资源以验证第三行创建的负载均衡是否成功。其中,测试数据层信息字段中,"isDataClass":"false"表示该字段在编写测试代码时不用赋值;预期信息用于验证字段或用例成功的条件,例如表3第三行中用“200”表示验证成功,表3第四行中用0代表验证相等,1代表验证不相等,2代表验证非空等。
表3
需要说明的是,若系统包括多个功能模块,需针对每个功能模块,分别记录上述数据。例如,若云系统包括负载均衡模块、财务管理模块,则需针对负载均衡模块创建3张表分别记录负载均衡模块的接口信息、测试数据和测试用例;针对财务管理模块创建3张表分别记录负载均衡模块的接口信息、测试数据和测试用例。
本实施例中,步骤120具体包括:
步骤120-1、获取接口信息模板、测试数据模板和测试用例模板。
步骤120-1获取的模板是针对测试框架的接口封装层、测试数据层和接口验证层生成的。
具体的,步骤120-1之前,方法还包括:分析测试框架的接口封装层、测试数据层和接口验证层,并根据模板引擎分别生成接口信息模板、测试数据模板和测试用例模板。该步骤也即通过对测试框架的分析,提取接口测试代码的固定操作、通用处理逻辑、验证步骤和方法,将代码固定部分生成模板。其中,模板引擎可以但不限于使用freemarker或velocity。
步骤120-2、从写有接口信息的第一文件中获取具体值,并赋值给接口信息模板中的对应变量,生成封装层测试文件。
接口信息模板可固定接口封装层中代码的类和方法定义、构造API(接口)请求、添加HTTP请求头部、执行请求操作等。以下示例性的示出了接口信息模板:
其中,接口信息模板中的变量被配置为${*},例如${classPath}、${className}、${interfaceName}和${requestPram}等,该些变量的具体值从写有接口信息的第一文件中获取。
步骤120-3、从写有测试数据的第二文件中获取具体值,并赋值给测试数据模板中的对应变量,生成数据层测试文件。
测试数据模板可固定测试数据层中代码的类和方法定义等内容。以下示例性的示出了测试数据模板:
其中,${classPath}、${className}、${methodName}和${testData}为测试数据模板中的变量,该些变量的具体值从写有测试数据的第二文件中获取。
步骤120-4、从写有测试用例的第三文件中获取具体值,并赋值给测试用例模板中的对应变量,生成验证层测试文件。
测试用例模板可固定接口验证层中代码的类的定义、类初始和清理方法定义、方法初始和清理方法定义、验证接口和功能用例方法定义、验证接口返回值的断言定义等。以下示例性的示出了测试用例模板:
其中,${classPath}、${dataPram}、${tempName}等为测试用例模板中的变量,该变量的具体值从写有测试用例的第三文件中获取。
需要说明的是,事实上,步骤120-2、步骤120-3、步骤120-4并无时序上的递进关系,可以并行执行,也可以依次执行,依次执行的步骤不限于先生成封装层测试文件、然后生成数据层测试文件、最后生成验证层测试文件,三个文件生成的顺序可随意调换。
本实施例中,将接口信息、测试数据和测试用例分别写入不同的文件,生成测试文件时分别从三个文件中获取具体值,实现了数据的物理分离,不仅可提高代码编写的效率,还可提高代码的可扩展性、可读性,易于后期维护。
与前述测试代码的生成方法实施例相对应,本申请还提供了测试代码的生成模块的实施例。
参见图2A,为本申请的测试代码的生成模块的一个实施例示意图,如图2A所示,该生成模块包括:获取单元201、测试文件生成单元202和代码生成单元203。
获取单元201用于获取待测系统对应的接口信息、测试数据和测试用例。
其中,接口信息包括以下参数中的至少一种:接口封装层类名、接口名称、请求地址、请求模块、数据格式、请求数据;
所述测试数据包括以下参数中的至少一种:测试数据层类名、数据提供模块名、测试数据;
所述测试用例包括以下参数中的至少一种:接口验证层类名、测试用例的模块名、待调用接口信息、测试数据层信息、接口数据变量数组、预期信息。
测试文件生成单元202用于分别将接口信息、测试数据和测试用例导入对应的模板中,以生成相应的封装层测试文件、数据层测试文件和验证层测试文件。
代码生成单元203用于根据所述封装层测试文件、所述数据层测试文件和所述验证层测试文件生成测试代码。
参见图2B,为本申请测试代码的生成模块的另一个实施例示意图,本实施例的测试代码生成模块与图2A示出的生成模块的结构基本相同,如图2B所示,不同之处在于,本实施例的生成模块还包括:模板生成单元204和读写单元205。
模板生成单元204用于分析测试框架的接口封装层、测试数据层和接口验证层,并根据模板引擎分别生成接口信息模板、测试数据模板和测试用例模板。
读写单元205用于分别将所述接口信息、所述测试数据和所述测试用例写入第一文件、第二文件和第三文件。
测试文件生成单元202具体用于:
从写有所述接口信息的第一文件中获取具体值,并赋值给所述接口信息模板中的对应变量;从写有所述测试数据的第二文件中获取具体值,并赋值给所述测试数据模板中的对应变量;从写有所述测试用例的第三文件中获取具体值,并赋值给所述测试用例模板中的对应变量。
图3A是本申请一示例性实施例示出的一种测试方法的流程图,该测试方法包括以下步骤:
步骤301、获取待测系统的测试代码。
具体的,该测试代码由上述实施例示出的测试代码的生成方法生成。
步骤302、运行测试代码,以针对该待测系统进行测试。
其中,使用现有的测试工具即能运行测试代码,对待测系统的接口进行测试,得到测试结果,具体测试过程,此处不再赘述。
图3B是本申请另一示例性实施例示出的一种测试方法的流程图,该测试方法与图3A示出的测试方法基本相同,如图3B所示,不同之处在于,步骤302之前,还包括:
步骤301-1、获取配置文件。
其中,该配置文件包括测试环境信息。
步骤302具体包括:
步骤302-1、运行所述测试代码,从配置文件中获取测试环境信息。
步骤302-2、根据测试环境信息访问测试环境,并在测试环境中对待测系统进行测试。
与前述测试方法实施例相对应,本申请还提供了测试系统的实施例。
参见图4A,为本申请测试系统的一个实施例示意图,如图4A所示,该测试系统包括:获取模块401和测试模块402;
获取模块401用于获取待测系统的测试代码。
其中,该测试代码由上述的测试代码的生成模块生成。
测试模块402用于运行测试代码,以针对待测系统进行测试,得到测试结果。
参见图4B,为本申请测试系统的另一个实施例示意图,本实施例的测试系统结构与图4A示出的基本相同,如图4B所示,不同之处在于,该测试系统还包括:文件获取模块403。
文件获取模块403用于获取配置文件。其中,配置文件包括测试环境信息。
测试模块401具体用于:
运行所述测试代码,以从所述配置文件中获取所述测试环境信息;
根据所述测试环境信息访问测试环境,并在所述测试环境中对所述待测系统进行测试。
参见图5,为本申请电子设备的一个实施例的结构示意图,示出了适于用来实现本发明实施方式的示例性电子设备50的框图。图5显示的电子设备50仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图5所示,电子设备50可以以通用计算设备的形式表现,例如其可以为服务器设备。电子设备50的组件可以包括但不限于:上述至少一个处理器51、上述至少一个存储器52、连接不同系统组件(包括存储器52和处理器51)的总线53。
总线53包括数据总线、地址总线和控制总线。
存储器52可以包括易失性存储器,例如随机存取存储器(RAM)521和/或高速缓存存储器522,还可以进一步包括只读存储器(ROM)523。
存储器52还可以包括具有一组(至少一个)程序模块524的程序工具525(或实用工具),这样的程序模块524包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
处理器51通过运行存储在存储器52中的计算机程序,从而执行各种功能应用以及数据处理,例如上述实施例所提供的测试代码的生成方法。
电子设备50也可以与一个或多个外部设备54(例如键盘、指向设备等)通信。这种通信可以通过输入/输出(I/O)接口55进行。并且,模型生成的电子设备50还可以通过网络适配器56与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器56通过总线53与模型生成的电子设备50的其它模块通信。应当明白,尽管图中未示出,可以结合模型生成的电子设备50使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、RAID(磁盘阵列)系统、磁带驱动器以及数据备份存储系统等。
应当注意,尽管在上文详细描述中提及了电子设备的若干单元/模块或子单元/模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多单元/模块的特征和功能可以在一个单元/模块中具体化。反之,上文描述的一个单元/模块的特征和功能可以进一步划分为由多个单元/模块来具体化。
本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现上述实施例所提供的测试代码的生成方法的步骤。
其中,可读存储介质可以采用的更具体可以包括但不限于:便携式盘、硬盘、随机存取存储器、只读存储器、可擦拭可编程只读存储器、光存储器件、磁存储器件或上述的任意合适的组合。
本申请实施例还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,本实施例的电子设备的具体结构与图5类似,此处不再赘述,不同之处在于,该处理器执行所述计算机程序时实现上述实施例所提供的测试方法。
本申请实施例还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述实施例所提供的测试方法。
以上所述仅为本公开的较佳实施例而已,并不用以限制本公开,凡在本公开的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本公开保护的范围之内。
Claims (16)
1.一种测试代码的生成方法,其特征在于,所述生成方法包括:
获取待测系统对应的接口信息、测试数据和测试用例;
分别将所述接口信息、所述测试数据和所述测试用例导入对应的模板中,以生成相应的封装层测试文件、数据层测试文件和验证层测试文件;
根据所述封装层测试文件、所述数据层测试文件和所述验证层测试文件生成测试代码。
2.如权利要求1所述的测试代码的生成方法,其特征在于,分别将所述接口信息、所述测试数据和所述测试用例导入对应的模板中,以生成相应的封装层测试文件、数据层测试文件和验证层测试文件,包括:
获取接口信息模板、测试数据模板和测试用例模板;
从所述接口信息中获取具体值赋值给所述接口信息模板中的对应变量,并生成封装层测试文件;
从所述测试数据中获取具体值赋值给所述测试数据模板中的对应变量,并生成数据层测试文件;
从所述测试用例中获取具体值赋值给所述测试用例模板中的对应变量,并生成验证层测试文件。
3.如权利要求2所述的测试代码的生成方法,其特征在于,获取接口信息模板、测试数据模板和测试用例模板的步骤之前,包括:
分析测试框架的接口封装层、测试数据层和接口验证层,并根据模板引擎分别生成接口信息模板、测试数据模板和测试用例模板。
4.如权利要求1所述的测试代码的生成方法,其特征在于,所述接口信息包括以下参数中的至少一种:接口封装层类名、接口名称、请求地址、请求方法、数据格式、请求数据;
和/或,所述测试数据包括以下参数中的至少一种:测试数据层类名、数据提供方法名、测试数据;
和/或,所述测试用例包括以下参数中的至少一种:接口验证层类名、测试用例的方法名、待调用接口信息、测试数据层信息、接口数据变量数组、预期信息。
5.如权利要求2所述的测试代码的生成方法,其特征在于,获取接口信息、测试数据和测试用例的步骤之后,还包括:
分别将所述接口信息、所述测试数据和所述测试用例写入第一文件、第二文件和第三文件;
从所述接口信息中获取具体值赋值给所述接口信息模板中的对应变量,包括:
从写有所述接口信息的第一文件中获取具体值,并赋值给所述接口信息模板中的对应变量;
从所述测试数据中获取具体值赋值给所述测试数据模板中的对应变量,包括:
从写有所述测试数据的第二文件中获取具体值,并赋值给所述测试数据模板中的对应变量;
从所述测试用例中获取具体值赋值给所述测试用例模板中的对应变量,包括:
从写有所述测试用例的第三文件中获取具体值,并赋值给所述测试用例模板中的对应变量。
6.一种测试方法,其特征在于,所述测试方法包括:
获取测试代码;所述测试代码由权利要求1-5任一项所述的测试代码的生成方法生成;
运行所述测试代码,以针对所述待测系统进行测试。
7.一种测试代码的生成模块,其特征在于,所述生成模块包括:
获取单元,用于获取待测系统对应的接口信息、测试数据和测试用例;
测试文件生成单元,用于分别将所述接口信息、所述测试数据和所述测试用例导入对应的模板中,以生成相应的封装层测试文件、数据层测试文件和验证层测试文件;
代码生成单元,用于根据所述封装层测试文件、所述数据层测试文件和所述验证层测试文件生成测试代码。
8.如权利要求7所述的测试代码的生成模块,其特征在于,所述测试文件生成单元具体用于:
获取接口信息模板、测试数据模板和测试用例模板;
从所述接口信息中获取具体值赋值给所述接口信息模板中的对应变量,并生成封装层测试文件;
从所述测试数据中获取具体值赋值给所述测试数据模板中的对应变量,并生成数据层测试文件;
从所述测试用例中获取具体值赋值给所述测试用例模板中的对应变量,并生成验证层测试文件。
9.如权利要求8所述的测试代码的生成模块,其特征在于,所述生成模块还包括:
模板生成单元,用于分析测试框架的接口封装层、测试数据层和接口验证层,并根据模板引擎分别生成接口信息模板、测试数据模板和测试用例模板。
10.如权利要求8所述的测试代码的生成模块,其特征在于,所述生成模块还包括:
读写单元,用于分别将所述接口信息、所述测试数据和所述测试用例写入第一文件、第二文件和第三文件;
在将具体值赋值给所述接口信息模板中的对应变量时,所述测试文件生成单元具体用于:
从写有所述接口信息的第一文件中获取具体值,并赋值给所述接口信息模板中的对应变量;
在将具体值赋值给所述测试数据模板中的对应变量时,所述测试文件生成单元具体用于:
从写有所述测试数据的第二文件中获取具体值,并赋值给所述测试数据模板中的对应变量;
在将具体值赋值给所述测试用例模板中的对应变量时,所述测试文件生成单元具体用于:
从写有所述测试用例的第三文件中获取具体值,并赋值给所述测试用例模板中的对应变量。
11.一种测试系统,其特征在于,所述测试系统包括:
获取模块,用于获取测试代码;所述测试代码由权利要求7-10任一项所述的测试代码的生成模块生成;
测试模块,用于运行所述测试代码,以针对所述待测系统进行测试。
12.如权利要求11所述的测试系统,其特征在于,所述测试系统还包括:
文件获取模块,用于获取配置文件;所述配置文件包括测试环境信息;
所述测试模块具体用于:
运行所述测试代码,以从所述配置文件中获取所述测试环境信息;
根据所述测试环境信息访问测试环境,并在所述测试环境中对所述待测系统进行测试。
13.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至5任一项所述的测试代码的生成方法。
14.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至5任一项所述的测试代码的生成方法的步骤。
15.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求6所述的测试方法。
16.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求6所述的测试方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910566044.3A CN110309071B (zh) | 2019-06-27 | 2019-06-27 | 测试代码的生成方法及模块、测试方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910566044.3A CN110309071B (zh) | 2019-06-27 | 2019-06-27 | 测试代码的生成方法及模块、测试方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110309071A true CN110309071A (zh) | 2019-10-08 |
CN110309071B CN110309071B (zh) | 2023-01-24 |
Family
ID=68076801
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910566044.3A Active CN110309071B (zh) | 2019-06-27 | 2019-06-27 | 测试代码的生成方法及模块、测试方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110309071B (zh) |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110888804A (zh) * | 2019-11-11 | 2020-03-17 | 网联清算有限公司 | 接口测试方法以及接口测试平台 |
CN110955600A (zh) * | 2019-11-27 | 2020-04-03 | 中国银行股份有限公司 | 接口测试方法及装置 |
CN111078555A (zh) * | 2019-12-16 | 2020-04-28 | 深圳市朱墨科技有限公司 | 一种测试文件的生成方法、系统、服务器和存储介质 |
CN111181805A (zh) * | 2019-12-25 | 2020-05-19 | 航天信息股份有限公司 | 一种基于测试用例的微服务测试挡板生成方法及系统 |
CN111240967A (zh) * | 2020-01-03 | 2020-06-05 | 北京字节跳动网络技术有限公司 | 一种代码生成方法及装置 |
CN111324546A (zh) * | 2020-03-20 | 2020-06-23 | 普信恒业科技发展(北京)有限公司 | 一种任务测试方法及装置 |
CN111522741A (zh) * | 2020-04-14 | 2020-08-11 | 北京奇艺世纪科技有限公司 | 接口测试代码生成方法、装置、电子设备及可读存储介质 |
CN112559339A (zh) * | 2020-12-11 | 2021-03-26 | 中国信托登记有限责任公司 | 一种基于数据模板引擎的自动化测试验证方法及其测试系统 |
CN112597011A (zh) * | 2020-12-16 | 2021-04-02 | 测点大数据(苏州)有限公司 | 一种基于多语言的算子测试用例生成和优化方法 |
CN112817864A (zh) * | 2021-02-23 | 2021-05-18 | 北京字节跳动网络技术有限公司 | 一种测试文件的生成方法、装置、设备及介质 |
CN112948257A (zh) * | 2021-03-23 | 2021-06-11 | 北京鸿腾智能科技有限公司 | 内核模糊测试用例生成方法、装置、设备及存储介质 |
CN113495829A (zh) * | 2020-03-20 | 2021-10-12 | 北京海致星图科技有限公司 | 一种接口自动化测试方法及系统 |
CN113742008A (zh) * | 2021-09-13 | 2021-12-03 | 挂号网(杭州)科技有限公司 | 接口调用方法、装置、电子设备及存储介质 |
CN113778897A (zh) * | 2021-09-26 | 2021-12-10 | 网易有道信息技术(江苏)有限公司 | 接口的自动测试方法、装置、设备及存储介质 |
CN113806211A (zh) * | 2020-06-17 | 2021-12-17 | 北京同邦卓益科技有限公司 | 一种用于接口测试的数据处理方法及装置 |
CN114721969A (zh) * | 2022-06-07 | 2022-07-08 | 广州易方信息科技股份有限公司 | 接口自动化测试数据和测试代码分离的方法及装置 |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020188595A1 (en) * | 2001-03-23 | 2002-12-12 | Mark Underseth | System and method for automatically generating code templates for communication via a predefined communication interface |
US6496833B1 (en) * | 1999-11-01 | 2002-12-17 | Sun Microsystems, Inc. | System and method for generating code for query object interfacing |
US7000224B1 (en) * | 2000-04-13 | 2006-02-14 | Empirix Inc. | Test code generator, engine and analyzer for testing middleware applications |
US20090018811A1 (en) * | 2007-07-09 | 2009-01-15 | International Business Machines Corporation | Generation of test cases for functional testing of applications |
JP2013029999A (ja) * | 2011-07-28 | 2013-02-07 | Ntt Comware Corp | テストコード生成装置、テストコード生成方法及びテストコード生成プログラム |
US8745641B1 (en) * | 2011-07-14 | 2014-06-03 | Google Inc. | Automatic verification and anomaly detection in a representational state transfer (REST) application programming interface |
US20140289699A1 (en) * | 2009-08-18 | 2014-09-25 | Adobe Systems Incorporated | Methods and Systems for Data Service Development |
CN104809056A (zh) * | 2014-01-27 | 2015-07-29 | 阿里巴巴集团控股有限公司 | 一种接口测试代码的生成方法和装置 |
CN105260189A (zh) * | 2015-11-02 | 2016-01-20 | 江苏马上游科技股份有限公司 | 基于模型驱动生成代码的方法及系统 |
CN106021118A (zh) * | 2016-06-20 | 2016-10-12 | 深圳充电网科技有限公司 | 测试代码生成方法及装置、测试框架代码执行方法及装置 |
CN106598851A (zh) * | 2016-12-05 | 2017-04-26 | 广州唯品会信息科技有限公司 | 软件接口测试方法及系统 |
US20170271027A1 (en) * | 2016-03-21 | 2017-09-21 | International Business Machines Corporation | Methods and systems of testing interfaces of computer storage for storage vulnerabilities |
CN109783084A (zh) * | 2019-01-18 | 2019-05-21 | 广州思坦德计算机信息科技有限公司 | 一种计算机代码自动生成方法、系统、装置和存储介质 |
-
2019
- 2019-06-27 CN CN201910566044.3A patent/CN110309071B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6496833B1 (en) * | 1999-11-01 | 2002-12-17 | Sun Microsystems, Inc. | System and method for generating code for query object interfacing |
US7000224B1 (en) * | 2000-04-13 | 2006-02-14 | Empirix Inc. | Test code generator, engine and analyzer for testing middleware applications |
US20020188595A1 (en) * | 2001-03-23 | 2002-12-12 | Mark Underseth | System and method for automatically generating code templates for communication via a predefined communication interface |
US20090018811A1 (en) * | 2007-07-09 | 2009-01-15 | International Business Machines Corporation | Generation of test cases for functional testing of applications |
US20140289699A1 (en) * | 2009-08-18 | 2014-09-25 | Adobe Systems Incorporated | Methods and Systems for Data Service Development |
US8745641B1 (en) * | 2011-07-14 | 2014-06-03 | Google Inc. | Automatic verification and anomaly detection in a representational state transfer (REST) application programming interface |
JP2013029999A (ja) * | 2011-07-28 | 2013-02-07 | Ntt Comware Corp | テストコード生成装置、テストコード生成方法及びテストコード生成プログラム |
CN104809056A (zh) * | 2014-01-27 | 2015-07-29 | 阿里巴巴集团控股有限公司 | 一种接口测试代码的生成方法和装置 |
CN105260189A (zh) * | 2015-11-02 | 2016-01-20 | 江苏马上游科技股份有限公司 | 基于模型驱动生成代码的方法及系统 |
US20170271027A1 (en) * | 2016-03-21 | 2017-09-21 | International Business Machines Corporation | Methods and systems of testing interfaces of computer storage for storage vulnerabilities |
CN106021118A (zh) * | 2016-06-20 | 2016-10-12 | 深圳充电网科技有限公司 | 测试代码生成方法及装置、测试框架代码执行方法及装置 |
CN106598851A (zh) * | 2016-12-05 | 2017-04-26 | 广州唯品会信息科技有限公司 | 软件接口测试方法及系统 |
CN109783084A (zh) * | 2019-01-18 | 2019-05-21 | 广州思坦德计算机信息科技有限公司 | 一种计算机代码自动生成方法、系统、装置和存储介质 |
Non-Patent Citations (2)
Title |
---|
卓欣欣等: "服务接口测试自动化工具的研究", 《计算机研究与发展》 * |
谢冰等: "一种基于面向对象测试模型的测试代码生成方法与工具", 《计算机研究与发展》 * |
Cited By (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110888804A (zh) * | 2019-11-11 | 2020-03-17 | 网联清算有限公司 | 接口测试方法以及接口测试平台 |
CN110888804B (zh) * | 2019-11-11 | 2022-02-01 | 网联清算有限公司 | 接口测试方法以及接口测试平台 |
CN110955600A (zh) * | 2019-11-27 | 2020-04-03 | 中国银行股份有限公司 | 接口测试方法及装置 |
CN110955600B (zh) * | 2019-11-27 | 2023-11-10 | 中国银行股份有限公司 | 接口测试方法及装置 |
CN111078555B (zh) * | 2019-12-16 | 2024-04-23 | 深圳市朱墨科技有限公司 | 一种测试文件的生成方法、系统、服务器和存储介质 |
CN111078555A (zh) * | 2019-12-16 | 2020-04-28 | 深圳市朱墨科技有限公司 | 一种测试文件的生成方法、系统、服务器和存储介质 |
CN111181805A (zh) * | 2019-12-25 | 2020-05-19 | 航天信息股份有限公司 | 一种基于测试用例的微服务测试挡板生成方法及系统 |
CN111181805B (zh) * | 2019-12-25 | 2022-04-29 | 航天信息股份有限公司 | 一种基于测试用例的微服务测试挡板生成方法及系统 |
CN111240967B (zh) * | 2020-01-03 | 2023-09-15 | 北京字节跳动网络技术有限公司 | 一种代码生成方法及装置 |
CN111240967A (zh) * | 2020-01-03 | 2020-06-05 | 北京字节跳动网络技术有限公司 | 一种代码生成方法及装置 |
CN111324546A (zh) * | 2020-03-20 | 2020-06-23 | 普信恒业科技发展(北京)有限公司 | 一种任务测试方法及装置 |
CN113495829A (zh) * | 2020-03-20 | 2021-10-12 | 北京海致星图科技有限公司 | 一种接口自动化测试方法及系统 |
CN111522741A (zh) * | 2020-04-14 | 2020-08-11 | 北京奇艺世纪科技有限公司 | 接口测试代码生成方法、装置、电子设备及可读存储介质 |
CN111522741B (zh) * | 2020-04-14 | 2023-11-14 | 北京奇艺世纪科技有限公司 | 接口测试代码生成方法、装置、电子设备及可读存储介质 |
CN113806211A (zh) * | 2020-06-17 | 2021-12-17 | 北京同邦卓益科技有限公司 | 一种用于接口测试的数据处理方法及装置 |
CN112559339B (zh) * | 2020-12-11 | 2023-06-13 | 中国信托登记有限责任公司 | 一种基于数据模板引擎的自动化测试验证方法及其测试系统 |
CN112559339A (zh) * | 2020-12-11 | 2021-03-26 | 中国信托登记有限责任公司 | 一种基于数据模板引擎的自动化测试验证方法及其测试系统 |
CN112597011A (zh) * | 2020-12-16 | 2021-04-02 | 测点大数据(苏州)有限公司 | 一种基于多语言的算子测试用例生成和优化方法 |
CN112597011B (zh) * | 2020-12-16 | 2024-04-16 | 测点大数据(苏州)有限公司 | 一种基于多语言的算子测试用例生成和优化方法 |
CN112817864A (zh) * | 2021-02-23 | 2021-05-18 | 北京字节跳动网络技术有限公司 | 一种测试文件的生成方法、装置、设备及介质 |
CN112817864B (zh) * | 2021-02-23 | 2024-04-16 | 北京字节跳动网络技术有限公司 | 一种测试文件的生成方法、装置、设备及介质 |
CN112948257A (zh) * | 2021-03-23 | 2021-06-11 | 北京鸿腾智能科技有限公司 | 内核模糊测试用例生成方法、装置、设备及存储介质 |
CN112948257B (zh) * | 2021-03-23 | 2024-05-14 | 三六零数字安全科技集团有限公司 | 内核模糊测试用例生成方法、装置、设备及存储介质 |
CN113742008B (zh) * | 2021-09-13 | 2024-04-02 | 挂号网(杭州)科技有限公司 | 接口调用方法、装置、电子设备及存储介质 |
CN113742008A (zh) * | 2021-09-13 | 2021-12-03 | 挂号网(杭州)科技有限公司 | 接口调用方法、装置、电子设备及存储介质 |
CN113778897A (zh) * | 2021-09-26 | 2021-12-10 | 网易有道信息技术(江苏)有限公司 | 接口的自动测试方法、装置、设备及存储介质 |
CN113778897B (zh) * | 2021-09-26 | 2024-03-29 | 网易有道信息技术(江苏)有限公司 | 接口的自动测试方法、装置、设备及存储介质 |
CN114721969A (zh) * | 2022-06-07 | 2022-07-08 | 广州易方信息科技股份有限公司 | 接口自动化测试数据和测试代码分离的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN110309071B (zh) | 2023-01-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110309071A (zh) | 测试代码的生成方法及模块、测试方法及系统 | |
CN104407980B (zh) | 移动应用自动化测试装置和方法 | |
US8914679B2 (en) | Software testing automation framework | |
Miles et al. | Prime: A methodology for developing provenance-aware applications | |
US9465718B2 (en) | Filter generation for load testing managed environments | |
CN109474488A (zh) | 接口测试方法、装置及计算机设备 | |
CN104268079B (zh) | 一种pos应用程序测试的方法及系统 | |
US20130226551A1 (en) | Predicting system performance and capacity using software module performance statistics | |
CN108460068A (zh) | 报表导入导出的方法、装置、存储介质及终端 | |
CN109426611A (zh) | 一种软件测试方法和装置 | |
CN110134596A (zh) | 测试文档的生成方法及终端设备 | |
US10241957B2 (en) | Workload patterns for realistic load recreation in performance testing | |
Dakkak et al. | Towards continuous data collection from in-service products: Exploring the relation between data dimensions and collection challenges | |
CN109711849B (zh) | 以太坊地址画像生成方法、装置、电子设备及存储介质 | |
Guana et al. | Improving software product line configuration: A quality attribute-driven approach | |
Häser et al. | An integrated tool environment for experimentation in domain specific language engineering | |
CN116561003A (zh) | 测试数据生成方法、装置、计算机设备和存储介质 | |
Lipka et al. | A method for semi-automated generation of test scenarios based on use cases | |
He et al. | PBR vs. checklist: a replication in the n-fold inspection context | |
CN106959926A (zh) | 一种面向软件升级的软件测试模块及方法 | |
CN107038110A (zh) | 白盒测试的方法和系统 | |
CN103186551B (zh) | 基于web应用平台的异常分析方法及仿真系统 | |
Mohagheghi | An approach for empirical evaluation of model-driven engineering in multiple dimensions | |
Kakadiya | Block-chain oriented software testing approach | |
Dauphin et al. | Specification-driven performance monitoring of SDL/MSC-specified protocols |
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 |