掌桥专利:专业的专利平台
掌桥专利
首页

具有改进的扩展性和兼容性的自动化测试

文献发布时间:2023-06-19 19:40:14


具有改进的扩展性和兼容性的自动化测试

背景技术

在软件应用的开发过程中,测试作为保证应用质量极其重要的一环,起着非常关键的作用。在本文中,可以将针对其来执行测试的软件应用称为目标应用。通常,在对目标应用进行测试时,在确定了测试用例之后,可以由测试人员根据测试用例中描述的规程一步步执行测试,并将实际的测试结果与期望的测试结果进行比较,以验证目标应用的各项功能是否正确。在此过程中,为了节省人力、时间或硬件资源,提高测试效率,引入了自动化测试。自动化测试可以是把以人为驱动的测试转化为机器执行的测试的过程。在自动化测试中,可以利用特定的软件或程序来控制测试的执行以及实际的测试结果与期望的测试结果之间的比较。通过自动化测试,可以使测试流程中存在的一些重复但必要的测试任务自动化,或者可以使原本以人工的方式难以执行的一些测试任务得以执行。

发明内容

提供本发明内容以便介绍一组构思,这组构思将在以下的具体实施方式中做进一步描述。本发明内容并非旨在标识所保护主题的关键特征或必要特征,也不旨在用于限制所保护主题的范围。

本公开的实施例提出了用于执行自动化测试的方法。可以通过注册中心,接收用于利用指定测试设备集来执行自动化测试的测试请求。可以通过所述注册中心,生成与所述测试请求相对应的测试任务。可以通过所述注册中心,将所述测试任务调度给与所述指定测试设备集相关联的测试代理。可以通过所述测试代理,利用所述指定测试设备集来执行所述自动化测试。

本公开的实施例提出了还提出了一种自动化测试系统。所述自动化测试系统可以包括:注册中心,被配置为接收用于利用指定测试设备集来执行针对目标应用的自动化测试的测试请求,生成与所述测试请求相对应的测试任务,并且将所述测试任务调度给与所述指定测试设备集相关联的测试代理;至少一个测试代理,每个测试代理被配置为接收测试任务,并且利用所接收的测试任务中所指定的测试设备集来执行自动化测试;以及至少一个测试设备集,每个测试设备集与所述至少一个测试代理中的一个测试代理相关联,并且被配置为运行所述目标应用。

应当注意,以上一个或多个方面包括以下详细描述以及权利要求中具体指出的特征。下面的说明书及附图详细提出了所述一个或多个方面的某些说明性特征。这些特征仅仅指示可以实施各个方面的原理的多种方式,并且本公开旨在包括所有这些方面和其等同变换。

附图说明

以下将结合附图描述所公开的多个方面,这些附图被提供用以说明而非限制所公开的多个方面。

图1示出了根据本公开实施例的用于执行自动化测试的示例性过程。

图2示出了根据本公开实施例的用于创建测试代理的示例性过程。

图3示出了根据本公开实施例的用于获取测试设备集的授权码的示例性过程。

图4示出了根据本公开实施例的示例性视频导航界面。

图5示出了根据本公开实施例的自动化测试系统的示例性架构。

图6示出了根据本公开实施例的示例性测试设备集。

图7是根据本公开实施例的用于执行自动化测试的示例性方法的流程图。

图8示出了根据本公开实施例的示例性自动化测试系统。

图9示出了根据本公开实施例的用于执行自动化测试的示例性装置。

具体实施方式

现在将参考若干示例性实施方式来讨论本公开。应当理解,这些实施方式的讨论仅仅用于使得本领域技术人员能够更好地理解并从而实施本公开的实施例,而并非教导对本公开的范围的任何限制。

目前,通常利用单个机器来执行自动化测试并呈现测试结果。以针对移动应用的自动化测试为例,该自动化测试通常运行在与移动设备连接的个人计算机上,并且由个人计算机来执行自动化测试并呈现测试结果。个人计算机可能会因故障而宕机。一旦宕机,自动化测试将会中断且已有的测试结果将会丢失。因此,这种方式可能难以提供可靠的自动化测试服务。此外,由于移动设备通常是以有线的方式连接到个人计算机,因此能够连接到个人计算机的移动设备的数量是有限的。这导致能够同时执行的自动化测试的数量也是受限的。

本公开的实施例提出了改进的自动化测试服务。可以将自动化测试服务解耦到注册中心和测试代理。注册中心可以管理测试代理、调度测试任务、可视化测试结果等等。测试代理可以执行测试任务、发送测试结果给注册中心等等。注册中心和测试代理可以部署在不同的地方。可以同时部署多个测试代理。即使其中一个或一些测试代理出现故障,还能够通过其他测试代理来执行自动化测试,并且测试结果也可以被保留。注册中心也可以进行多节点部署以避免出现单节点故障。以这种方式,可以显著提高自动化测试服务的可靠性。

在一个方面,本公开的实施例提出了利用终端设备来创建测试代理。终端设备可以是位于任何地理位置的任何计算设备,例如台式计算机、膝上型计算机、平板计算机、蜂窝电话、可穿戴设备等。可以通过在终端设备上运行测试代理创建程序并向注册中心进行注册来将终端设备配置为测试代理。可以将安装了目标应用的、期望的测试设备集连接到测试代理来进行针对该目标应用的自动化测试。本文中,测试设备集可以指作为整体连接到测试代理的测试设备的集合。测试设备集的形式可以包括例如单个测试设备,由两个测试设备构成的测试设备对,以及由两个以上的测试设备构成的测试设备组等等。在本文中,测试设备可以指在其上运行目标应用并利用其来执行针对目标应用的自动化测试的计算设备,例如台式计算机、膝上型计算机、平板计算机、蜂窝电话、可穿戴设备等。由于测试代理是可以由位于任何地理位置的终端设备来创建的,并且将期望的测试设备集连接到测试代理则可以进行自动化测试,因此可以极大地扩展所支持的测试设备集的数量,从而提高自动化测试服务的扩展性。另外,这种方式使得能够便捷地利用位于任何地理位置的测试设备集来进行自动化测试。例如,用户可能位于A地,而期望的测试设备集位于B地。可以在B地创建一测试代理,并将该期望的测试设备集连接到该测试代理。位于A地的用户则可以请求利用B地的测试设备集来进行自动化测试。此外,在当前可用测试设备集数量不足的情况下,可以通过创建测试代理并将合适的测试设备集连接到测试代理来补充测试设备集,或者可以通过请求使用其他测试代理上的测试设备集来补充测试设备集。以这种方式,可以缩短用于调度测试任务以及等待测试执行的时间。

在另一个方面,本公开的实施例提出了通过使测试代理支持各种类型的测试框架(testing framework)并且将各种形式的测试设备集与测试代理相关联来使得自动化测试服务能够兼容各种类型的自动化测试。可以兼容的自动化测试的类型可以包括例如针对单操作系统应用的测试、针对跨操作系统应用的测试和针对Web应用的测试等等。在本文中,单操作系统应用可以指仅涉及单个操作系统的应用,例如安卓应用、iOS应用、Windows应用、macOS应用等等。跨操作系统应用可以指涉及多个操作系统之间的交互的应用,例如涉及安卓操作系统和Windows操作系统之间的交互的应用、涉及iOS操作系统和macOS操作系统之间的交互的应用等等。Web应用可以指基于Web的应用,例如通过浏览器访问的网站、通过浏览器运行的插件等。例如,可以通过使测试代理支持例如Appium之类的测试框架,并且将安装了不同操作系统的测试设备对连接到该测试代理来实现针对跨操作系统应用的测试。以这种方式,可以使得自动化测试应用场景更加广泛,从而显著提高自动化测试服务的兼容性。

在另一个方面,本公开的实施例提出了对测试资源进行统一的管理以便在各个测试代理之间进行共享。测试资源可以包括例如目标应用的应用程序包、包括要执行的自动化测试的测试用例的测试套件、测试设备集等。应用程序包和测试套件可以存储在部署在云端的数据存储装置中并被注册中心管理。测试设备集也可以通过注册中心进行管理。以这种方式,不同的用户或团队,例如位于不同地理位置的用户或团队,可以共享测试资源,从而提高了测试资源的复用性并节省了资源成本。

在另一个方面,本公开的实施例提出了通过授权码来对测试设备集的使用权限进行管理。在本文中,授权码可以指与特定测试设备集相关联,并且用于授权测试请求的发送方使用该特定测试设备集来进行自动化测试的加密代码。与公开可见的测试设备集的标识符不同,测试设备集的授权码是访问受限的。测试设备集的授权码可以在创建与该测试设备集相关联的测试代理时由注册中心提供给测试代理,并进一步提供给测试代理的指定用户,例如测试代理的创建者、管理者等。另外,测试设备集的授权码可以是由注册中心在与测试设备集相关联的测试代理的指定用户准予的情况下提供给普通用户的。在测试代理从注册中心接收到用于利用指定测试设备集来执行自动化测试的测试任务时,测试代理可以确定其所接收的测试任务是否包括该指定测试设备集的授权码,并且在测试任务包括授权码的情况下执行自动化测试。以这种方式,可以避免测试设备集被任意使用,从而提高自动化测试服务的安全性。

在另一个方面,本公开的实施例提出了通过呈现视频导航界面来对自动化测试的测试结果进行可视化。视频导航界面可以包括用于显示自动化测试包括的多个测试用例的导航区域。每个测试用例是可以被选择的。视频导航界面还可以包括用于显示与被选择的测试用例相对应的视频片段的视频区域。以这种方式,可以使得用户可以方便地查看在执行自动化测试的各个用例期间测试设备的状况。更进一步地,可以将失败的测试用例的视频片段与相应的测试日志、设备日志等结合起来,从而更迅速且更准确地定位出目标应用中存在的漏洞。

图1示出了根据本公开实施例的用于执行自动化测试的示例性过程100。在过程100中,可以将自动化测试服务解耦到注册中心和测试代理。注册中心可以管理测试代理、调度测试任务、可视化测试结果等等。测试代理可以执行测试任务、发送测试结果给注册中心等等。

在102处,可以通过注册中心,接收用于利用指定测试设备集来执行自动化测试的测试请求。测试请求可以包括例如目标应用的应用程序包、包括要执行的自动化测试的一组测试用例的测试套件、指定测试设备集的标识符、测试报告的接收方等等。例如,在用户发起测试请求时,可以选择要在其上执行自动化测试的测试设备集作为指定测试设备集。另外,在用户知晓指定测试设备集的授权码的情况下,测试请求还可以包括该授权码。指定测试设备集可以具有各种形式,例如单个测试设备,由两个测试设备构成的测试设备对,以及由两个以上的测试设备构成的测试设备组等等。后面将结合图6来说明测试设备集的示例性形式。测试设备可以是任何类型的计算设备,例如台式计算机、膝上型计算机、平板计算机、蜂窝电话、可穿戴设备等。优选地,在注册中心接收到测试请求之后,可以经由与其相连接的前端来向用户呈现该测试请求中的指定测试设备集的信息,例如指定测试设备集的标识符,所支持的测试类型,所支持的测试框架,指定测试设备集所包括的测试设备的当前状态、设备类型、设备型号等。

在104处,可以通过注册中心,生成与测试请求相对应的测试任务。例如,注册中心可以从测试请求中识别应用程序包、测试套件、指定测试设备集的标识符、指定测试设备集的授权码等,并且基于所识别的应用程序包、测试套件、指定测试设备集的标识符、指定测试设备集的授权码等来生成测试任务。

在106处,可以通过注册中心,将测试任务调度给与指定测试设备集相关联的测试代理。例如,测试任务中可以包括指定测试设备集的标识符。注册中心可以识别与该指定测试设备集相关联的测试代理,并将测试任务调度给所识别出的测试代理。

可以通过测试代理,利用指定测试设备集来执行自动化测试。优选地,测试代理可以首先确定其所接收的测试任务是否包括该测试任务中所指定的测试设备集的授权码,并且响应于确定测试任务包括授权码来执行自动化测试。例如,在108处,可以通过测试代理,确定测试任务是否包括指定测试设备集的授权码。授权码可以是来自测试请求的。

如果在108处确定了测试任务不包括指定测试设备集的授权码,则过程100可以进行至步骤110。在110处,不利用指定测试设备集来执行自动化测试。

如果在108处确定了测试任务包括指定测试设备集的授权码,则过程100可以进行至步骤112。在112处,可以通过测试代理,利用指定测试设备集来执行自动化测试。

根据本公开的实施例,在执行自动化测试期间,可以对测试设备集中的每个测试设备的状态进行实时监控,以获得所测试的目标应用的性能数据。例如,可以实时监控测试设备的中央处理单元(Central Processing Unit,CPU)利用率、存储器利用率、网络连接状态等等。还可以实时监控测试设备的电池使用情况,以使得用户可以知晓所测试的目标应用的电量消耗情况。另外,还可以对应用点击的延迟进行实时监控,以使得用户可以知晓目标应用的运行速度。此外,可以通过实时捕获测试设备在执行自动化测试期间的屏幕和/或声音来录制与该自动化测试相对应的视频。所录制的视频可以包括与自动化测试所包括的多个测试用例相对应的多个视频片段。

在114处,可以通过测试代理,获取自动化测试的测试结果,并将测试结果发送给注册中心。自动化测试的测试结果可以包括例如与各个测试用例相对应的通过/失败信息、运行时间、测试日志、设备日志、自定义日志截图、性能数据、视频等。上述测试结果可以全面地反映所测试的目标应用的情况。可以根据上述全面的测试结果生成自动化测试的详细测试报告。详细测试报告可以有助于目标应用的开发者迅速且准确地定位出目标应用中存在的漏洞。

在116处,可以通过注册中心,对测试结果进行可视化。例如,可以通过指示板(dashboard)来呈现测试结果。指示板可以例如是经由与注册中心相连接的前端来显示的。优选地,在可视化测试结果时,可以呈现一视频导航界面。视频导航界面可以包括用于显示自动化测试包括的多个测试用例的导航区域。每个测试用例是可以被选择的。视频导航界面还可以包括用于显示与被选择的测试用例相对应的视频片段的视频区域。后面将结合图4来说明示例性视频导航界面。

应当理解,上文结合图1描述的用于执行自动化测试的过程仅是示例性的。根据实际应用需求,可以以任意方式对用于执行自动化测试的过程中的步骤进行替换或修改,并且该过程可以包括更多或更少的步骤。例如,测试代理可以在接收到测试任务之后直接利用测试任务中的指定测试设备集来执行自动化测试而无需确定测试任务是否包括指定测试设备集的授权码,例如在测试代理知晓测试任务是来自其指定用户的情况下。另外,在116处,除了对测试结果进行可视化之外,还可以呈现测试设备集中的测试设备的状态。此外,过程100中的步骤的具体顺序或层级仅是示例性的,可以按照与所描述顺序不同的顺序来执行用于执行自动化测试的过程。

根据本公开的实施例,测试代理可以是由终端设备创建而成的。终端设备可以是位于任何地理位置的任何计算设备,例如台式计算机、膝上型计算机、平板计算机、蜂窝电话、可穿戴设备等。例如,用户可以使用其可访问的计算设备来创建测试代理。图2示出了根据本公开实施例的用于创建测试代理的示例性过程200。

在202处,可以在终端设备上运行测试代理创建程序。测试代理创建程序可以是能够用于创建测试代理的预定计算机程序。

在204处,可以在终端设备处,向注册中心发起注册过程。例如,可以通过终端设备向注册中心发送注册请求。注册中心可以响应于接收到注册请求而对终端设备进行注册。

在206处,可以响应于注册过程的完成,将终端设备配置为测试代理。

在注册了测试代理之后,可以进一步地,获取与该测试代理相关联的测试设备集的授权码。

在208处,可以通过注册中心,接收用于生成与测试代理相关联的测试设备集的授权码的授权码生成请求。例如,测试代理可以向注册中心发送用于生成与其相关联的测试设备集的授权码的授权码生成请求。该授权码生成请求可以包括测试设备集的信息,例如测试设备集的标识符,所支持的测试类型,所支持的测试框架,测试设备集所包括的测试设备的当前状态、设备类型、设备型号等。

在210处,可以通过注册中心,生成授权码。例如,注册中心可以基于从测试代理接收的授权码生成请求中所包括的测试设备集的信息来生成测试设备集的授权码。

在212处,可以通过注册中心,将所生成的授权码发送给测试代理。

由于测试代理是可以由位于任何地理位置的终端设备来创建的,并且将期望的测试设备集连接到测试代理则可以进行自动化测试,因此可以极大地扩展所支持的测试设备集的数量,从而提高自动化测试服务的扩展性。另外,用户可能位于A地,而期望的测试设备集位于B地。可以在B地创建一测试代理,并将该期望的测试设备集连接到该测试代理。位于A地的用户则可以请求利用B地的测试设备集来进行自动化测试。这种方式使得能够便捷地利用位于任何地理位置的测试设备集来进行自动化测试。此外,在当前可用测试设备集数量不足的情况下,可以通过创建测试代理并将合适的测试设备集连接到测试代理来补充测试设备集。另外地或替代地,可以通过请求使用其他测试代理上的测试设备集来补充测试设备。以这种方式,可以缩短用于调度测试任务以及等待测试执行的时间。

应当理解,上文结合图2描述的用于创建测试代理的过程仅是示例性的。根据实际应用需求,可以以任意方式对用于创建测试代理的过程中的步骤进行替换或修改,并且该过程可以包括更多或更少的步骤。此外,过程200中的步骤的具体顺序或层级仅是示例性的,可以按照与所描述顺序不同的顺序来执行用于创建测试代理的过程。

如上文所描述的,在向注册中心发起用于利用指定测试设备集来执行自动化测试的测试请求时,可以提供指定测试设备集的授权码。在测试代理从注册中心接收到与该测试请求相对应的测试任务时,测试代理可以确定其所接收的测试任务是否包括该指定测试设备集的授权码,并且在测试任务包括授权码的情况下执行自动化测试。对于与指定测试设备集相关联的测试代理的指定用户而言,例如对于测试代理的创建者、管理者等而言,可以从测试代理处获得该授权码。测试代理处的授权码可以是例如通过图2的过程200在创建了测试代理时从注册中心获得的。对于普通用户而言,例如对于不是测试代理的指定用户而言,可以经由注册中心向与指定测试设备集相关联的测试代理请求指定测试设备集的授权码。注册中心可以在与测试设备集相关联的测试代理的指定用户准予的情况下将授权码提供给普通用户。以这种方式,可以避免测试设备集被任意使用,从而提高自动化测试服务的安全性。图3示出了根据本公开实施例的用于获取测试设备集的授权码的示例性过程300。

在302处,可以通过注册中心,接收用于获取指定测试设备集的授权码的授权码获取请求。授权码获取请求可以例如是从与想要利用指定测试设备集来执行自动化测试的用户相关联的计算设备接收的。

在304处,可以通过注册中心,将授权码获取请求转发给与该指定测试设备集相关联的测试代理。

随后,可以通过注册中心,基于从测试代理接收到的响应来确定是否提供授权码。

在306处,可以通过注册中心,从测试代理接收对授权码获取请求的响应。例如,测试代理可以在接收到注册中心转发的授权码获取请求之后,确定是否准予向授权码获取请求的发送方提供该授权码,并将确定结果包含在发送给注册中心的、对授权码获取请求的响应中。

在308处,可以通过注册中心,确定从测试代理接收到的响应是否指示测试代理准予提供授权码。如果在308处确定了从测试代理接收到的响应指示测试代理准予提供授权码,则过程300可以进行至步骤310。在310处,可以通过注册中心,提供授权码。如果在308处确定了从测试代理接收到的响应并未指示测试代理准予提供授权码,则过程300可以进行至步骤312。在312处,不提供授权码。

应当理解,上文结合图3描述的用于获取测试设备集的授权码的过程仅是示例性的。根据实际应用需求,可以以任意方式对用于获取测试设备集的授权码的过程中的步骤进行替换或修改,并且该过程可以包括更多或更少的步骤。例如,测试代理在确定是否准予向授权码获取请求的发送方提供授权码时可以考虑该发送方是否曾经创建过其他测试代理。创建过其他测试代理的发送方可以优先使用该测试代理的测试设备集。此外,过程300中的步骤的具体顺序或层级仅是示例性的,可以按照与所描述顺序不同的顺序来执行用于获取测试设备集的授权码的过程。

图4示出了根据本公开实施例的示例性视频导航界面400。

视频导航界面400可以包括用于显示自动化测试包括的多个测试用例的导航区域410。在导航区域410中,示出了各个测试用例的名称和相应的时间。可选地,在导航区域410中,还示出了初始化事件、测试运行开始事件和相应的时间。优选地,可以标记失败的测试用例。可以通过各种方式来标记失败的测试用例。例如,可以将失败的测试用例显示为具有与成功的测试用例不同的颜色,可以在失败的测试用例下方显示下划线,可以突出显示失败的测试用例等等。例如,在导航区域410中突出显示了测试用例“5.NotesCardTest.createTextNote”,这表明该测试用例失败了。

可以通过点击每个测试用例来选择该测试用例。视频导航界面400还可以包括用于显示与被选择的测试用例相对应的视频片段的视频区域420。在从导航区域410中选择了一个测试用例之后,与自动化测试相对应的视频可以跳到与所选择的测试用例相对应的时间点,从而可以在视频区域420中显示与所选择的测试用例的视频片段。以这种方式,可以使得用户可以方便地查看在执行自动化测试的各个用例期间测试设备的状况。更进一步地,可以将失败的测试用例的视频片段与相应的测试日志、设备日志等结合起来,以更迅速且更准确地定位出目标应用中存在的漏洞。

可选地,视频导航界面400还可以包括用于下载视频的按钮430和用于设置播放速度的一组按钮440。

应当理解,图4所示的视频导航界面400仅仅是视频导航界面的一个示例。根据实际应用需求,视频导航界面可以具有任意其他结构,并且可以包括更多或更少的元素。例如,在视频导航界面400中,除了显示用于下载视频和设置播放速度的按钮之外,还可以显示诸如设置视频清晰度之类的按钮。

图5示出了根据本公开实施例的自动化测试系统的示例性架构500。架构500可以例如通过执行前面结合图1至图4描述的过程来提供针对目标应用的自动化测试服务。架构500可以包括注册中心510以及至少一个测试代理,例如测试代理520-1至测试代理520-K(K≥1)。另外,架构500还可以包括至少一个测试设备集。每个测试设备集可以与至少一个测试代理中的一个测试代理相关联。例如,测试设备集540-1至测试设备集540-M(M≥1)可以与测试代理520-1相关联,并且测试设备集542-1至测试设备集542-N(N≥1)可以与测试代理520-K相关联。

注册中心510可以管理测试代理、调度测试任务、可视化测试结果等等。注册中心510可以部署在云端。应当理解,尽管在架构500中,仅示出了一个注册中心510,但是在一些实施例中,注册中心也是可以扩展的。例如,自动化测试系统可以包括一个以上的注册中心。这些注册中心可以被管理成具有统一端点的注册中心集群。注册中心集群中的各个注册中心可以以分布式方式进行多节点部署,从而避免出现单节点故障。

注册中心510可以与前端550相连接。前端550可以与用户对接,并且将与注册中心510相关联的用户界面呈现给用户。另外,注册中心510可以与数据存储装置560相连接。数据存储装置560可以部署在云端。数据存储装置560可以存储测试资源,例如应用程序包562、测试套件564等。应用程序包562可以包括用于安装、运行目标应用的应用程序。测试套件564可以包括要执行的自动化测试的一组测试用例。注册中心510可以对数据存储装置560中存储的测试资源进行管理。

注册中心510可以包括权限管理单元512。权限管理单元512可以对测试代理的权限进行管理。例如,权限管理单元512可以在接收到来自终端设备的注册请求时确定是否对该终端设备进行注册以将该终端设备配置为测试代理。注册请求可以是由在终端设备上运行的测试代理创建程序触发的。另外,权限管理单元512可以对用户的权限进行管理,以确定用户能够使用的测试设备集。

注册中心510可以包括代理及设备集管理单元514。代理及设备集管理单元514可以用于管理注册到注册中心510的测试代理以及与测试代理相关联的测试设备集。测试代理和/或测试设备集中的测试设备的状态可以经由前端550呈现给用户。

注册中心510可以包括测试任务调度单元516。测试任务调度单元516可以生成与测试请求相对应的测试任务,并将测试任务调度给相应的测试代理。例如,测试请求中可能指定了要利用其来执行自动化测试的测试设备集。测试任务调度单元516可以将与测试请求相对应的测试任务调度给与该测试请求中所指定测试设备集相关联的测试代理。

注册中心510可以包括测试结果可视化单元518。测试结果可视化单元518可以对自动化测试的测试结果进行可视化。自动化测试的测试结果可以包括例如与各个测试用例相对应的通过/失败信息、运行时间、测试日志、设备日志、自定义日志截图、性能数据等。优选地,在可视化测试结果时,可以呈现一视频导航界面,例如前面结合图4说明的视频导航界面400。

测试代理520-1至测试代理520-K中的每个测试代理520-k(1≤k≤K),可以注册到注册中心510。注册中心510和测试代理520-k可以通过例如远程过程调用(RemoteProcedure Call)来互相访问。测试代理520-k可以是由位于任何地理位置的任何计算设备创建而成的。例如,可以通过前面结合图2说明的过程200来创建测试代理。测试代理520-k可以执行测试任务、发送测试结果给注册中心510等。

测试代理520-k可以包括注册单元522-k,用于向注册中心510发起注册过程。

测试代理520-k可以包括安全单元524-k,用于确定是否要执行注册中心510所调度的测试任务。例如,安全单元524-k可以分析从注册中心510接收的测试任务,确定所接收的测试任务是否包括相应指定测试设备集的授权码,并在确定了所接收的测试任务包括授权码的情况下通知测试代理520-k,例如测试代理520-k中的测试执行单元530-k,执行自动化测试。

测试代理520-k可以包括设备集管理单元526-k,用于在本地管理与其相关联的一个或多个测试设备集。

测试代理520-k可以包括设备集控制工具528-k,用于对与其相关联的一个或多个测试设备集进行控制和调试。测试代理520-k通常与一种类型的测试设备集相关联。设备集控制工具528-k可以例如对应于与测试代理520-k相关联的测试设备集的类型。作为示例,当与测试代理520-k相关联的测试设备集是安卓设备时,设备集控制工具528-k可以是针对安卓设备的软件开发工具包(SDK)。作为另一示例,当与测试代理520-k相关联的测试设备集是iOS设备时,设备集控制工具528-k可以是针对iOS设备的SDK。

测试代理520-k可以包括测试执行单元530-k,用于利用测试任务中指定的测试设备集、测试套件等来执行自动化测试。

测试代理520-k可以包括测试结果处理单元532-k,用于获取自动化测试的测试结果,并将测试结果发送给注册中心510。

测试代理520-k可以支持各种类型的测试框架,例如Appium、Espresso、Junit等。可以将各种形式的测试设备集与测试代理520-k相关联来使得自动化测试服务能够兼容各种类型自动化测试。可以兼容的自动化测试的类型可以包括例如针对单操作系统应用的测试、针对跨操作系统应用的测试和针对Web应用的测试等等。测试代理520-k可以与一个或多个测试设备集相关联。例如,测试代理520-1可以与测试设备集540-1至测试设备集540-M相关联,并且测试代理520-K可以与测试设备集542-1至测试设备集542-N相关联。每个测试设备集可以被配置为运行目标应用。

测试设备集可以具有各种形式,例如单个测试设备,由两个测试设备构成的测试设备对,以及由两个以上的测试设备构成的测试设备组等等。图6示出了根据本公开实施例的示例性测试设备集600、620和640。测试设备集600、620和640中的每一个测试设备集可以对应于图5中的测试设备集540-1至测试设备集540-M和测试设备集542-1至测试设备集542-N中的任一个测试设备集。

测试设备集600可以包括单个测试设备610。该单个测试设备610可以独立地用于执行自动化测试。可以在测试设备610上运行目标应用612。目标应用612可以例如是单操作系统应用、Web应用等等。

测试设备集620可以包括两个测试设备,例如测试设备630-1和测试设备630-2。测试设备630-1和测试设备630-2可以是相互绑定的,构成了一个测试设备对。测试设备630-1和测试设备630-2可以用于协同执行自动化测试。可以在测试设备630-1和测试设备630-2上运行目标应用632。目标应用632可以例如是单操作系统应用、Web应用、跨操作系统应用等等。在测试设备630-1和测试设备630-2上运行的目标应用632是跨操作系统应用的情况下,可以在测试设备630-1和测试设备630-2上分别运行目标应用632的、与相应操作系统相对应的版本。作为示例,目标应用632可以是涉及安卓操作系统和Windows操作系统之间的交互的应用。在这种情况下,测试设备630-1可以是安装了安卓操作系统的安卓手机,测试设备630-2可以是安装了Windows操作系统的Windows计算机。可以在测试设备630-1上运行目标应用632的安卓版本,并且在测试设备630-2上运行目标应用632的Windows版本。与测试设备集620相关联的测试代理可以是支持例如Appium之类的测试框架的测试代理。在执行自动化测试时,可以在测试设备630-1和测试设备630-2二者上分别执行操作。测试设备630-1和测试设备630-2之间也可以进行互操作。

测试设备集640可以包括两个以上的测试设备,例如测试设备650-1、测试设备650-2、……、测试设备650-T(T>2)。测试设备650-1、测试设备650-2、……、测试设备650-T可以是相互绑定的,构成了一个测试设备组或者测试设备集群。这些测试设备可以用于协同执行自动化测试。可以在测试设备650-1、测试设备650-2、……、测试设备650-T上运行目标应用652。目标应用652可以例如是单操作系统应用、Web应用、跨操作系统应用等等。作为示例,目标应用652可以例如是关于服务器分发操作的、要求两个以上的测试设备参与的应用。

通过使测试代理支持各种类型的测试框架并且将各种形式的测试设备集与测试代理相关联可以使自动化测试应用场景更加广泛,从而显著提高自动化测试服务的兼容性。

返回参考图5,根据本公开的实施例,测试代理可以相对于测试设备集有多种实施方式。

在一种实施方式中,测试代理可以是独立于测试设备集而实施的。例如,测试代理520-1可以是独立于测试设备集540-1至测试设备集540-M而实施的,测试代理520-K可以是独立于测试设备集542-1至测试设备集542-N而实施的,等等。图5示出了测试代理是独立于测试设备集而实施的方式。在这种实施方式中,测试设备集可以通过有线的方式连接到与其相关联的测试代理。与一个测试代理连接的测试设备集的数量可以取决于该测试代理所能提供的端口的数量。

在另一种实施方式中,测试代理可以被实施在测试设备集中。例如,测试代理可以作为测试设备集中的一个测试设备而实施。测试代理在执行自动化测试时需要获取其他应用的资源,因此要求跨应用之间的相互交互。如果测试设备可以实现跨应用之间的相互交互,那么这台测试设备本身就可以成为测试代理。在这种实施方式中,在测试设备集仅包括单个测试设备时,测试代理和测试设备可以是同一台设备。在测试设备集包括一个以上的测试设备时,测试代理可以是该一个以上的测试设备中的一个测试设备。

根据本公开的实施例,在架构500中,可以对测试资源进行统一的管理以便在各个测试代理之间进行共享。测试资源可以包括例如应用程序包562、测试套件564、测试设备集540-1至测试设备集540-M和测试设备集542-1至测试设备集542-N等。应用程序包562和测试套件564可以存储在部署在云端的数据存储装置560中并被注册中心510管理。测试设备集540-1至测试设备集540-M和测试设备集542-1至测试设备集542-N也可以通过注册中心510进行管理。以这种方式,不同的用户或团队,例如位于不同地理位置的用户或团队,可以共享测试资源,从而提高了测试资源的复用性并节省了资源成本。

应当理解,图5所示的架构500仅是自动化测试系统的架构一个示例。根据实际应用需求,自动化测试系统可以具有任意其他结构,并且可以包括更多或更少的部件。例如,可以通过图2的过程200来向现有的自动化测试系统添加新的测试代理,以增强自动化测试系统的扩展性。另外,注册中心510可以作为测试代理再注册到其他注册中心,从而进一步增强自动化测试系统的扩展性。

图7是根据本公开实施例的用于执行自动化测试的示例性方法700的流程图。

在710处,可以通过注册中心,接收用于利用指定测试设备集来执行自动化测试的测试请求。

在720处,可以通过所述注册中心,生成与所述测试请求相对应的测试任务。

在730处,可以通过所述注册中心,将所述测试任务调度给与所述指定测试设备集相关联的测试代理。

在740处,可以通过所述测试代理,利用所述指定测试设备集来执行所述自动化测试。

在一种实施方式中,所述自动化测试可以包括以下至少之一:针对单操作系统应用的测试、针对跨操作系统应用的测试和针对Web应用的测试。

在一种实施方式中,所述指定测试设备集的形式可以是以下至少之一:单个测试设备,由两个测试设备构成的测试设备对,以及由两个以上的测试设备构成的测试设备组。

在一种实施方式中,所述指定测试设备集可以包括一个以上的测试设备。所述执行所述自动化测试可以包括:通过所述测试代理,利用所述一个以上的测试设备来协同执行所述自动化测试。

在一种实施方式中,所述测试代理可以独立于所述指定测试设备集而实施,或者被实施在所述指定测试设备集中。

在一种实施方式中,方法700还可以包括:通过所述测试代理,确定所述测试任务是否包括所述指定测试设备集的授权码,所述授权码来自所述测试请求。所述自动化测试可以是响应于确定所述测试任务包括所述授权码而执行的。

在一种实施方式中,方法700还可以包括通过以下操作来创建所述测试代理:在终端设备上运行测试代理创建程序;在所述终端设备处,向所述注册中心发起注册过程;以及响应于所述注册过程的完成,将所述终端设备配置为所述测试代理。

方法700还可以包括:通过所述注册中心,接收用于生成与所述测试代理相关联的测试设备集的授权码的授权码生成请求;通过所述注册中心,生成所述授权码;以及通过所述注册中心,将所生成的授权码发送给所述测试代理。

在一种实施方式中,方法700还可以包括:通过所述注册中心,接收用于获取所述指定测试设备集的授权码的授权码获取请求;通过所述注册中心,将所述授权码获取请求转发给所述测试代理;以及通过所述注册中心,基于从所述测试代理接收到的响应来确定是否提供所述授权码。

在一种实施方式中,方法700还可以包括对所述自动化测试的测试结果进行可视化。所述测试结果可以包括视频导航界面。所述视频导航界面可以包括:用于显示所述自动化测试包括的多个测试用例的导航区域,每个测试用例能够被选择,以及用于显示与被选择的测试用例相对应的视频片段的视频区域。

应当理解,方法700还可以包括根据上述本公开的实施例的用于执行自动化测试的任何步骤/过程。

图8示出了根据本公开实施例的示例性自动化测试系统800。

自动化测试系统800可以包括注册中心810,被配置为接收用于利用指定测试设备集来执行针对目标应用的自动化测试的测试请求,生成与所述测试请求相对应的测试任务,并且将所述测试任务调度给与所述指定测试设备集相关联的测试代理;至少一个测试代理820,每个测试代理被配置为接收测试任务,并且利用所接收的测试任务中所指定的测试设备集来执行自动化测试;以及至少一个测试设备集830,每个测试设备集与所述至少一个测试代理中的一个测试代理相关联,并且被配置为运行所述目标应用。

在一种实施方式中,所述目标应用可以包括以下至少之一:单操作系统应用、跨操作系统应用和Web应用。

在一种实施方式中,所述至少一个测试设备集中的每个测试设备集的形式可以是以下至少之一:单个测试设备,由两个测试设备构成的测试设备对,以及由两个以上的测试设备构成的测试设备组。

在一种实施方式中,所述至少一个测试代理中的每个测试代理可以独立于与所述测试代理相关联的测试设备集而实施,或者被实施在所述测试设备集中。

在一种实施方式中,所述至少一个测试代理中的每个测试代理还可以被配置为:确定所接收的测试任务是否包括相应指定测试设备集的授权码;以及响应于确定所接收的测试任务包括所述授权码来执行所述自动化测试。

在一种实施方式中,所述注册中心还可以被配置为:从终端设备接收注册请求,所述注册请求是由在所述终端设备上运行的测试代理创建程序触发的;以及响应于接收到所述注册请求,将所述终端设备注册为测试代理。

所述注册中心还可以被配置为:接收用于生成与所注册的测试代理相关联的测试设备集的授权码的授权码生成请求;生成所述授权码;以及将所生成的授权码发送给所注册的测试代理。

在一种实施方式中,所述注册中心还可以被配置为:接收用于获取所述指定测试设备集的授权码的授权码获取请求;将所述授权码获取请求转发给所述测试代理;以及基于从所述测试代理接收到的响应来确定是否提供所述授权码。

在一种实施方式中,所述注册中心还可以被配置为对所述自动化测试的测试结果进行可视化。所述测试结果可以包括视频导航界面。所述视频导航界面可以包括:用于显示所述自动化测试包括的多个测试用例的导航区域,每个测试用例能够被选择,以及用于显示与被选择的测试用例相对应的视频片段的视频区域。

应当理解,自动化测试系统800还可以包括根据上述本公开的实施例的被配置用于执行自动化测试的任何其他部件。

图9示出了根据本公开实施例的用于执行自动化测试的示例性装置900。

装置900可以包括:至少一个处理器910;以及存储计算机可执行指令的存储器920。所述计算机可执行指令在被执行时可以使得所述至少一个处理器910:通过注册中心,接收用于利用指定测试设备集来执行自动化测试的测试请求;通过所述注册中心,生成与所述测试请求相对应的测试任务;通过所述注册中心,将所述测试任务调度给与所述指定测试设备集相关联的测试代理;以及通过所述测试代理,利用所述指定测试设备集来执行所述自动化测试。

应当理解,处理器910还可以执行根据上述本公开实施例的用于执行自动化测试的方法的任何其他步骤/过程。

本公开的实施例提出了用于执行自动化测试的计算机程序产品,包括计算机程序,所述计算机程序被至少一个处理器执行用于:通过注册中心,接收用于利用指定测试设备集来执行自动化测试的测试请求;通过所述注册中心,生成与所述测试请求相对应的测试任务;通过所述注册中心,将所述测试任务调度给与所述指定测试设备集相关联的测试代理;以及通过所述测试代理,利用所述指定测试设备集来执行所述自动化测试。此外,所述计算机程序还可以被执行用于实现根据上述本公开实施例的用于执行自动化测试的方法的任何其他步骤/过程。

本公开的实施例可以体现在非暂时性计算机可读介质中。所述非暂时性计算机可读介质可以包括指令,所述指令当被执行时,使得一个或多个处理器执行根据如上所述的本公开的实施例的用于执行自动化测试的方法的任何操作。

应当理解,以上描述的方法中的所有操作都仅仅是示例性的,本公开并不限制于方法中的任何操作或这些操作的顺序,而是应当涵盖在相同或相似构思下的所有其他等同变换。另外,除非另有规定或者从上下文能清楚得知针对单数形式,否则如本说明书和所附权利要求书中所使用的冠词“一(a)”和“一个(an)”通常应当被解释为意指“一个”或者“一个或多个”。

还应当理解,以上描述的装置中的所有模块都可以通过各种方式来实施。这些模块可以被实施为硬件、软件、或其组合。此外,这些模块中的任何模块可以在功能上被进一步划分成子模块或组合在一起。

已经结合各种装置和方法描述了处理器。这些处理器可以使用电子硬件、计算机软件或其任意组合来实施。这些处理器是实施为硬件还是软件将取决于具体的应用以及施加在系统上的总体设计约束。作为示例,本公开中给出的处理器、处理器的任意部分、或者处理器的任意组合可以利用微处理器、微控制器、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、可编程逻辑器件(PLD)、状态机、门控逻辑单元、分立硬件电路、以及配置用于执行在本公开中描述的各种功能的其他适合的处理组件来实现。本公开给出的处理器、处理器的任意部分、或者处理器的任意组合的功能可以利用由微处理器、微控制器、DSP或其他适合的平台所执行的软件来实现。

软件应当被广泛地视为意指指令、指令集、代码、代码段、程序代码、程序、子程序、软件模块、应用、软件应用、软件包、例程、子例程、对象、运行线程、过程、函数等。软件可以驻留在计算机可读介质中。计算机可读介质可以包括例如存储器,存储器可以例如为磁性存储设备(例如,硬盘、软盘、磁条)、光盘、智能卡、闪存设备、随机存取存储器(RAM)、只读存储器(ROM)、可编程ROM(PROM)、可擦除PROM(EPROM)、电可擦除PROM(EEPROM)、寄存器或者可移动盘。尽管在本公开给出的多个方面中将存储器示出为是与处理器分离的,但是存储器也可以位于处理器内部,例如高速缓存器或寄存器。

以上描述被提供用于使得本领域任何技术人员能够实践本文所描述的各个方面。对这些方面的各种修改对于本领域技术人员将是显而易见的,并且本文限定的一般性原理可以应用于其他方面。因此,权利要求并非旨在被局限于本文示出的方面。关于本领域普通技术人员已知或即将获知的、对本公开所描述各个方面的元素的所有结构和功能上的等同变换都被明确并入本文并且由权利要求所覆盖。

技术分类

06120115993204