基于对象构造数据的自动化测试方法、可读介质及设备技术

技术编号:18940315 阅读:25 留言:0更新日期:2018-09-15 11:01
本发明专利技术提供一种基于对象构造数据的自动化测试方法,包括以下步骤:提取脚本对象;依据所述脚本对象,创建测试数据对象;根据所述测试数据对象,提取所述脚本对象中的待测试单元;依据所述待测试单元,创建所述待测试单元对应的测试数据。本发明专利技术的测试方法使得测试脚本代码与测试数据分离,测试数据以测试单元为对象进行一一映射,测试代码脚本在测试文件中任意修改测试数据,无需对测试脚本进行维护修改。还涉及相关的计算机可读存储介质以及相关电子设备。

Automated test method, readable medium and equipment for data construction based on object

The invention provides an automatic test method based on object construction data, including the following steps: extracting script object; creating test data object according to the script object; extracting test unit in the script object according to the test data object; and creating the test unit according to the test unit. Test unit corresponding test data. The test method of the invention separates the test script code from the test data, and the test data is mapped one by one with the test unit as the object. The test code script arbitrarily modifies the test data in the test file without any maintenance and modification of the test script. It also involves related computer readable storage media and related electronic devices.

【技术实现步骤摘要】
基于对象构造数据的自动化测试方法、可读介质及设备
本专利技术涉及软件测试领域,尤其涉及一种基于对象构造数据的自动化测试方法、相关计算机可读存储介质以及电子设备。
技术介绍
现有的单元测试,接口测试,自动化测试,在脚本中测试数据构造时,多采用csv,xml,excel等文件对测试的数据进行数据与测试脚本分离,但是所有的测试数据均无统一规范或者脚本在使用时,对应关系无法进行有效映射,导致后期维护脚本及测试脚本开发成本高,在编写脚本过程中,对数据的获取需使用硬编码方式完成,使脚本代码维护性及可读性差。
技术实现思路
为了克服上述问题的至少一个方面,本专利技术实施例提供一种基于对象构造数据的自动化测试方法。根据本专利技术的一个方面,提供一种基于对象构造数据的自动化测试方法,包括如下步骤:步骤S1,提取脚本对象;步骤S2,依据所述脚本对象,创建测试数据对象;步骤S3,根据所述测试数据对象,提取所述脚本对象中的待测试单元;步骤S4,依据所述待测试单元,创建所述待测试单元对应的测试数据。根据一些实施例,步骤S1包括:识别所述脚本对象,对所述脚本对象进行定义。根据一些实施例,步骤S1中所述脚本为任意编程语言。根据一些实施例,步骤S2通过识别所述脚本对象进行测试数据对象的构造。根据一些实施例,步骤S2包括:将所述测试数据对象存储为yaml文件。根据一些实施例,步骤S4包括为所述待测试单元进行测试数据对象中测试单元数据的构造。根据一些实施例,步骤S4包括为所述测试数据对象创建数据子单元,将测试数据存储为yaml文件。根据本专利技术的另一个方面,提供一种计算机可读存储介质,其上存储有可执行指令,指令在由处理器执行时,可以实现根据上述实施例中的任一项所述的基于对象构造数据的自动化测试方法的步骤。根据本专利技术的又一个方面,提供一种电子设备,包括:存储器,用于存储可执行指令;以及处理器,用于执行存储器中存储的可执行指令,以实现根据上述实施例中任一项所述的基于对象构造数据的自动化测试方法的步骤。与现有技术相比,本专利技术具有以下优点:测试脚本代码与测试数据分离,测试数据以测试单元为对象进行一一映射,测试代码脚本在测试文件中任意修改测试数据,无需对测试脚本进行维护修改。附图说明通过下文中参照附图对本专利技术所作的描述,本专利技术的其它目的和优点将显而易见,并可帮助对本专利技术有全面的理解。图1是本专利技术实施例的工作流程图;图2是本专利技术实施例的流程简图;图3是本专利技术实施例的调用关系图;图4是本专利技术实施例的计算机可读存储介质的结构示意图;图5是本专利技术实施例的电子设备的结构示意图。具体实施方式为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。在本专利技术实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本专利技术。除非另外定义,本专利技术使用的技术术语或者科学术语应当为本专利技术所属领域内具有一般技能的人士所理解的通常意义。本专利技术提供一种基于对象构造数据的自动化测试方法,根据图1所示,该方法包括以下步骤:步骤S1,提取脚本对象;步骤S2,依据所提取的脚本对象,创建测试数据对象;步骤S3,根据所创建的测试数据对象,提取脚本对象中的待测试单元;步骤S4,依据所测试的待测试单元,创建该待测试单元对应的测试数据。下面对上述步骤进行详细的说明。步骤S1,提取脚本对象。脚本是批处理文件的延伸,是一种纯文本保存的程序,一般来说的计算机脚本程序是确定的一系列控制计算机进行运算操作动作的组合,在其中可以实现一定的逻辑分支等。步骤S1中的脚本可以是任意语言,例如可以是Ruby这种简单快捷面向对象的脚本语言,也可以是Python这种面向对象直译式计算机程序设计语言,还可以是Java这种可以撰写跨平台应用程序的面向对象的程序设计语言,当然,并不局限于上述语言。编程语言中的“类”往往指一个数据功能的集合,而“对象”则是具有实际内存的类。如果将“类”比作是一份设计图纸的话,那么“对象”就是指根据设计图纸创建的实物。在本实施例中,测试单元为测试对象。在步骤S1中,需要对所测脚本单元对象进行识别,并且为了编程的方便,一般可以对脚本对象进行定义,例如:classTestCheckWhiteList。脚本单元对象是测试对象定义的类对象,也即是测试对象的实例化,就是通过测试对象构造多个具体的对象。实例化对象有两种方式,即从栈实例化和从堆实例化。从栈中实例化对象具体方式如下,如果要定义一个对象,可以写如下代码:TVtv。如果要定义一个对象数组,可以写如下代码:TVtv[20]。而从堆中实例化对象,则需要使用指针指向new运算符申请出来的内存。步骤S2,依据所提取的脚本对象,创建测试数据对象。通过识别所测脚本对象进行测试数据对象的构造,识别所测脚本对象也即是对所测脚本对象进行读取,检查所测脚本对象的测试属性,测试属性例如可以是测试的类型,然后根据脚本对象的测试属性构造能够实现测试功能的测试数据对象。例如,脚本对象可以是TestCheckWhiteList,这个脚本对象是检查主播的白名单,查看哪些主播有权限创建电台,可以通过识别脚本对象TestCheckWhiteList构造一个检查主播白名单的测试数据对象,也即是创建对应的函数,测试数据对象可以例如为:上述代码中“login:{″username″:″Test″,″password″:″123456″}”是输入了主播的信息,比如,账号和密码,当然也可以是其他能够表明身份的信息,然后可以回复“0”,这个“0”后面会讲到它的具体含义,同时还回复″msg″:″操作成功″,也即是反馈了一个操作成功的信息,说明这个函数是正常运行的。可以将上述构造好的测试数据对象存储为yaml文件。yaml是“行导向的”,因此,就算想由现有程序的混乱输出,转换成yaml格式,并保留大部分的原始文件之外观,也非常简单。因为它不需要平衡封闭的标签、括号及引号,可以从很简单的利用程式,从报表产生yaml。同样,空格分隔可让使用行导向的命令如:grep、Awk、perl、ruby和Python,来应急性的过滤yaml文件时更加方便。而且yaml是纯粹用来表达资料的语言,所以内部不会存代码注入的可执行命令。这代表剖析器会相当安全地解析文件,而不用担心潜在与执行命令相关的安全漏洞。格式转换的简便性和可靠的安全性让yaml成为了脚本语言中存储数据比较好的选择。步骤S3,根据所创建的测试数据对象,提取脚本对象中的待测试单元。也即是对上述步骤中创建的测试数据对象中具体的待测试单元进行提取,也即是给待测试单元构造一个具体的函数。下面用python语言来进行说明,在下面这段代码中,使用的测试框架为pyunit,使用pyunit可以实现自动单元测试,这里可以通过框架来获取数据,即通过获取类方法,也即是具体的测试单元,进而通过对象映射,也即是调用对应的函数,来获取具体的数据。具体的测试脚本可以例如:deftest_case01_normal(self):u″′正常本文档来自技高网...

【技术保护点】
1.一种基于对象构造数据的自动化测试方法,其特征在于,包括:步骤S1,提取脚本对象;步骤S2,依据所述脚本对象,创建测试数据对象;步骤S3,根据所述测试数据对象,提取所述脚本对象中的待测试单元;步骤S4,依据所述待测试单元,创建所述待测试单元对应的测试数据。

【技术特征摘要】
1.一种基于对象构造数据的自动化测试方法,其特征在于,包括:步骤S1,提取脚本对象;步骤S2,依据所述脚本对象,创建测试数据对象;步骤S3,根据所述测试数据对象,提取所述脚本对象中的待测试单元;步骤S4,依据所述待测试单元,创建所述待测试单元对应的测试数据。2.根据权利要求1所述的方法,其特征在于,所述步骤S1包括:识别所述脚本对象,对所述脚本对象进行定义。3.根据权利要求1所述的方法,其特征在于,所述步骤S1中所述脚本为任意编程语言。4.根据权利要求2所述的方法,其特征在于,所述步骤S2通过识别所述脚本对象进行测试数据对象的构造。5.根据权利要求1所述的方法,其特征在于,所述步骤S2包括:将所...

【专利技术属性】
技术研发人员:谭敏张文明陈少杰
申请(专利权)人:武汉斗鱼网络科技有限公司
类型:发明
国别省市:湖北,42

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

1