一种分布式自动化测试方法及装置与流程

文档序号:14911046发布日期:2018-07-10 23:25阅读:185来源:国知局

本发明涉及计算机软件领域,更具体的涉及一种分布式自动化测试方法及装置。



背景技术:

在测试数据与测试代码分离的自动化测试工具中,通过测试数据驱动自动化测试应用执行指定的测试用例。当自动化测试用例积累到一定数量后,如果没有将测试用例分派到不同的服务器上同时测试将会导致测试执行时间过长从而影响测试工作效率。

Selenium Grid2工具提供了自动化分布测试功能,其主要通过主服务器节点将测试脚本下发到指定服务器执行。在实际应用中,Selenium Grid2虽然具有分布式执行功能但主要面向执行测试脚本,并不是面向测试数据与测试程序分离的测试应用;比如,若测试数据与自动化测试程序没有分离,这意味着自动化测试在使用不同的测试数据时需要修改自动化测试程序,在修改程序过程中可能出现人为因素导致的测试程序异常,同时增加需要投入自动化测试的人力成本。

Selenium Grid2上述功能的缺乏原因在于Selenium Grid2是开源的产品,且Selenium Grid2的功能仅限于分布执行测试脚本,没有测试用例管理,测试数据管理和测试任务管理等功能模块,从而缺乏对测试数据驱动自动化测试的支持,以及将测试数据分发到测试服务器执行的功能。

综上所述,现有的自动化测试软件在测试大量数据时,主要依靠单个测试服务器导致测试时间比较长的问题。



技术实现要素:

本发明实施例提供一种分布式自动化测试方法及装置,用以解决现有的自动化测试软件在测试大量数据时,主要依靠单个测试服务器导致测试时间比较长的问题。

本发明实施例提供了一种分布式自动化测试方法,包括:

在设定时间通过当前服务器IP地址在数据库获取与所述服务器IP地址相匹配的任务ID;

将所述任务ID的写入当前服务器的自动化测试应用中,以使所述自动化测试应用通过所述任务ID在所述数据库获取与所述任务ID相匹配的自动化测试用例,且在所述自动化测试应用上执行所述自动化测试用例时根据所述任务ID获取测试数据。

优选地,所述在设定时间通过当前服务器IP地址在数据库获取与所述服务器IP地址相匹配的任务ID之前,还包括:

建立所述自动化测试用例,测试与所述自动化测试用例对应的所述测试数据,将所述自动化测试用例与所述测试数据建立关联;

建立包括所述测试数据与自动化测试工具的所述任务ID,并将所述任务ID按照所述服务器IP地址进行分配,其中,所述自动化测试工具用于执行所述自动化测试用例。

优选地,所述将所述自动化测试用例与所述测试数据建立关联之后,还包括:

将相互关联的所述自动化测试用例与所述测试数据存储至所述数据库;

所述将所述任务ID按照所述服务器IP地址进行分配之后,还包括:

按照所述分配建立每个所述服务器IP地址与每个所述任务ID的关联关系,并将相互关联的所述服务器IP地址与所述任务ID存储至所述数据库。

所述任务ID与所述服务器IP地址进行

优选地,所述且在所述自动化测试应用上执行所述自动化测试用例时根据所述任务ID获取测试数据之后,还包括:

将在多个所述自动化测试应用获取到的多个所述测试数据存储到数据库,并根据多个所述测试数据形成测试报告。

本发明实施例还提供一种分布式自动化测试装置,包括:

第一获取单元,用于在设定时间通过当前服务器IP地址在数据库获取与所述服务器IP地址相匹配的任务ID;

第二获取单元,用于将所述任务ID的写入当前服务器的自动化测试应用中,以使所述自动化测试应用通过所述任务ID在所述数据库获取与所述任务ID相匹配的自动化测试用例,且在所述自动化测试应用上执行所述自动化测试用例时根据所述任务ID获取测试数据。

优选地,所述第一获取单元还用于:

建立所述自动化测试用例,测试与所述自动化测试用例对应的所述测试数据,将所述自动化测试用例与所述测试数据建立关联;

建立包括所述测试数据与自动化测试工具的所述任务ID,并将所述任务ID按照所述服务器IP地址进行分配,其中,所述自动化测试工具用于执行所述自动化测试用例。

优选地,所述所述第一获取单元还用于:将相互关联的所述自动化测试用例与所述测试数据存储至所述数据库;

按照所述分配建立每个所述服务器IP地址与每个所述任务ID的关联关系,并将相互关联的所述服务器IP地址与所述任务ID存储至所述数据库。

所述任务ID与所述服务器IP地址进行

优选地,所述第二获取单元还用于:

将在多个所述自动化测试应用获取到的多个所述测试数据存储到数据库,并根据多个所述测试数据形成测试报告。

本发明实施例中提供了一种分布式自动化测试方法及装置,该方法包括:在设定时间通过当前服务器IP地址在数据库获取与所述服务器IP地址相匹配的任务ID;将所述任务ID的写入当前服务器的自动化测试应用中,以使所述自动化测试应用通过所述任务ID在所述数据库获取与所述任务ID相匹配的自动化测试用例,且在所述自动化测试应用上执行所述自动化测试用例时根据所述任务ID获取测试数据。该方法中,支持面向数据驱动的自动化测试应用的分布式部署,提供了自动化测试用例的管理功能,即可以集中管理测试数据、直接将任务ID分配到各个服务器分别执行;进一步地,每个服务器可以按照设定时间执行测试,实现无人值守。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种分布式自动化测试方法流程示意图;

图2为本发明实施例提供的一种分布式自动化测试装置结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

图1示例性的示出了本发明实施例提供的一种分布式自动化测试方法流程示意图,该方法包括以下步骤:

步骤101,在设定时间通过当前服务器IP地址在数据库获取与所述服务器IP地址相匹配的任务ID;

步骤102,将所述任务ID的写入当前服务器的自动化测试应用中,以使所述自动化测试应用通过所述任务ID在所述数据库获取与所述任务ID相匹配的自动化测试用例,且在所述自动化测试应用上执行所述自动化测试用例时根据所述任务ID获取测试数据。

需要说明的是,本发明实施例提供的分布式自动化测试方法,需要在建立测试任务,测试数据,自动化测试用例以及将测试任务分配给每个测试服务器之后才能进行分布式自动化测试。

具体地,在步骤101之前,需要先建立自动化测试用例,根据建立的自动化测试用例在测试与该自动化测试用例对应的测试数据,在将自动化测试用例和测试数据之间一一建立关联关系,并将建立的自动化测试用例和测试数据之间的关联关系存储到数据库中。

需要说明的是,自动化测试用例为计算机内自动执行的脚本程序,也可以称为程序代码,脚本程序内设置了制定的功能和每一个可执行的步骤以及在执行过程中需要导入的测试数据;测试数据为自动化测试应用在执行自动化测试用例时使用的测试数据,该测试数据存储在数据库内。

进一步地,建立包括测试数据与自动化测试工具的测试任务,并将测试任务按照服务器IP地址进行分配。在实际应用中,由于有多个服务器IP地址,而对应的也会有多个测试任务,为了能够区分每个测试任务,在本发明实施例中,对每个测试任务进行编号,即可以将测试任务称为任务ID,任务ID即为带有编号的测试任务。在将每个任务ID按照服务器IP地址分配之后,还需要按照分配时建立的每个服务器IP地址与每个任务ID的关联关系,并将建立的服务器IP地址与任务ID之间的关联关系存储至数据库内。

需要说明的是,自动化测试工具用于执行自动化测试用例。

例如:待测试100个用户名和用户密码,自动化测试用例为:"input username input passwor click login"翻译为中文“在登录页面输入用户名和密码点击【登录】按钮”。执行自动化测试工具为:将同一个自动化测试执行100次,每次输入的用户名和密码,每执行一次取一个没测试过的用户名和密码;测试任务为:举例单个任务可设置为"input username input passwor click login"执行两次,测试数据为:“张三/123456,李四/123456”。

步骤一,创建自动化测试用例。该自动化测试用例为:"input username input passwor click login";

步骤二:测试测试数据。该测试数据为:“张三/123456,李四/123456。。。。。”;

步骤三:关联测试用例和测试数据。"input username input passwor click login"这个脚本的用户名和密码指定来源“张三/123456,李四/123456。。。。。”

步骤四:创建测试任务,例如任务A:"input username input passwor click login"执行两次,测试数据为:“张三/123456,李四/123456”;任务B:"input username input passwor click login"执行两次,测试数据为:“王五/123456,小明/12345;

步骤五:分配任务。电脑A执行任务A,电脑B执行任务B;

步骤六:电脑A自动在指定的时间执行任务A的测试。电脑A自动在指定的时间执行任务B的测试。

在步骤101中,在设定的时间段内启动IE打开自动化管理平台的自动化测试应用,自动化测试应用启动页面获取测试服务器IP地址,向数据库发送并服务器IP地址,查询数据库并在数据库获取到与服务器IP地址相匹配的任务ID。

当在数据库查询到与服务器IP地址相匹配的任务ID之后,将返回至自动化测试应用。

在步骤102中,由于任务ID内包括有测试数据与自动化测试工具,自动化测试应用启动页面将测试数据和自动化测试工具加载到自动化测试应用中,自动化测试应用通过测试数据在数据库内获取对于测试数据相匹配的自动化测试用例。进一步地,当在自动化测试应用上执行自动化测试用例时,可以根据任务ID获取到测试数据。

举例来说,在电脑的定时任务配置定时自动打开IE,并且自动加载自动化测试平台链接;自动化测试平台链接打开的JSP页面,JSP通过JS脚本获取当前服务器IP地址;再者,JSP页面通过AJAX请求,通过当前服务器IP地址在后台数据库任务表内查询与当前服务器IP地址相匹配的任务ID,将查询到的任务ID返回;JSP页面通过URL启动服务器本地的自动化测试工具,并将任务ID作为参数传递给自动化测试工具;自动化测试工具通过任务ID去数据库查询需要执行的自动化测试用例,并且在每次执行测试用例的时候根据任务ID查出要导入的测试数据。

在获取到测试数据之后,还需要将每次获取到的测试数据存储到数据库内,以方便后期调用和查看;进一步地,当一个测试任务由多个服务器同时或者分时进行查询时,可以将多个服务器获取到的测试数据同时存储到数据库内,还可以将存储到数据库内的多个服务器完成的一个测试任务对于的多个测试数据按照设定要求形成测试报告。

在本发明实施例中,对将多个测试数据形成的测试报告的具体形式不做具体地限定。

综上所述,本发明实施例中提供了一种分布式自动化测试方法及装置,该方法中,支持面向数据驱动的自动化测试应用的分布式部署,提供了自动化测试用例的管理功能,即可以集中管理测试数据、直接将任务ID分配到各个服务器分别执行;进一步地,每个服务器可以按照设定时间执行测试,实现无人值守。

基于同一发明构思,本发明实施例提供了一种分布式自动化测试装置,由于该装置解决技术问题的原理与一种分布式自动化测试方法相似,因此该装置的实施可以参见方法的实施,重复之处不再赘述。

图2为本发明实施例提供的一种分布式自动化测试装置结构示意图,如图2所示,该装置主要包括第一获取单元201和第二获取单元202。

第一获取单元201,用于在设定时间通过当前服务器IP地址在数据库获取与所述服务器IP地址相匹配的任务ID;

第二获取单元202,用于将所述任务ID的写入当前服务器的自动化测试应用中,以使所述自动化测试应用通过所述任务ID在所述数据库获取与所述任务ID相匹配的自动化测试用例,且在所述自动化测试应用上执行所述自动化测试用例时根据所述任务ID获取测试数据。

优选地,所述第一获取单元201还用于:

建立所述自动化测试用例,测试与所述自动化测试用例对应的所述测试数据,将所述自动化测试用例与所述测试数据建立关联;

建立包括所述测试数据与自动化测试工具的所述任务ID,并将所述任务ID按照所述服务器IP地址进行分配,其中,所述自动化测试工具用于执行所述自动化测试用例。

优选地,所述所述第一获取单元201还用于:将相互关联的所述自动化测试用例与所述测试数据存储至所述数据库;

按照所述分配建立每个所述服务器IP地址与每个所述任务ID的关联关系,并将相互关联的所述服务器IP地址与所述任务ID存储至所述数据库。

所述任务ID与所述服务器IP地址进行

优选地,所述第二获取单元202还用于:

将在多个所述自动化测试应用获取到的多个所述测试数据存储到数据库,并根据多个所述测试数据形成测试报告。

应当理解,以上一种分布式自动化测试装置包括的单元仅为根据该设备装置实现的功能进行的逻辑划分,实际应用中,可以进行上述单元的叠加或拆分。并且该实施例提供的一种分布式自动化测试装置所实现的功能与上述实施例提供的一种分布式自动化测试方法一一对应,对于该装置所实现的更为详细的处理流程,在上述方法实施例一中已做详细描述,此处不再详细描述。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

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