自动化测试方法、装置、电子设备、存储介质与流程

文档序号:15850850发布日期:2018-11-07 09:53阅读:138来源:国知局
自动化测试方法、装置、电子设备、存储介质与流程

本发明涉及计算机应用技术领域,尤其涉及一种自动化测试方法、装置、电子设备、存储介质。

背景技术

ui自动化测试已经成为日常回归测试的主流方法之一,可执行重复性极强的人工操作。ui自动化测试具有“执行快速”、“可靠性高”的操作特性。然而系统仍存在一定预期之外的执行失败风险,例如:

(1)客户录入信息缺失、错误;

(2)外部网站变更,使脚本定位失败;

(3)网络因素,导致脚本执行过程中出现预期之外的失败;

(4)第三方软件异常,导致脚本执行中断。

由此可见,现有技术无法完整的展示待测试程序的测试信息。



技术实现要素:

本发明为了克服上述现有技术存在的缺陷,提供一种自动化测试方法、装置、电子设备、存储介质,可以完整的展示待测试程序的测试信息。

根据本发明的一个方面,提供一种自动化测试方法,包括:

在待测试程序中执行待测试用例脚本;

按预设间隔时间对待测试程序的用户界面截屏,获取所截取的图片集;

根据预设条件确定删除所述图片集或保存所述图片集;

将保存的所述图片集转化为动画;

按所述图片集的截取时间戳保存所述动画;以及

按所述截取时间戳显示所述动画。

可选地,一所述用户界面包括多个组件,所述按预设间隔时间对待测试程序的用户界面截屏,获取所截取的图片集包括:

按预设间隔时间对待测试程序的用户界面的当前执行的组件的窗口截屏,获取所截取的图片集。

可选地,所述根据预设条件确定删除所述图片集或保存所述图片集包括:

若待测试程序提示错误,则保存所述图片集;以及

若待测试程序执行通过,则删除所述图片集。

可选地,若待测试程序的用户界面的当前执行的组件提示错误,且待测试程序跳转到该用户界面的当前执行的组件前一执行的组件执行通过,则还原待测试程序跳转到该用户界面的当前执行的组件前一执行的组件对应的所述图片集,并按所述截取时间戳拼接当前执行的组件对应的动画与前一执行的组件对应的动画。

可选地,所述待测试用例脚本按深度遍历的方式遍历所述待测试程序的各用户界面的各组件,所述还原待测试程序跳转到该用户界面的当前执行的组件前一执行的组件对应的所述图片集还包括:

按反向于深度遍历的方式还原该用户界面的当前执行的组件之前执行的所有用户界面的所有组件对应的所述图片集。

可选地,所述按所述图片集的截取时间戳保存所述动画还包括:

识别待测试程序提示错误时截取的图片中的提示框。

根据本发明的又一方面,还提供一种自动化测试装置,包括:

执行模块,用于在待测试程序中执行待测试用例脚本;

截取模块,用于按预设间隔时间对待测试程序的用户界面截屏,获取所截取的图片集;

第一保存模块,用于根据预设条件确定删除所述图片集或保存所述图片集;

转化模块,用于将保存的所述图片集转化为动画;

第二保存模块,用于按所述图片集的截取时间戳保存所述动画;以及

显示模块,用于按所述截取时间戳显示所述动画。

根据本发明的又一方面,还提供一种电子设备,所述电子设备包括:处理器;存储介质,其上存储有计算机程序,所述计算机程序被所述处理器运行时执行如上所述的步骤。

根据本发明的又一方面,还提供一种存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如上所述的步骤。

相比现有技术,本发明通过对执行中的待测试程序的用户界面进行截图,并形成动画,由此,本发明具备以下优点:

1)能够完整地展示脚本执行过程中待测试程序上的实时信息;

2)截图及动画具有时间戳,可进行追溯;

3)留存时间尽量长,占用硬盘空间尽可能少;

4)仅对指定窗口进行截图,不受其他应用的影响。

附图说明

通过参照附图详细描述其示例实施方式,本发明的上述和其它特征及优点将变得更加明显。

图1示出了根据本发明实施例的自动化测试方法的流程图。

图2示出了根据本发明实施例的待测试程序用户界面跳转的示意图。

图3示出了根据本发明实施例的自动化测试装置的模块图。

图4示意性示出本公开示例性实施例中一种计算机可读存储介质示意图。

图5示意性示出本公开示例性实施例中一种电子设备示意图。

具体实施方式

现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。

此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。

为了解决现有技术的缺陷,本发明提供一种自动化测试方法、装置、电子设备、存储介质,可以完整的展示待测试程序的测试信息。

首先参见图1,图1示出了根据本发明实施例的自动化测试方法的流程图。图1示出了如下步骤:

步骤s110:在待测试程序中执行待测试用例脚本。

步骤s120:按预设间隔时间对待测试程序的用户界面截屏,获取所截取的图片集。

步骤s130:根据预设条件确定删除所述图片集或保存所述图片集。

步骤s140:将保存的所述图片集转化为动画。

步骤s150:按所述图片集的截取时间戳保存所述动画。

步骤s160:按所述截取时间戳显示所述动画。

具体而言,上述方法可以针对ui待测试用例脚本运行中指定待测试程序的用户界面(例如web页面)进行图片截屏并转化为动态图片的伪视频技术。本发明无需人工操作,保存、删除、归档。

进一步地,本发明的方法可以使用基于selenium+testng+java的onlineui自动化测试框架。使用@test注解来驱动执行,被标识了@test的方法即为一个待测试用例脚本。通过在类名上标识@listener注解的方式,对当前执行的程序进行监听。

脚本执行前(beforeinvocation),可以判断现运行的脚本是否是一个@test的方法(即判断现运行的脚本是否为待测试用例脚本):

若是@test方法(即为待测试用例脚本),则开启进行图片截取的步骤,异步执行动画转化的步骤,以将已截取的图片集,进行动图压制,并归档。

若不是@test方法(即不为待测试用例脚本),则继续执行脚本,不做其他任何调用。

待测试用例脚本执行后(afterinvocation),判断现运行脚本的执行状态以判断是否保存所截图片或图片集。具体而言,可以默认待测试用例脚本执行状态为失败(例如待测试程序提示错误)时,保留截图及根据图片集生成的动画,若待测试用例脚本执行状态为成功(例如待测试程序未提示错误)时,则删除已截取的图片集。在本发明的另一些实施例中,也可以设置使得待测试用例脚本无论正确错误都保存截图。

对于web页面进行截图的实施例中,将当前测试用例脚本打开的浏览器传递给一执行图片截取步骤的图片截取模块,图片截取模块使用selenium自带截屏方法进行指定窗口内容的截取。可以在图片截取模块设置截图间隔时间(例如1秒、2秒、3秒、5秒等)。在测试用例脚本执行过程中根据参数截取执行实况,可以使用脚本名称+时间戳的方式保存截图。此外,还可以使用执行日期对图片集进行归档。在一个变化例中,可按其它的方式对图片集和动画进行命名,具体而言,在上述步骤s150按所述图片集的截取时间戳保存所述动画中还包括:识别待测试程序提示错误时截取的图片中的提示框;以及至少以提示框提示的错误名称对所述动画进行命名。通过这样的方式进行命名可以便于将同种错误提示的图片集及动画进行聚类,由此,进一步便于研发人员的检索查询及同种错误提示的程序维护。

在图片集转化为动画的步骤中,可以通过异步线程执行动画压缩,保存为指定文件格式(例如动态图片格式gif)。可以在图片集转化为动画的步骤中设置动画参数,例如是否循环播放、播放速度(快速、中速、慢速)、设定的动态图片格式等,以按设置的动画参数进行转化。

具体而言,在本发明的实施例中,待测试程序的用户界面可以包括多个组件,例如登录组件、支付组件等等。各个组件会具有其特定的窗口,且对组件的操作可能会跳转到同一用户界面的另一组件或另一用户界面的组件以进行下一部操作,如图2所示。图2示出了根据本发明实施例的待测试程序用户界面跳转的示意图。图2示意性地示出多个用户界面及多个用户界面之间的跳转关系。具体而言,图2示出了待测试程序的用户界面1、用户界面2及用户界面3。用户界面1中显示组件1的窗口、组件2的窗口及组件3的窗口。用户界面2中显示组件4的窗口及组件5的窗口。用户界面3中显示组件6及组件7的窗口。其中,在用户界面1的组件1的窗口的操作会跳转到用户界面2的组件4。在用户界面2的组件4的窗口的操作会跳转到用户界面3的组件6。在用户界面1的组件2的窗口的操作会跳转到用户界面2的组件5。在用户界面1的组件3的窗口的操作会跳转到用户界面3的组件7。

在用户界面中显示多个组件的情况下,图1中所示的步骤s120可以包括按预设间隔时间对待测试程序的用户界面截屏,获取所截取的图片集可以包括:按预设间隔时间对待测试程序的用户界面的当前执行的组件的窗口截屏,获取所截取的图片集。换言之,在本实施例中,仅对当前操作的组件的窗口进行截图,减少截图的大小以减少图片集及动画的储存量。同时,由于仅对当前操作的组件的窗口进行截图,即使用户界面进行了上移、下移、放大、缩小也不会对当前操作的组件的窗口产生影响。

在本实施例的一个变化例中,待测试用例脚本可以按深度遍历的方式遍历所述待测试程序的各用户界面的各组件。例如,可以按用户界面1的组件1到用户界面2的组件4到用户界面3的组件6、用户界面1的组件2到用户界面2的组件5、用户界面1的组件3到用户界面3的组件7的顺序遍历用户界面1到用户界面3中各个组件。由此,可按实际的跳转对待测试程序的用户界面进行测试,以还原用户实际操作,以实现对待测试程序的完整测试。

在上述变化例中,由于按深度遍历的方式遍历所述待测试程序的各用户界面的各组件,当执行待测试用例脚本测试当前组件前一组件时,若组件执行未出错则方法会删除前一组件对应的图片集,然而,当执行待测试用例脚本测试当前组件出错时,尽管其前一组件未报错,但仍有可能由于对前一组件和当前组件的操作组合导致当前组件执行错误。因此,在上述变化例中,若待测试程序的用户界面的当前执行的组件提示错误,且待测试程序跳转到该用户界面的当前执行的组件前一执行的组件执行通过,则可以还原待测试程序跳转到该用户界面的当前执行的组件前一执行的组件对应的所述图片集,并按所述截取时间戳拼接当前执行的组件对应的动画与前一执行的组件对应的动画(例如当组件4执行未出错,而组件6执行出错时,还原组件4删除的图片集,并将组件4和组件6的图片集对应的动画拼接起来)。由此,可以将前一组件的执行动画和当前组件的执行动画连贯起来显示,以完整的体现待测试程序用户界面的测试过程,防止由于前一组件的图片集删除带来的执行错误的测试过程的缺失。

在上述变化例的一个优选例中,还可以按反向于深度遍历的方式还原该用户界面的当前执行的组件之前执行的所有用户界面的所有组件对应的所述图片集。例如当组件1和组件4执行未出错,而组件6(深度遍历)执行出错时,还原组件4和组件1(反向于深度遍历)删除的图片集,并将组件1、组件4和组件6的图片集对应的动画拼接起来,以进一步完整的体现待测试程序用户界面的测试过程。

在另一些实施例中,可在整个程序结束之后,才对图片集进行保留和/或删除的操作,这些变化方式也在本发明的保护范围之内。

下面参见图3,图3示出了根据本发明实施例的自动化测试装置的模块图。自动化测试装置500包括执行模块510、截取模块520、第一保存模块530、转化模块540、第二保存模块550以及显示模块560。

执行模块510用于在待测试程序中执行待测试用例脚本。

截取模块520用于按预设间隔时间对待测试程序的用户界面截屏,获取所截取的图片集。

第一保存模块530用于根据预设条件确定删除所述图片集或保存所述图片集。

转化模块540用于将保存的所述图片集转化为动画。

第二保存模块550用于按所述图片集的截取时间戳保存所述动画。

显示模块560用于按所述截取时间戳显示所述动画。

图3仅仅是示意性的示出本发明提供的自动化测试装置的模块图,在不违背本发明构思的前提下,模块的拆分、合并、增加都在本发明的保护范围之内。

在本公开的示例性实施例中,还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被例如处理器执行时可以实现上述任意一个实施例中所述电子处方流转处理方法的步骤。在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述电子处方流转处理方法部分中描述的根据本发明各种示例性实施方式的步骤。

参考图4所示,描述了根据本发明的实施方式的用于实现上述方法的程序产品800,其可以采用便携式紧凑盘只读存储器(cd-rom)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。

所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。

所述计算机可读存储介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读存储介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、rf等等,或者上述的任意合适的组合。

可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如java、c++等,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在租户计算设备上执行、部分地在租户设备上执行、作为一个独立的软件包执行、部分在租户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(lan)或广域网(wan),连接到租户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。

在本公开的示例性实施例中,还提供一种电子设备,该电子设备可以包括处理器,以及用于存储所述处理器的可执行指令的存储器。其中,所述处理器配置为经由执行所述可执行指令来执行上述任意一个实施例中所述电子处方流转处理方法的步骤。

所属技术领域的技术人员能够理解,本发明的各个方面可以实现为系统、方法或程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。

下面参照图5来描述根据本发明的这种实施方式的电子设备600。图5显示的电子设备600仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。

如图5所示,电子设备600以通用计算设备的形式表现。电子设备600的组件可以包括但不限于:至少一个处理单元610、至少一个存储单元620、连接不同系统组件(包括存储单元620和处理单元610)的总线630、显示单元640等。

其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元610执行,使得所述处理单元610执行本说明书上述电子处方流转处理方法部分中描述的根据本发明各种示例性实施方式的步骤。例如,所述处理单元610可以执行如图1中所示的步骤。

所述存储单元620可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(ram)6201和/或高速缓存存储单元6202,还可以进一步包括只读存储单元(rom)6203。

所述存储单元620还可以包括具有一组(至少一个)程序模块6205的程序/实用工具6204,这样的程序模块6205包括但不限于:操作系统、一个或者多个待测试程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。

总线630可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。

电子设备600也可以与一个或多个外部设备700(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得租户能与该电子设备600交互的设备通信,和/或与使得该电子设备600能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(i/o)接口650进行。并且,电子设备600还可以通过网络适配器660与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。网络适配器660可以通过总线630与电子设备600的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备600使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。

通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd-rom,u盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、或者网络设备等)执行根据本公开实施方式的上述电子处方流转处理方法。

相比现有技术,本发明通过对执行中的待测试程序的用户界面进行截图,并形成动画,由此,本发明具备以下优点:

1)能够完整地展示脚本执行过程中待测试程序上的实时信息;

2)截图及动画具有时间戳,可进行追溯;

3)留存时间尽量长,占用硬盘空间尽可能少;

4)仅对指定窗口进行截图,不受其他应用的影响。

本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由所附的权利要求指出。

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