自动化脚本转换方法、装置、计算机设备和存储介质与流程

文档序号:17773318发布日期:2019-05-28 19:42阅读:196来源:国知局
自动化脚本转换方法、装置、计算机设备和存储介质与流程

本申请涉及软件测试技术领域,特别是涉及一种自动化脚本转换方法、装置、计算机设备和存储介质。



背景技术:

软件测试(softwaretesting),描述一种用来促进鉴定软件的正确性、完整性、安全性和质量的过程。换句话说,软件测试是一种实际输出与预期输出之间的审核或者比较过程。软件测试的经典定义是:在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。

测试用例(testcase),是为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,以便测试某个程序路径或核实是否满足某个特定需求。

对测试用例的执行步骤和期望结果的描述,现有的做法是使用自然语言来进行文字描述,在后续需要进行用例自动化时,再根据用例描述,编写自动化脚本,不够方便快捷,通用性不强,效率较低。



技术实现要素:

基于此,有必要针对对测试用例的执行步骤和期望结果的描述,现有的做法是使用自然语言来进行文字描述,在后续需要进行用例自动化时,再根据用例描述,编写自动化脚本,不够方便快捷,通用性不强,效率较低的技术问题,提供一种自动化脚本转换方法、装置、计算机设备和存储介质。

一种自动化脚本转换方法,所述方法包括:

建立自动化脚本框架;

将测试用例填入所述自动化脚本框架中,得到自动化脚本数据;

将所述自动化脚本数据转换为自动化脚本。

在其中一个实施例中,所述自动化脚本框架的参数包括测试用例的步骤、期望结果和对应的脚本语言。

在其中一个实施例中,所述将测试用例填入所述自动化脚本框架中,得到自动化脚本数据包括:

将测试用例的步骤、期望结果以及对应的脚本语言填入所述自动化脚本框架中,得到自动化脚本数据。

在其中一个实施例中,所述建立自动化脚本框架之前还包括:

编写将自动化脚本数据转化为自动化脚本的方法函数。

在其中一个实施例中,将所述自动化脚本数据转换为自动化脚本包括:

基于所述方法函数将述自动化脚本数据转换为自动化脚本。

在其中一个实施例中,所述自动化脚本框架的参数还包括进行测试的预设条件。

在其中一个实施例中,所述测试用例包括多个类型的测试。

一种自动化脚本转换装置,所述装置包括:

框架建立模块,用于建立自动化脚本框架;

测试用例填入模块,用于将测试用例填入所述自动化脚本框架中,得到自动化脚本数据;

转换模块,用于将所述自动化脚本数据转换为自动化脚本。

一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:

建立自动化脚本框架;

将测试用例填入所述自动化脚本框架中,得到自动化脚本数据;

将所述自动化脚本数据转换为自动化脚本。

一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:

建立自动化脚本框架;

将测试用例填入所述自动化脚本框架中,得到自动化脚本数据;

将所述自动化脚本数据转换为自动化脚本。

上述自动化脚本转换方法、装置、计算机设备和存储介质,通过使用自行规定的语法建立自动化脚本框架,将测试用例的步骤均填入所述自动化脚本框架中,对测试用例的编写方式进行约束,得到自动化脚本数据,并将自动化脚本数据转换为自动化脚本的方法,使得在编写测试用例时,既不牺牲测试用例的可读性,又不必再去使用编程语言来编写脚本,一步到位,更加方便快捷,通用性更强,提高了测试效率。

附图说明

图1为本发明一个实施例中自动化脚本转换方法的流程示意图;

图2为本发明一个实施例中自动化脚本转换装置的结构框图;

图3为本发明一个实施例中计算机设备的内部结构图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

软件测试是软件工程不可或缺的一环,是验证软件质量的重要手段,测试用例的编写,更是软件测试岗位的基础技能之一。

目前将测试用例转换为自动化脚本常见的做法是:

①先用“自然语言”编写测试用例;

②对于需要进行自动化的用例,再使用python、java等编程语言编写自动化测试脚本。

请参阅图1,图1为本发明一实施例的自动化脚本转换方法的流程示意图。

在本实施例中,所述自动化脚本转换方法包括:

步骤100,建立自动化脚本框架。

在本实施例中,所述建立自动化脚本框架包括使用自行规定的语法建立自动化脚本框架。

示例性地,所述自动化脚本框架的参数包括测试用例的步骤、期望结果、进行测试的预设条件和对应的脚本语言。

在本实施例中,所述建立自动化脚本框架之前还包括编写将自动化脚本数据转化为自动化脚本的方法函数。可以理解的,所述方法函数用于将填充有测试用例的自动化脚本框架转换为自动化脚本。

步骤110,将测试用例填入所述自动化脚本框架中,得到自动化脚本数据。

在本实施例中,所述将测试用例填入所述自动化脚本框架中,得到自动化脚本数据包括将测试用例的步骤、期望结果以及对应的脚本语言填入所述自动化脚本框架中,得到自动化脚本数据。

示例性地,若测试用例适用的用户场景为发布一条常用的货物资源,测试步骤为:

(1)点击用户界面的“常发货源”图标;

(2)点击用户界面上第一条货源的“发布”按钮;

(3)点击用户界面上的“发布”按钮。

上述测试的期望结果为跳转到“发布成功”界面。

表1

示例性地,表1为将测试用例的步骤、期望结果以及对应的脚本语言填入建立的自动化脚本框架中得到的自动化脚本数据。

具体地,步骤(1)的点击用户界面的“常发货源”图标的操作,对应表1中的“用例执行步骤”中的步骤1;步骤(1)执行完毕后,期望结果是:跳转后的页面包含“常发货源”的标题,此期望结果对应表1中的“用例期望结果”中的步骤1;

步骤(2)的点击用户界面上第一条货源的“发布”按钮的操作,对应的是表1中的“用例执行步骤”中的步骤2;步骤(2)执行完毕后,期望结果是:跳转后的页面包含“发布”按钮,此期望结果对应表1中的“用例期望结果”中的步骤2;

步骤(3)的点击用户界面上的“发布”按钮的操作,对应的是表1中的“用例执行步骤”中的步骤3;步骤(3)执行完毕后,期望结果是:跳转后的页面包含“发布成功”的标题,此期望结果对应表1中的“用例期望结果”中的步骤3。

表1中的用例执行步骤中的“操作对象的坐标范围”,是备用的,在需要使用坐标定位元素时,可作为辅助信息使用。

在本实施例中,所述自动化脚本框架的参数还包括进行测试的预设条件,即表1中的用例预置条件,只有满足进行测试的预设条件时,所述自动化脚本才开始进行测试。

步骤120,将所述自动化脚本数据转换为自动化脚本。

可以理解的,只需预先编写将表1的自动化脚本数据转换成自动化脚本的方法函数,并在所述自动化脚本数据完成后使用方法函数进行转换,即可得到基于上述测试用例的自动化脚本。

示例性地,上述自动化脚本转换方法包括:

1、根据测试分析,确定测试用例对应的场景、用例预置条件、测试步骤、期望结果、是否需要自动化,整理以上信息并填入表1的对应位置。

2、将测试用例自动化相关的元素进行提取,比如:测试步骤点击用户界面上的“发布”按钮中,点击,对应的脚本语言是click();发布按钮,对应的id是publish_goods,对应的text值是“发布”;期望结果“页面包含发布成功标题”中,发布成功标题,对应的id是tv_title,对应的text值是“发布成功”,将以上内容填入表1的对应位置。

3、基于所述方法函数,将表1转换为自动化脚本,以表1中的用例执行步骤3为例,该步骤将转换成类似find_element_by_id(“发布”).click()的代码片段,以表1中的用例期望结果3为例,该期望结果将转换成类似find_element_by_id(“发布成功”)的代码片段。其他各用例执行步骤和用例期望结果以同样的方式进行转换。

可以理解的,基于转换的自动化脚本,所述测试用例即可自动对相应场景进行测试,并判断测试结果是否符合预期结果,以得到测试是否通过的结论。

如果界面对应的元素不唯一,可以参考该元素对应的坐标,以表1中的用例测试步骤3为例,如果界面有多个发布按钮,各种元素均相同,此时可以生成类似self.device.tap([(36,1586),(1044,1730)],100)的代码片段,以对相应元素的坐标进行定位,从而实现测试步骤的操作。

可以理解的,当所述测试用例的步骤和期望结果改变时,只需根据需求改变填入表1相应位置的信息即可,例如,当一个用例执行步骤的期望结果包含多个类型时,只需在用例执行步骤对应的用例期望结果栏中添加多个类型的期望结果,并在多个期望结果之间建立与或非的对应关系即可。

在其它实施例中,所述自动化脚本转换方法还包括基于测试用例对软件进行多个类型的测试,得到多个类型的测试结果。

在其它实施例中,所述多个类型的测试包括接口测试、ui关键字测试以及ui图片对比测试。示例性地,所述接口测试用于测试是否调用了正确的接口,所述ui关键字测试用于测试跳转的界面中是否包含预设的关键词,所述ui图片对比测试用于测试跳转的界面与预设界面的截图是否一致。

具体地,所述基于测试用例对软件进行多个类型的测试包括基于测试用例对软件进行接口测试、ui关键字测试以及ui图片对比测试中的至少两种测试。

可以理解的,在其它实施例中,还可以基于测试用例对软件进行其他类型的测试,具体类型取决于实际需求。

示例性地,所述基于测试用例对软件进行多个类型的测试,得到多个类型的测试结果之前还包括获取每个测试类型的期望结果。示例性地,所述获取每个测试类型的期望结果包括获取接口测试期望结果、ui关键字测试期望结果和ui图片对比测试期望结果。

具体地,当调用的接口与接口测试期望结果相同时,接口测试结果为通过;当跳转的界面包含的关键词与ui关键字测试期望结果相同时,ui关键字测试结果为通过;当跳转的界面与ui图片对比测试期望结果相同时,ui图片对比测试结果为通过。

在其它实施例中,所述自动化脚本转换方法还包括对多个类型的测试结果进行加权计算,得到综合测试结果。

在其它实施例中,所述对多个类型的测试结果进行加权计算,得到综合测试结果包括对多个类型的测试结果进行加权计算,得到综合测试结果和测试不通过的测试类型。

在其它实施例中,所述对多个类型的测试结果进行加权计算,得到综合测试结果和测试不通过的测试类型包括对多个类型的测试结果进行加权计算,当所有测试类型的测试结果均为通过时,综合测试结果为通过。

示例性地,所述对多个类型的测试结果进行加权计算,得到综合测试结果和测试不通过的测试类型还包括当任意一个测试类型的结果为不通过时,综合测试结果为不通过,且显示测试不通过的测试类型。

具体地,当所述多个类型的测试为接口测试、ui关键字测试和ui图片对比测试时,对各个类型的测试结果进行加权计算,仅当接口测试结果为通过,且ui关键字测试结果为通过,且ui图片对比测试结果为通过时,所述综合测试结果为通过。

示例性地,对各个类型的测试结果进行加权计算,当接口测试结果为不通过,ui关键字测试结果为通过,ui图片对比测试结果为通过时,所述综合测试结果为不通过,且显示接口测试结果为不通过;当接口测试结果为不通过,ui关键字测试结果为不通过,ui图片对比测试结果为通过时,所述综合测试结果为不通过,且显示接口测试结果、ui关键字测试结果为不通过;当接口测试结果为通过,ui关键字测试结果为不通过,ui图片对比测试结果为不通过时,所述综合测试结果为不通过,且显示ui关键字测试结果、ui图片对比测试结果为不通过。

可以理解的,对各个类型的测试结果进行加权计算时,所述接口测试结果、ui关键字测试结果和ui图片对比测试结果为“与”的关系,仅当接口测试结果为通过,且ui关键字测试结果为通过,且ui图片对比测试结果为通过时,所述综合测试结果为通过。当其中任意一种类型的测试结果为不通过时,所述综合测试结果均为不通过,且显示测试不通过的测试类型。

在其它实施例中,所述多个类型的测试可以为其它类型的测试,测试类型的数量可以根据实际需求进行确定,只需满足进行至少两种类型的测试即可。

在其它实施例中,对各个类型的测试结果进行加权计算时,所述多个类型的测试结果之间的加权计算方式可以为其它计算方式,例如,多个类型的测试结果之间可以为“或”的关系,即当其中任意一个类型的测试结果为通过时,所述综合测试结果即为通过。在其它实施例中,所述多个类型的测试结果的加权计算方式可以为其它方式,可以根据实际需求进行确定。

示例性地,执行测试用例时,会选择相应的测试类型并执行对应的测试,对接口测试结果、ui关键字测试结果和ui图片对比测试结果的加权计算,可以用公式表述如下:r=(w1*r1)*(w2*r2)*(w3*r3),其中,r表示最终的综合测试结果,当r=1时,表示测试通过,r=0时,表示测试不通过。公式中的r1、r2、r3,可分别表示接口测试结果、ui关键字测试结果、ui图片对比测试结果,取值是0或1,取值为1表示测试通过,取值为0表示测试不通过。公式中的w1、w2、w3,可分别对应接口测试、ui关键字测试、ui图片对比测试是否被选择进行测试,如果被选择进行测试,则对应值为1,如果未被选择进行测试,则对应的w值无效,将该项测试从公式中去掉。如果三者均被选择进行测试,则该测试用例会综合考察三种类型测试的测试结果,只有三项测试结果均通过,该测试用例才算是通过,只要有一项测试未通过,该用例的综合测试结果就是不通过。可以理解的,从该公式的表述而言,现有的各项测试类型,均是该公式所表述的概念的子集。

同时,执行测试用例时,会检查测试类型的选择情况并执行对应的测试,比如,接口测试、ui关键字测试、ui图片对比测试均被选择进行测试,则将这三项的执行测试结果,与期望结果对比,与期望结果相符的,标识为1,即该类测试通过,否则标识为0,即该类测试不通过,并将各类型测试的结果显示在对应的页面上,通过显示为pass,并标识为绿色;不通过显示为fail,并标识为红色。然后根据上述计算公式,计算综合测试结果,通过显示为pass,并标识为绿色;不通过显示为fail,并标识为红色。

应该理解的是,虽然图1的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。

在一个实施例中,如图2所示,提供了一种自动化脚本转换装置,包括:框架建立模块、测试用例填入和转换模块,其中:

框架建立模块,用于建立自动化脚本框架。

测试用例填入模块,用于将测试用例填入所述自动化脚本框架中,得到自动化脚本数据。

转换模块,用于将所述自动化脚本数据转换为自动化脚本。

关于自动化脚本转换装置的具体限定可以参见上文中对于自动化脚本转换方法的限定,在此不再赘述。上述自动化脚本转换装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图3所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种自动化脚本转换方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。

本领域技术人员可以理解,图3中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:

建立自动化脚本框架;

将测试用例填入所述自动化脚本框架中,得到自动化脚本数据;

将所述自动化脚本数据转换为自动化脚本。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:

将测试用例的步骤、期望结果以及对应的脚本语言填入所述自动化脚本框架中,得到自动化脚本数据。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:

编写将自动化脚本数据转化为自动化脚本的方法函数。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:

基于所述方法函数将述自动化脚本数据转换为自动化脚本。

在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:

建立自动化脚本框架;

将测试用例填入所述自动化脚本框架中,得到自动化脚本数据;

将所述自动化脚本数据转换为自动化脚本。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:

将测试用例的步骤、期望结果以及对应的脚本语言填入所述自动化脚本框架中,得到自动化脚本数据。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:

编写将自动化脚本数据转化为自动化脚本的方法函数。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:

基于所述方法函数将述自动化脚本数据转换为自动化脚本。

上述自动化脚本转换方法、装置、计算机设备和存储介质,通过使用自行规定的语法建立自动化脚本框架,将测试用例的步骤均填入所述自动化脚本框架中,对测试用例的编写方式进行约束,得到自动化脚本数据,并将自动化脚本数据转换为自动化脚本的方法,使得在编写测试用例时,既不牺牲测试用例的可读性,又不必再去使用编程语言来编写脚本,一步到位,更加方便快捷,通用性更强,提高了测试效率。同时,通过对测试过程中的多个类型的测试结果进行加权计算,以得到综合测试结果的方法,综合考虑了多种测试类型的测试结果对测试场景的影响,对测试场景的评价更加全面,测试结果更加充分可靠。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(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)等。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1