批量自动化测试方法、装置及电子设备与流程

文档序号:14950589发布日期:2018-07-17 22:27阅读:192来源:国知局

本发明实施例涉及计算机技术,尤其涉及一种批量自动化测试方法、装置及电子设备。



背景技术:

appium是一种测试框架,其中包括一个appium服务器,appium服务器可以驱动手机等终端执行测试指令,从而可以模拟用户界面(userinterface,简称ui)自动化测试。通过该测试框架可以模拟人为操作,来实现重复性的操作,从而节省出人力,提高测试效率。

现有技术中,可以使用appium测试框架进行批量测试处理。具体地,appium服务器运行测试设备(例如台式电脑、笔记本电脑等)上,测试设备与应用程序(application,简称app)所在的终端(例如手机、平板电脑)连接。进而,在测试设备端控制appium服务器的启动和关闭。

但是,使用现有技术的方法可能会出现appium服务器尝试多次无法成功启动的问题,从而导致测试用例无法正常执行。



技术实现要素:

本发明实施例提供一种批量自动化测试方法、装置及电子设备,用于解决现有技术中测试用例无法正常执行的问题。

本发明实施例第一方面提供一种批量自动化测试方法,该方法包括:

在批量执行测试用例时,确定测试服务器是否启动失败,其中,所述测试用例为测试应用程序app的用例;

若所述测试服务器启动失败,则关闭所述测试服务器对应的进程,并重新启动所述测试服务器对应的进程。

该方法中,当测试服务器启动失败时,测试设备会直接关闭测试服务器对应的进程,紧接着再重新启动测试服务器,从而实现测试服务器对应的进程的快速重启,从而保证测试用例可以正常执行。

进一步地,所述在批量执行测试用例时,确定测试服务器是否启动失败之前,还包括:

获取所述测试用例的配置信息,所述配置信息至少包括:所述应用程序app所在的终端信息、操作系统信息以及所述app对应的包名;

根据所述测试用例的配置信息,启动所述测试服务器。

该方法中,在批量执行测试用例之前,测试设备首先确定测试用例的配置信息,进而使得测试服务器可以根据这些配置信息来启动,从而保证测试服务器可以按照这些配置向正确的终端发送正确的测试指令,从而进一步保证测试用例的正常执行。

进一步地,还包括:

通过所述测试服务器将所述测试用例对应的测试指令发送给所述app所在的终端,以使所述app所在的终端根据所述测试用例对应的测试指令执行针对所述app的操作。

该方法中,当测试服务器重新启动之后,将测试客户端发送来的指令转发到终端,从而使得终端可以根据测试指令执行针对app的操作,从而进一步保证了测试用例的正常执行。

进一步地,所述批量执行测试用例,包括:

执行批量测试用例脚本,所述批量测试用例脚本中包括测试所述app的多个测试用例;

其中,所述多个测试用例按照预设的层次结构以及先后顺序排列。

进一步地,所述测试服务器为跨平台测试框架appium的服务器。

本发明实施例第二方面提供一种批量自动化测试装置,该装置包括:

确定模块,用于在批量执行测试用例时,确定测试服务器是否启动失败,其中,所述测试用例为测试应用程序app的用例;

处理模块,用于在所述测试服务器启动失败时,关闭所述测试服务器对应的进程,并重新启动所述测试服务器对应的进程。

进一步地,还包括:

获取模块,用于获取所述测试用例的配置信息,所述配置信息至少包括:所述应用程序app所在的终端信息、操作系统信息以及所述app对应的包名;

启动模块,用于根据所述测试用例的配置信息,启动所述测试服务器。

进一步地,还包括:

发送模块,用于通过所述测试服务器将所述测试用例对应的测试指令发送给所述app所在的终端,以使所述app所在的终端根据所述测试用例对应的测试指令执行针对所述app的操作。

进一步地,所述确定模块具体用于:

执行批量测试用例脚本,所述批量测试用例脚本中包括测试所述app的多个测试用例;

其中,所述多个测试用例按照预设的层次结构以及先后顺序排列。

进一步地,所述测试服务器为跨平台测试框架appium的服务器。

本发明实施例第三方面提供一种电子设备,包括:

存储器,用于存储程序指令;

处理器,用于调用并执行所述存储器中的程序指令,执行上述第一方面所述的方法步骤。

本发明实施例第四方面提供一种可读存储介质,所述可读存储介质中存储有计算机程序,当批量自动化测试装置的至少一个处理器执行所述计算机程序时,批量自动化测试装置执行上述第一方面所述的批量自动化测试方法。

本发明实施例第五方面提供一种程序产品,该程序产品包括计算机程序,该计算机程序存储在可读存储介质中。批量自动化测试装置的至少一个处理器可以从可读存储介质读取该计算机程序,至少一个处理器执行该计算机程序使得批量自动化测试装置实施第一方面的批量自动化测试方法。

本发明实施例所提供的批量自动化测试方法、装置及电子设备,当测试服务器启动失败时,测试设备会直接关闭测试服务器对应的进程,紧接着再重新启动测试服务器,从而实现测试服务器对应的进程的快速重启,从而保证测试用例可以正常执行。

附图说明

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

图1为本发明实施例提供的批量自动化测试方法的系统架构图;

图2为本发明实施例提供的批量自动化测试方法实施例一的流程示意图;

图3为测试用例按照预设层次结构以及先后顺序排列的示例图;

图4为本发明实施例提供的批量自动化测试方法实施例二的流程示意图;

图5为本发明实施例提供的批量自动化测试方法实施例三的流程示意图;

图6为本发明实施例提供的批量自动化测试装置实施例一的模块结构图;

图7为本发明实施例提供的批量自动化测试装置实施例二的模块结构图;

图8为本发明实施例提供的批量自动化测试装置实施例三的模块结构图;

图9为本发明实施例提供的电子设备实施例一的实体框图。

具体实施方式

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

图1为本发明实施例提供的批量自动化测试方法的系统架构图,如图1所示,该方法涉及测试设备以及被测终端。其中,测试设备是指运行appium测试框架的设备,测试设备具体可以是台式电脑或笔记本电脑等。被测终端是指安装app的终端,被测终端具体可以是手机、平板电脑等。

在执行本发明实施例的过程之前,测试设备与终端预先建立通信连接,以保证测试设备可以向被测终端发送命令,以及被测终端向测试设备返回相应的结果。

为便于描述,本发明以下实施例都将“被测终端”简称为“终端”。

另外,本发明以下实施例都以appium测试框架为例来介绍本发明实施例的技术方案。appium测试框架使用测试客户端-测试服务器的模式,测试人员可以在测试客户端灵活使用多种语言编写测试脚本,这些测试脚本发送至测试服务器之后,再由测试服务器转发至被测终端执行,从而实现对安装在测试终端上的app的测试。即测试客户端发送的所有测试用例都需要由测试服务器发送至终端。而现有技术中,在进行批量测试时,可能由于测试设备或者appium测试框架的原因,经常会出现测试服务器尝试多次无法成功启动的问题,当出现这种问题后,批量执行的测试用例无法正常执行,需要等待较长时间后才可以继续执行。

本发明实施例基于上述问题,提出一种批量自动化测试方法,当测试服务器启动失败之后,能及时关闭并重启测试服务器对应的进程,从而保证测试服务器可以快速的重启,进而保证测试用例正常执行。

需要说明的是,虽然本发明实施例以appium测试框架为例进行说明,但是本发明实施例的适用范围并不仅限于appium测试框架,而同样可以适用于其他包含了测试服务器的测试框架、测试工具等。

图2为本发明实施例提供的批量自动化测试方法实施例一的流程示意图,该方法的执行主体为上述的测试设备,例如台式电脑或笔记本电脑等。如图2所示,该方法包括:

s201、在批量执行测试用例时,确定测试服务器是否启动失败,其中,该测试用例为测试app的用例。

可选的,测试人员可以预先编写批量测试用例脚本,在批量执行测试用例时,具体可以执行该批量测试用例脚本。该批量测试用例脚本中包括测试app的多个测试用例。

可选的,上述多个测试用例按照预设的层次结构以及先后顺序排列。

示例性的,图3为测试用例按照预设层次结构以及先后顺序排列的示例图,测试用例以及批量测试用例脚本可以按照图3所示的层次以及顺序来排列。具体的,每一个.py文件为一个批量测试用例脚本,在每一个.py文件内可以包括多个测试用例。同时,多个.py文件之间也以一定的层次和顺序来排列。

进而,测试人员可以通过测试客户端启动上述批量测试用例脚本,客户端将批量测试用例脚本中测试用例对应的测试指令发送给测试服务器进行转发。在转发测试指令之前,测试服务器会首先进行启动。如果测试服务器启动失败,则会向客户端反馈或者由测试服务器直接发出启动失败的标识信息,例如,测试服务器向客户端反馈“startfailure”信息。测试设备可以实时的获取到上述启动失败的标识信息。

s202、若上述测试服务器启动失败,则关闭所述测试服务器对应的进程,并重新启动所述测试服务器对应的进程。

当测试设备获取到启动失败的标识信息,确定测试服务器启动失败之后,则测试设备会直接关闭测试服务器对应的进程,紧接着再重新启动测试服务器对应的进程。

在测试设备中,测试服务器对应一个进程,当测试服务器启动时,该进程启动。现有技术中,当测试服务器由于一些原因尝试多次仍无法正常启动时,对应的进程并不能及时的关闭,因此需要等待较长时间才能重新启动。

而本步骤中,只要测试服务器发出启动失败的信息,测试设备就会及时关闭对应进程,紧接着重新启动,进而继续正常转发测试的指令。该过程测试人员感知不到,即对于测试人员来说测试指令一直按照正常的过程在执行,因此,通过本实施例的过程可以实现测试服务器对应的进程的快速重启,从而保证测试用例可以正常执行。

本实施例中,当测试服务器启动失败时,测试设备会直接关闭测试服务器对应的进程,紧接着再重新启动测试服务器,从而实现测试服务器对应的进程的快速重启,从而保证测试用例可以正常执行。

在上述实施例的基础上,本实施例涉及确定测试用例配置信息的具体过程。

图4为本发明实施例提供的批量自动化测试方法实施例二的流程示意图,如图4所示,该方法包括:

s401、获取上述测试用例的配置信息,该配置信息至少包括:app所在的终端信息、操作系统信息以及app对应的包名。

其中,app所在的终端信息为终端的标识,测试服务器可以通过该终端的标识来确定测试指令的发送对象是否正确。操作系统信息是指app所在终端的操作系统的名称以及版本等。示例性的,操作系统的名称可以为android,版本可以为6.0。app对应的包名可以唯一标识终端上的app。

可选的,测试人员可以预先在测试客户端上输入上述配置信息,进而由测试设备保存这些配置信息,并在执行测试用例之前读取这些配置信息,进而由测试客户端将这些配置信息发送给测试服务器。

可选的,测试人员可以直接在测试客户端上手动输入上述各项配置信息,或者,测试人员也可以从测试客户端所提供的选项中选择一项配置信息,例如,对于操作系统信息,测试客户端上可以显示多种操作系统的名称选项,测试人员可以从中选择一个名称选项,作为本次批量测试所对应的操作系统名称。

s402、根据上述测试用例的配置信息,启动上述测试服务器。

当上述配置信息发送给测试服务器之后,按照这些配置信息启动测试服务器。

例如,测试服务器会根据终端的操作系统来确定启动之后向终端发送哪种格式的指令等。

s403、在批量执行测试用例时,确定测试服务器是否启动失败,其中,该测试用例为测试app的用例。

该步骤的具体执行过程与上述步骤s201相同,可以参照上述步骤s201,此处不再赘述。

s404、若上述测试服务器启动失败,则关闭所述测试服务器对应的进程,并重新启动所述测试服务器对应的进程。

该步骤的具体执行过程与上述步骤s202相同,可以参照上述步骤s202,此处不再赘述。

本实施例中,在批量执行测试用例之前,测试设备首先确定测试用例的配置信息,进而使得测试服务器可以根据这些配置信息来启动,从而保证测试服务器可以按照这些配置向正确的终端发送正确的测试指令,从而进一步保证测试用例的正常执行。

在上述实施例的基础上,本实施例涉及测试服务器重启之后的具体处理过程。

图5为本发明实施例提供的批量自动化测试方法实施例三的流程示意图,如图5所示,该方法包括:

s501、获取上述测试用例的配置信息,该配置信息至少包括:app所在的终端信息、操作系统信息以及app对应的包名。

该步骤的具体执行过程与上述步骤s401相同,可以参照上述步骤s401,此处不再赘述。

s502、根据上述测试用例的配置信息,启动上述测试服务器。

该步骤的具体执行过程与上述步骤s402相同,可以参照上述步骤s402,此处不再赘述。

s503、在批量执行测试用例时,确定测试服务器是否启动失败,其中,该测试用例为测试app的用例。

该步骤的具体执行过程与上述步骤s403相同,可以参照上述步骤s403,此处不再赘述。

s504、若上述测试服务器启动失败,则关闭所述测试服务器对应的进程,并重新启动所述测试服务器对应的进程。

该步骤的具体执行过程与上述步骤s404相同,可以参照上述步骤s404,此处不再赘述。

s505、通过上述测试服务器将上述测试用例对应的测试指令发送给上述app所在的终端,以使上述app所在的终端根据上述测试用例对应的测试指令执行针对所述app的操作。

测试设备经过关闭以及重新启测试服务器对应的进程之后,测试服务器可以正常转发测试用例对应的测试指令。

具体的,测试客户端将测试用例对应的测试指令发送到测试服务器,测试服务器再将这些测试指令发送给与测试设备连接的并且终端标识为上述配置信息中的终端标识的终端。

示例性的,假设当前与测试设备连接的终端有终端a和终端b,而上述配置信息中终端的标识为a,则当测试服务器从测试客户端接收到测试指令之后,会将测试指令发送到终端a。同时,测试指令还包括app的包名,当终端a接收到测试指令之后,会解析测试指令,以明确需要针对哪个app进行操作,进而执行针对该app的操作。

本实施例中,当测试服务器重新启动之后,将测试客户端发送来的指令转发到终端,从而使得终端可以根据测试指令执行针对app的操作,从而进一步保证了测试用例的正常执行。

图6为本发明实施例提供的批量自动化测试装置实施例一的模块结构图,如图6所示,该装置包括:

确定模块601,用于在批量执行测试用例时,确定测试服务器是否启动失败,其中,所述测试用例为测试应用程序app的用例。

处理模块602,用于在所述测试服务器启动失败时,关闭所述测试服务器对应的进程,并重新启动所述测试服务器对应的进程。

该装置用于实现前述方法实施例,其实现原理和技术效果类似,此处不再赘述。

图7为本发明实施例提供的批量自动化测试装置实施例二的模块结构图,如图7所示,该装置还包括:

获取模块603,用于获取所述测试用例的配置信息,所述配置信息至少包括:所述应用程序app所在的终端信息、操作系统信息以及所述app对应的包名。

启动模块604,用于根据所述测试用例的配置信息,启动所述测试服务器。

图8为本发明实施例提供的批量自动化测试装置实施例三的模块结构图,如图8所示,该装置还包括

发送模块605,用于通过所述测试服务器将所述测试用例对应的测试指令发送给所述app所在的终端,以使所述app所在的终端根据所述测试用例对应的测试指令执行针对所述app的操作。

另一实施例中,确定模块601具体用于:

执行批量测试用例脚本,所述批量测试用例脚本中包括测试所述app的多个测试用例;

其中,所述多个测试用例按照预设的层次结构以及先后顺序排列。

另一实施例中,所述测试服务器为跨平台测试框架appium的服务器。

图9为本发明实施例提供的电子设备实施例一的实体框图,如图9所示,该电子设备包括:

存储器901,用于存储程序指令;

处理器902,用于调用并执行所述存储器中的程序指令,执行上述方法实施例中的步骤。

本发明实施例还提供一种可读存储介质,所述可读存储介质中存储有计算机程序,当批量自动化测试装置的至少一个处理器执行所述计算机程序时,批量自动化测试装置执行上述的批量自动化测试方法。

本发明实施例还提供一种程序产品,该程序产品包括计算机程序,该计算机程序存储在可读存储介质中。批量自动化测试装置的至少一个处理器可以从可读存储介质读取该计算机程序,至少一个处理器执行该计算机程序使得批量自动化测试装置实施上述的批量自动化测试方法。

本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。

最后应说明的是:以上各实施例仅用以说明本发明实施例的技术方案,而非对其限制;尽管参照前述各实施例对本发明实施例进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明实施例各实施例技术方案的范围。

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