一种自动化测试系统及自动化测试方法与流程

文档序号:16930585发布日期:2019-02-22 20:14阅读:169来源:国知局
一种自动化测试系统及自动化测试方法与流程
本发明涉及软件测试
技术领域
,尤其涉及一种自动化测试系统及自动化测试方法。
背景技术
:软件开发工具包(softwaredevelopmentkit,sdk)一般是指软件工程师为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件时的开发工具的集合。sdk的功能定义来源于sdk的配置文件,而sdk配置文件可以通过sdk的配置中心生成、修改、下发。开发人员可以采用sdk进行应用程序开发,这样开发人员就可以快速的建立应用软件,省去了编写硬件代码和基础代码框架的过程。对于sdk是否满足开发人员所建立的应用软件的要求,这是需要进行sdk测试的。然而,现有技术中尚不能实现基于远程过程调用(remoteprocedurecall,rpc)通信的sdk自动化测试。基于此,目前亟需一种自动化测试系统,用于实现基于rpc通信的sdk自动化测试。技术实现要素:本发明实施例提供一种自动化测试系统及自动化测试方法,以实现基于rpc通信的sdk自动化测试。本发明实施例提供一种自动化测试系统,所述系统包括控制模块和sdk测试模块;所述控制模块,用于接收第一平台发送的测试指令,若确定所述测试指令为sdk测试指令,则启动用于执行所述sdk测试指令的所述sdk测试模块;所述sdk测试模块,用于获取与所述sdk测试指令对应的第一sdk测试用例,并基于rpc通信协议从第二平台中调用与所述第一sdk测试用例对应的sdk测试服务进行sdk测试。采用上述自动化测试系统,通过系统中的sdk测试模块和第二平台的交互,能够实现基于rpc通信的sdk自动化测试;进一步地,由于该系统可以从第二平台中调用sdk测试服务,换言之,sdk测试用例及对应的sdk测试服务是相互独立的,因此,该系统可以实现测试用例的快速扩容,能够大大提高维护速度。在一种可能的实现方式中,所述sdk测试模块在进行sdk测试之后,还用于:生成第一sdk测试数据并向所述控制模块发送所述第一sdk测试数据;所述控制模块还用于:接收所述第一sdk测试数据,并根据所述第一sdk测试数据生成sdk测试报告,以及向所述第一平台发送所述sdk测试报告。采用上述自动化系统,通过该系统与第一平台的交互,便于用于从第一平台中查看sdk测试报告,如此,用户只需通过第一平台,即可实现从输入测试指令到接收测试报告的自动化测试,方便快捷,便于用户操作。在一种可能的实现方式中,所述系统还包括用户界面(userinterface,ui)测试模块;所述控制模块,还用于若确定所述测试指令为ui测试指令,则启动用于执行所述ui测试指令的所述ui测试模块;所述ui测试模块,用于获取与所述ui测试指令对应的第一ui测试用例,并根据所述第一ui测试用例进行ui测试,以及生成第一ui测试数据并向所述控制模块发送所述第一ui测试数据;所述控制模块,还用于接收所述第一ui测试数据,并根据所述第一ui测试数据生成ui测试报告,以及向所述第一平台发送所述ui测试报告。采用上述自动化测试系统,通过系统中的ui测试模块能够实现ui自动化测试。在一种可能的实现方式中,所述系统还包括应用程序编程接口(applicationprogramminginterface,api)测试模块;所述控制模块,还用于若确定所述测试指令为api测试指令,则启动用于执行所述api测试指令的所述api测试模块;所述api测试模块,用于获取与所述api测试指令对应的第一api测试用例,并根据所述第一api测试用例进行api测试,以及生成第一api测试数据并向所述控制模块发送所述第一api测试数据;所述控制模块,还用于接收所述第一api测试数据,并根据所述第一api测试数据生成api测试报告,以及向所述第一平台发送所述api测试报告。采用上述自动化测试系统,通过系统中的api测试模块能够实现api自动化测试。在一种可能的实现方式中,所述系统还包括全场景scenario测试模块;所述控制模块,还用于若确定所述测试指令为全栈all测试指令,则启动用于执行所述all测试指令的所述scenario测试模块;所述all测试指令用于指示执行所述sdk测试指令、所述ui测试指令和所述api测试指令;所述scenario测试模块,用于根据所述all测试指令确定各测试模块的测试顺序,并根据所述测试顺序及上一测试模块的测试数据,确定是否启动下一测试模块;所述scenario测试模块,还用于接收所述各测试模块发送的测试数据,并根据所述各测试模块的测试数据生成all测试数据,以及向所述控制平台发送所述all测试数据;所述控制模块,还用于接收所述all测试数据,并根据所述all测试数据生成all测试报告,以及向所述第一平台发送所述all测试报告。采用上述自动化测试系统,通过系统中的scenario测试模块分别启动ui测试模块、api测试模块和sdk测试模块,从而能够实现从web页面配置到api访问再到sdk功能验证的全栈式自动化测试。本发明实施例提供一种自动化测试方法,所述方法应用于自动化测试系统,所述系统包括控制模块和软件开发工具包sdk测试模块;所述方法包括:所述控制模块接收第一平台发送的测试指令,若确定所述测试指令为sdk测试指令,则启动用于执行所述sdk测试指令的sdk测试模块;所述sdk测试模块获取与所述sdk测试指令对应的第一sdk测试用例,并基于rpc通信协议从第二平台中调用与所述第一sdk测试用例对应的sdk测试服务进行sdk测试。在一种可能的实现方式中,在所述sdk测试模块进行sdk测试之后,所述方法还包括:所述sdk测试模块生成第一sdk测试数据并向所述控制模块发送所述第一sdk测试数据;所述控制模块接收所述第一sdk测试数据,并根据所述第一sdk测试数据生成sdk测试报告,以及向所述第一平台发送所述sdk测试报告。在一种可能的实现方式中,所述系统还包括用户界面ui测试模块;所述方法还包括:所述控制模块若确定所述测试指令为ui测试指令,则启动用于执行所述ui测试指令的ui测试模块;所述ui测试模块获取与所述ui测试指令对应的第一ui测试用例,并根据所述第一ui测试用例进行ui测试。在一种可能的实现方式中,在根据所述第一ui测试用例进行ui测试之后,所述方法还包括:所述ui测试模块生成第一ui测试数据并向所述控制模块发送所述第一ui测试数据;所述控制模块接收所述第一ui测试数据,并根据所述第一ui测试数据生成ui测试报告,以及向所述第一平台发送所述ui测试报告。在一种可能的实现方式中,所述系统还包括应用程序编程接口api测试模块;所述方法还包括:所述控制模块若确定所述测试指令为api测试指令,则启动用于执行所述api测试指令的api测试模块;所述api测试模块获取与所述api测试指令对应的第一api测试用例,并根据所述第一api测试用例进行api测试。在一种可能的实现方式中,在根据所述第一api测试用例进行api测试之后,所述方法还包括:所述api测试模块生成第一api测试数据并向所述控制模块发送所述第一api测试数据;所述控制模块接收所述第一api测试数据,并根据所述第一api测试数据生成api测试报告,以及向所述第一平台发送所述api测试报告。在一种可能的实现方式中,所述系统还包括全场景scenario测试模块;所述方法还包括:所述控制模块若确定所述测试指令为全栈all测试指令,则启动用于执行所述all测试指令的scenario测试模块;所述all测试指令用于执行所述sdk测试指令、所述ui测试指令和所述api测试指令;所述scenario测试模块根据所述all测试指令确定各测试模块的测试顺序,并根据所述测试顺序及上一测试模块的测试数据,确定是否启动下一测试模块;以及接收所述各测试模块发送的测试数据,并根据所述各测试模块的测试数据生成all测试数据,以及向所述控制平台发送所述all测试数据;所述控制模块接收所述all测试数据,并根据所述all测试数据生成all测试报告,以及向所述第一平台发送所述all测试报告。在一种可能的实现方式中,所述测试顺序为ui测试、api测试、sdk测试;所述scenario测试模块根据所述测试顺序及上一测试模块的测试数据,确定是否启动下一测试模块;以及接收所述各测试模块发送的测试数据并根据所述各测试模块的测试数据生成all测试数据,以及向所述控制平台发送所述all测试数据,包括:启动所述ui测试模块;接收所述ui测试模块发送的第二ui测试数据,若根据所述第二ui测试数据确定ui测试成功后,则启动所述api测试模块;并接收所述api测试模块发送的所述第二api测试数据,若根据所述第二api测试数据确定api测试成功后,则启动所述sdk测试模块;接收所述sdk测试模块发送的所述第二sdk测试数据,并根据所述第二ui测试数据、所述第二api测试数据和所述第二sdk测试数据生成all测试数据,以及向所述控制平台发送所述all测试数据。在一种可能的实现方式中,所述第一平台用于接收用户输入的测试指令以及接收所述系统发送的测试报告;所述第二平台预先存储有多个sdk测试服务,所述sdk测试服务是所述第二平台在被所述sdk测试模块远程启动后加载的。本申请实施例的还提供一种装置,该装置具有实现上文所描述的自动化测试方法的功能。该功能可以通过硬件执行相应的软件实现,在一种可能的设计中,该装置包括:处理器、收发器、存储器;该存储器用于存储计算机执行指令,该收发器用于实现该装置与其他通信实体进行通信,该处理器与该存储器通过该总线连接,当该装置运行时,该处理器执行该存储器存储的该计算机执行指令,以使该装置执行上文所描述的自动化测试方法。本发明实施例还提供一种计算机存储介质,所述存储介质中存储软件程序,该软件程序在被一个或多个处理器读取并执行时实现上述各种可能的实现方式中所描述的自动化测试方法。本发明实施例还提供一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述各种可能的实现方式中所描述的自动化测试方法。附图说明为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍。图1为本发明实施例适用的系统架构的示意图;图2为本发明实施例提供的一种自动化测试系统的结构示意图;图3为本发明实施例中使用jenkins的系统部署示意图;图4为本发明实施例还提供的自动化测试方法所对应的流程示意图之一;图5为本发明实施例还提供的自动化测试方法所对应的流程示意图之二;图6为本发明实施例还提供的自动化测试方法所对应的流程示意图之三;图7为本发明实施例还提供的自动化测试方法所对应的流程示意图之四。具体实施方式下面结合说明书附图对本申请进行具体说明,方法实施例中的具体操作方法也可以应用于装置实施例中。图1示例性示出了本发明实施例适用的系统架构的示意图。如图1所示,本发明实施例适用的系统100可以包括自动化测试系统200、第一平台300、第二平台400、多个终端(例如图1中示出的终端501、终端502、终端503)以及注册中心600。其中,自动化测试系统200可以分别与第一平台300、第二平台400、注册中心600通过网络连接;第一平台300还可以与终端401连接,或者可以与终端502,或者可以与终端503;第二平台400还可以与注册中心600通过网络连接。进一步地,第一平台300可以用于收用户输入的测试指令以及接收所述系统发送的测试报告,具体地,用户可以通过终端501(或终端502,或终端503)登录第一平台300从而输入测试指令,以及通过终端501(或终端502,或终端503)登录第一平台300从而查看测试报告。第二平台400可以预先存储有多个sdk测试服务,以便于自动化测试系统200从第二平台400中远程调用sdk测试服务。具体实施过程中,第二平台400可以将每个sdk测试服务对应的地址(如统一资源定位符(uniformresourcelocator,url)地址)发送到注册中心600,注册中心600可以将每个sdk测试服务与对应的地址进行存储。如此,当自动化测试系统200需要调用第二平台400中的sdk测试服务时,自动化测试系统200可以先从注册中心600中获取相应地sdk测试服务的地址,进而可以根据sdk测试服务的地址来调用对应的sdk测试服务。基于图1所示的系统架构,如图2所示,为本发明实施例提供的一种自动化测试系统的结构示意图。该自动化测试系统200可以包括控制模块201、sdk测试模块202、ui测试模块203、api测试模块204和全场景scenario测试模块205。其中,控制模块201可以用于接收第一平台300发送的用户输入的测试指令,并根据用户输入的测试指令,启动与测试指令对应的测试模块。进一步地,根据测试指令的不同,可以分为以下四种情形。情形一:测试指令为sdk测试指令。首先,控制模块201可以用于接收第一平台300发送的用户输入的sdk测试指令,并启动用于执行sdk测试指令的sdk测试模块202;sdk测试模块202可以用于从预设数据库中获取与sdk测试需求对应的第一sdk测试用例。其中,sdk测试模块可以模拟功能相关消费者,通过调用第二平台中的sdk测试服务(即sdk提供者实例),来进行自动化测试。具体地,sdk测试指令可以包括sdk测试需求,其中,sdk测试需求可以是指用户进行sdk测试时的测试要求。比如,用户进行sdk测试时需要对功能a进行测试,那么对功能a进行测试就可以看做是sdk测试需求。进一步地,预设数据库中可以存储有多个sdk测试用例,每个sdk测试用例可以与至少一种功能相对应。如表1所示,为sdk测试用例与功能的对应关系的一种示例。其中,sdk测试用例1对应功能a;sdk测试用例2对应功能b;sdk测试用例3对应功能b和功能c。表1:sdk测试用例与功能的对应关系的一种示例sdk测试用例功能sdk测试用例1功能asdk测试用例2功能bsdk测试用例3功能b、功能c举个例子,若sdk测试需求为对功能a进行测试,则根据表1示出的内容可知,sdk测试模块202可以从预设数据库中获取到的第一sdk测试用例为表1中示出的sdk测试用例1。其次,考虑到需要采用与sdk测试用例对应的sdk测试服务来完成sdk测试,而sdk测试服务是预先存储在第二平台400中的,因此,本发明实施例中sdk测试模块200可以采用rpc通信的方式从第二平台中调用与第一测试用例对应的sdk测试服务来进行sdk测试。具体地,当sdk测试模块202被控制模块201启动后,可以远程启动第二平台400,具体的远程启动第二平台的方式可以采用现有的基于握手协议的启动方法,在此不做详细描述。第二平台400在被sdk测试模块201远程启动后,可以加载预先存储的多个sdk测试服务。进而,sdk测试模块202在确定第一sdk测试用例后,可以基于rpc通信协议从第二平台400中调用与第一测试用例对应的sdk测试服务来进行sdk测试,具体的调用过程为第二平台400将多个sdk测试服务的地址发送到注册中心600,注册中心600存储多个sdk测试服务以及每个sdk测试服务对应的地址,sdk测试模块202在确定第一sdk测试用例后,从注册中心600中获取第一sdk测试用例对应的sdk测试服务的地址,进而可以根据该地址来调用对应的sdk测试服务进行测试。需要说明的是,第二平台400可以在启动后加载所有的sdk测试服务;或者也可以在启动后,根据sdk测试模块200发送的指令加载特定的sdk测试服务,比如,第二平台400可以只加载第一sdk测试用例对应的sdk测试服务,具体不做限定。最后,sdk测试模块202进行测试之后,还可以用于生成第一sdk测试数据,并向控制模块201发送第一sdk测试数据;控制模块201还可以用于接收第一sdk测试数据,并根据第一sdk测试数据生成sdk测试报告,以及向第一平台300发送sdk测试报告,以使第一平台300向用户展示sdk测试报告。如此,用户只需通过第一平台,即可实现从输入测试指令到接收测试报告的自动化测试,方便快捷,便于用户操作。采用上述自动化测试系统,通过系统中的sdk测试模块和第二平台的交互,能够实现基于rpc通信的sdk自动化测试;进一步地,由于该系统可以从第二平台中调用sdk测试服务,换言之,sdk测试用例及对应的sdk测试服务是相互独立的,因此,该系统可以实现测试用例的快速扩容,能够大大提高维护速度。情形二:测试指令为ui测试指令。首先,控制模块201可以用于接收第一平台300发送的用户输入的ui测试指令,并启动用于执行ui测试指令的ui测试模块203;ui测试模块203可以用于获取与ui测试需求对应的第一ui测试用例,并根据第一ui测试用例进行ui测试。其中,ui测试模块203可以采用pageobject设计模式,对web元素定位方式采用灵活的配置化实现,实现了sdk配置中web页面的自动化测试,即当web元素发生变更时,只需要修改配置属性即可,无需修改uiauto代码,增加uiauto的可维护性,从而降低维护成本。具体地,ui测试指令可以包括ui测试需求,其中,ui测试需求可以是指用户进行ui测试时的测试要求。比如,用户进行ui测试时需要对界面a进行测试,那么对界面a进行测试就可以看做是ui测试需求。进一步地,如表2所示,为ui测试用例与界面的对应关系的一种示例。其中,ui测试用例1对应界面a;ui测试用例2对应界面b;ui测试用例3对应界面b和界面c。从表2中可以看出,每个ui测试用例可以与至少一个界面相对应。表2:ui测试用例与界面的对应关系的一种示例ui测试用例界面ui测试用例1界面aui测试用例2界面bui测试用例3界面b、界面c举个例子,若ui测试需求为对界面a进行测试,则根据表2示出的内容可知,ui测试模块203可以获取到的第一ui测试用例为表2中示出的ui测试用例1。然后,ui测试模块203在进行ui测试之后,还可以用于生成第一ui测试数据,并向控制模块201发送第一ui测试数据;控制模块201还可以用于接收第一ui测试数据,并根据第一ui测试数据生成ui测试报告,以及向第一平台300发送ui测试报告,以使第一平台300向用户展示ui测试报告。采用上述自动化测试系统,通过系统中的ui测试模块能够实现ui自动化测试。情形三:测试指令为api测试指令。首先,控制模块201可以用于接收第一平台300发送的用户输入的api测试指令,并启动用于执行api测试指令的api测试模块204;api测试模块204可以用于获取与api测试需求对应的第一api测试用例,并根据第一api测试用例进行api测试。其中,apiurl和请求具体参数可以写入配置文件中,如此,api测试模块204可以自动化读取配置文件相关信息进行自动化测试,在测试服务地址发生变化或者测试参数发生变化时无需修改代码,修改配置文件即可,实现了请求参数配置化,提高apiautotest模块的可维护性,可以实现测试用例的快速扩展。具体地,api测试指令可以包括api测试需求,其中,api测试需求可以是指用户进行api测试时的测试要求。比如,用户进行api测试时需要对接口a进行测试,那么对接口a进行测试就可以看做是api测试需求。进一步地,如表3所示,为api测试用例与接口的对应关系的一种示例。其中,api测试用例1对应接口a;api测试用例2对应接口b;api测试用例3对应接口b和接口c。从表3中可以看出,每个api测试用例可以与至少一个接口相对应。表3:api测试用例与接口的对应关系的一种示例api测试用例接口api测试用例1接口aapi测试用例2接口bapi测试用例3接口b、接口c举个例子,若api测试需求为对接口a进行测试,则根据表3示出的内容可知,api测试模块204可以获取到的第一api测试用例为表3中示出的api测试用例1。然后,api测试模块204在进行api测试之后,还可以用于生成第一api测试数据,并向控制模块201发送第一api测试数据;控制模块201还可以用于接收第一api测试数据,并根据第一api测试数据生成api测试报告,以及向第一平台300发送api测试报告,以使第一平台300向用户展示api测试报告。采用上述自动化测试系统,通过系统中的api测试模块能够实现api自动化测试。情形四:测试指令为全栈(all)测试指令。本发明实施例中,all测试指令可以是指全栈的测试指令,即all测试指令可以用于指示执行从web页面配置到api访问再到底层sdk功能验证的全栈式自动化测试。具体来说,控制模块201可以用于接收第一平台300发送的用户输入的all测试指令,并启动用于执行all测试指令的scenario测试模块205;scenario测试模块205可以用于根据all测试需求确定各测试模块的测试顺序,并根据测试顺序及上一测试模块的测试数据,确定是否启动下一测试模块。进一步地,scenario测试模块205还可以用于接收各测试模块发送的测试数据并根据各测试模块的测试数据生成all测试数据,以及向控制平台201发送all测试数据。进一步地,控制模块201还用于接收all测试数据,并根据all测试数据生成all测试报告,以及向第一平台300发送all测试报告,以使第一平台300向用户展示all测试报告。本发明实施例中,all测试指令可以包括用户进行all测试时的测试要求,具体可以包括ui测试需求、apl测试需求以及sdk测试需求。此外,all测试指令还可以包括all测试需求,其中,all测试需求可以包括用户进行all测试时的测试顺序。比如,测试顺序可以为ui测试、api测试、sdk测试;或者,测试顺序也可以为ui测试、sdk测试、api测试。本领域技术人员可以根据经验和实际情况来确定测试顺序,具体不做限定。采用上述自动化测试系统,通过系统中的scenario测试模块分别启动ui测试模块、api测试模块和sdk测试模块,从而能够实现从web页面配置到api访问再到sdk功能验证的全栈式自动化测试。以ui测试、sdk测试、api测试这一测试顺序为例,下面进行详细描述。控制模块201,若确定测试指令为all测试指令,则启动用于执行all测试指令的scenario测试模块205。scenario测试模块205,若确定测试顺序为ui测试、api测试、sdk测试,则启动ui测试模块203。ui测试模块203,获取与all测试需求对应的第二ui测试用例,并根据第二ui测试用例进行ui测试,以及向scenario测试模块205发送第二ui测试数据。scenario测试模块205,接收ui测试模块203发送的第二ui测试数据,若根据第二ui测试数据确定ui测试成功后,则启动api测试模块204。api测试模块204,获取与all测试需求对应的第二api测试用例,并根据第二api测试用例进行api测试,以及向scenario测试模块205发送第二api测试数据;scenario测试模块205,接收述api测试模块204发送的第二api测试数据,若根据第二api测试数据确定api测试成功后,则启动sdk测试模块202。sdk测试模块202,获取与all测试需求对应的第二sdk测试用例,并从第二平台400中基于rpc通信协议调用与第二sdk测试用例对应的sdk测试服务进行sdk测试,以及向scenario测试模块205发送第二sdk测试数据。scenario测试模块205,接收sdk测试模块202发送的述第二sdk测试数据,并根据第二ui测试数据、第二api测试数据和第二sdk测试数据生成all测试数据,以及向控制模块201发送all测试数据。控制模块201,接收all测试数据,并根据all测试数据生成all测试报告,以及向第一平台300发送all测试报告,以使第一平台300向用户展示all测试报告。本发明实施例提供的自动化测试系统200,一方面能够实现分层自动化测试,即单独的ui自动化测试、单独的api自动化测试、单独的sdk测试;另一方面,该自动化测试系统200打通了ui层、api层、sdk层,能够实现ui修改配置,sdk验证功能是否生效的全栈自动化测试,从而实现能够实现从web页面配置到api访问再到sdk功能验证的全栈式自动化测试。本发明实施例中,自动化测试系统200的部署可以使用jenkins作为ci(持续集成)工具。如图3所示,为本发明实施例中使用jenkins的系统部署示意图。具体来说,可以通过参数化配置把参数(para)传递到自动化测试系统200中,自动化测试系统200可以通过测试模块分组管理来判断调用那个具体的测试模块来进行自动化。比如,若para值为ui,则自动化测试系统200可以调用ui测试模块来进行ui测试,在执行ui测试时,ui测试模块首先可以从配置文件中读取到相关页面相关元素的定位信息,然后可以调用封装好的方法驱动ui测试,在遇到数据输入时,ui测试模块会从配置文件中读取参数化的配置,比如一个web输入框有很多测试输入值需要输入并测试,ui测试模块会读取出所有的测试值,并遍历进行验证,直到所有测试值验证完毕再继续执行后面的自动化测试case,测试执行完毕后会自动生成测试报告。基于同样的发明构思,本发明实施例还提供一种自动化测试方法,该方法可以应用于上文所述的自动化测试系统。如图4所示,为本发明实施例还提供的自动化测试方法所对应的流程示意图之一,具体包括如下步骤:步骤401,控制模块接收第一平台发送的测试指令。步骤402,控制模块若确定所述测试指令为sdk测试指令,则启动用于执行所述sdk测试指令的sdk测试模块。步骤403,sdk测试模块获取与所述sdk测试需求对应的第一sdk测试用例。步骤404,sdk测试模块基于rpc通信协议从第二平台中调用与所述第一sdk测试用例对应的sdk测试服务进行sdk测试。步骤405,sdk测试模块生成第一sdk测试数据。步骤406,sdk测试模块向控制模块发送第一sdk测试数据。步骤407,控制模块接收第一sdk测试数据。步骤408,控制模块根据第一sdk测试数据生成sdk测试报告。步骤409,控制模块向第一平台发送sdk测试报告。采用上述自动化测试系统,通过系统中的sdk测试模块和第二平台的交互,能够实现基于rpc通信的sdk自动化测试;进一步地,由于该系统可以从第二平台中调用sdk测试服务,换言之,sdk测试用例及对应的sdk测试服务是相互独立的,因此,该系统可以实现测试用例的快速扩容,能够大大提高维护速度。基于同样的发明构思,本发明实施例还提供另一种自动化测试方法,该方法可以应用于上文所述的自动化测试系统。如图5所示,为本发明实施例还提供的自动化测试方法所对应的流程示意图之二,具体包括如下步骤:步骤501,控制模块接收第一平台发送的测试指令。步骤502,控制模块若确定测试指令为ui测试指令,则启动用于执行所述ui测试指令的ui测试模块。步骤503,ui测试模块获取与所述ui测试需求对应的第一ui测试用例。步骤504,ui测试模块根据所述第一ui测试用例进行ui测试。步骤505,ui测试模块生成第一ui测试数据。步骤506,ui测试模块向控制模块发送第一ui测试数据。步骤507,控制模块接收第一ui测试数据。步骤508,控制模块根据第一ui测试数据生成ui测试报告。步骤509,控制模块向第一平台发送所述ui测试报告。采用上述自动化测试系统,通过系统中的ui测试模块能够实现ui自动化测试。基于同样的发明构思,本发明实施例还提供另一种自动化测试方法,该方法可以应用于上文所述的自动化测试系统。如图6所示,为本发明实施例还提供的自动化测试方法所对应的流程示意图之三,具体包括如下步骤:步骤601,控制模块接收第一平台发送的测试指令。步骤602,控制模块若确定所述测试指令为api测试指令,则启动用于执行所述api测试指令的api测试模块。步骤603,api测试模块获取与所述api测试需求对应的第一api测试用例。步骤604,api测试模块根据所述第一api测试用例进行api测试。步骤605,api测试模块生成第一api测试数据。步骤606,api测试模块向控制模块发送所述第一api测试数据。步骤607,控制模块接收所述第一api测试数据。步骤608,控制模块根据所述第一api测试数据生成api测试报告。步骤609,控制模块向所述第一平台发送所述api测试报告。采用上述自动化测试系统,通过系统中的api测试模块能够实现api自动化测试。基于同样的发明构思,本发明实施例还提供另一种自动化测试方法,该方法可以应用于上文所述的自动化测试系统。如图7所示,为本发明实施例还提供的自动化测试方法所对应的流程示意图之四,具体包括如下步骤:步骤701,控制模块接收第一平台发送的测试指令。步骤702,控制模块若确定所述测试指令为全栈all测试指令,则启动用于执行所述all测试指令的所述scenario测试模块。步骤703,scenario测试模块根据所述all测试需求确定各测试模块的测试顺序。步骤704,scenario测试模块根据所述测试顺序及上一测试模块的测试数据,确定是否启动下一测试模块。步骤705,scenario测试模块接收所述各测试模块发送的测试数据。步骤706,scenario测试模块根据所述各测试模块的测试数据生成all测试数据。步骤707,scenario测试模块向所述控制平台发送所述all测试数据。步骤708,控制模块接收所述all测试数据。步骤709,控制模块根据所述all测试数据生成all测试报告。步骤710,控制模块向所述第一平台发送所述all测试报告。采用上述自动化测试系统,通过系统中的scenario测试模块分别启动ui测试模块、api测试模块和sdk测试模块,从而能够实现从web页面配置到api访问再到sdk功能验证的全栈式自动化测试。需要说明的是,上述步骤703至步骤707中,all测试指令还可以包括all测试需求,其中,all测试需求可以包括用户进行all测试时的测试顺序。比如,测试顺序可以为ui测试、api测试、sdk测试;或者,测试顺序也可以为ui测试、sdk测试、api测试。本领域技术人员可以根据经验和实际情况来确定测试顺序,具体不做限定。进一步地,以ui测试、sdk测试、api测试这一测试顺序为例,scenario测试模块可以先启动ui测试模块,并接收ui测试模块发送的第二ui测试数据,若根据所述第二ui测试数据确定ui测试成功后,则启动api测试模块;然后,可以接收api测试模块发送的第二api测试数据,若根据第二api测试数据确定api测试成功后,则启动sdk测试模块;进而,可以接收sdk测试模块发送的第二sdk测试数据,并根据第二ui测试数据、第二api测试数据和第二sdk测试数据生成all测试数据,并向控制平台发送all测试数据。本申请实施例的还提供一种装置,该装置具有实现上文所描述的自动化测试方法的功能。该功能可以通过硬件执行相应的软件实现,在一种可能的设计中,该装置包括:处理器、收发器、存储器;该存储器用于存储计算机执行指令,该收发器用于实现该装置与其他通信实体进行通信,该处理器与该存储器通过该总线连接,当该装置运行时,该处理器执行该存储器存储的该计算机执行指令,以使该装置执行上文所描述的自动化测试方法。本发明实施例还提供一种计算机存储介质,所述存储介质中存储软件程序,该软件程序在被一个或多个处理器读取并执行时实现上述各种可能的实现方式中所描述的自动化测试方法。本发明实施例还提供一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述各种可能的实现方式中所描述的自动化测试方法。本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1