本发明涉及云网络技术领域,尤其涉及一种基于云平台的测试方法和系统。
背景技术:
随着互联网产品业务不断拓展,各类业务产品的开发速度越来越快,为了保证在快节奏的开发过程中,业务产品的上线质量,需要测试人员进行大量测试工作,并且对于不同领域、功能的业务产品,其复杂程度也有所不同,因此对测试人员的技能要求也越来越高。
目前各大运营商都推出了不同类型的云测试服务平台,以便为各大电商提供云测试服务。其中很多都是采用eclipsercp平台开发,属于富客户端、c/s架构的测试工具。在使用过程中,由用户需要下载并安装云测试服务平台提供的客户端和工具包到本地,并由技术人员编辑测试脚本,再申请计算资源本地运行测试脚本。
但是,测试脚本的编辑具备一定的难度,往往需要具有丰富经验的技术人员进行,并且需要跟随业务产品的版本升级不断进行修改更新,这就需要云测试服务平台的用户消耗本地的资源保持维护测试脚本,提高了运营成本,并且还需要维持一定规模的技术团队参与脚本的设计、管理和维护,人工成本较大,也提高了运营成本。
技术实现要素:
本发明的实施例提供一种基于云平台的测试方法和系统,能够节约本地计算资源并降低人工成本。
为达到上述目的,本发明的实施例采用如下技术方案:
第一方面,本发明的实施例提供一种基于云平台的测试方法,包括:
服务器系统接收用户设备发送的测试请求信息,所述测试请求信息包括:脚本参数信息和环境参数信息,所述脚本参数信息用于描述测试所需使用的脚本,所述环境参数信息用于描述测试所需使用的测试环境;
根据所述脚本参数信息从脚本池中获取测试脚本,并根据所述环境参数信息选取测试集群,所述测试集群包括至少两台执行机;
在所述测试集群运行所述测试脚本,并将获取的测试结果向所述用户设备发送。
结合第一方面,在第一方面的第一种可能的实现方式中,所述测试请求信息由所述用户设备根据设置信息生成,所述设置信息由所述用户设备根据用户在可视化操作界面的操作结果生成;
所述操作结果包括:所述用户设备记录的用户设置的脚本参数信息,和所述用户设备记录的用户设置的环境参数信息。
结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述根据所述环境参数信息选取测试集群,包括:
根据所述环境参数信息,从执行机资源池中得到所述环境参数信息所对应型号和数量的执行机,所述执行机资源池包括:与所述服务器系统连接的执行机和与所述用户设备连接的执行机。
结合第一方面,在第一方面的第三种可能的实现方式中,还包括:
所述服务器系统接收所述用户设备上传的脚本;
从所述上传的脚本中提取特征信息并记录,并将所述上传的脚本存储在所述脚本池,所述特征信息用于表示测试脚本的对应的应用程序和功能类型。
结合第一方面或第一方面的第一至三种可能的实现方式,在第四种可能的实现方式中,还包括:
根据所述脚本参数信息确定维度信息,所述维度信息包括在所述测试结果中用于表示脚本的测试数据和参数的种类;
根据所述维度信息和所述测试结果,生成测试统计数据,并将所述测试统计数据向所述用户设备发送,以便于所述用户设备将测试统计数据显示在所述用户设备的可视化操作界面。
第二方面,本发明的实施例提供一种基于云平台的测试系统,包括:
用户设备,用于向服务器系统发送的测试请求信息,所述测试请求信息包括:脚本参数信息和环境参数信息,所述脚本参数信息用于描述测试所需使用的脚本,所述环境参数信息用于描述测试所需使用的测试环境;
所述服务器系统,用于根据所述脚本参数信息从脚本池中获取测试脚本,并根据所述环境参数信息选取测试集群,所述测试集群包括至少两台执行机;
所述测试集群,用于运行所述测试脚本;
所述服务器系统,还用于监控所述测试集群运行所述测试脚本的运行状态,并将获取的测试结果向所述用户设备发送。
结合第二方面,在第二方面的第一种可能的实现方式中,所述用户设备,具体用于根据设置信息生成所述测试请求信息,所述设置信息由所述用户设备根据用户在可视化操作界面的操作结果生成,所述操作结果包括:所述用户设备记录的用户设置的脚本参数信息,和所述用户设备记录的用户设置的环境参数信息。
结合第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述服务器系统,具体用于根据所述环境参数信息,从执行机资源池中得到所述环境参数信息所对应型号和数量的执行机,所述执行机资源池包括:与所述服务器系统连接的执行机和与所述用户设备连接的执行机。
结合第二方面,在第二方面的第三种可能的实现方式中,所述服务器系统,还用于接收所述用户设备上传的脚本;并从所述上传的脚本中提取特征信息并记录,并将所述上传的脚本存储在所述脚本池,所述特征信息用于表示测试脚本的对应的应用程序和功能类型。
结合第二方面或第二方面的第一至三种可能的实现方式,在第四种可能的实现方式中,所述服务器系统,还用于根据所述脚本参数信息确定维度信息,所述维度信息包括在所述测试结果中用于表示脚本的测试数据和参数的种类;并根据所述维度信息和所述测试结果,生成测试统计数据,并将所述测试统计数据向所述用户设备发送;
所述用户设备,还用于将测试统计数据显示在所述可视化操作界面。
本发明实施例提供的基于云平台的测试方法和系统,通过云测试平台的服务器系统保存测试脚本,并通过用户设备根据用户设定并生成的测试请求信息的,选取对应的测试脚本和所需的测试集群,完成测试过程并向用户设备反馈测试结果。相对于现有技术中,需要用户本地编辑并保存测试脚本的云测试方案,本发明实施例的方案中测试人员只需通过可视化界面进行相应设置并向云测试平台的服务器系统发送相应的测试请求信息,云测试平台则自动调用测试脚本和测试集群并完成测试过程,从而节约了用户设备本地的存储资源,并且实现由云测试平台承担测试过程,从而节约了用户设备本地的计算资源,还实现了用户直接通过设置调用脚本,避免了用户亲自编辑脚本,节省了技术人员的时间和精力。因此节约了本地计算资源的同时并降低人工成本,从而极大的降低了运营成本。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本发明实施例提供的云测试平台的架构示意图;
图2为本发明实施例提供的基于云平台的测试方法的流程图;
图3a、图3b为本发明实施例提供的具体实例的示意图;
图4a为本发明实施例提供的基于云平台的测试系统的结构示意图;
图4b为本发明实施例提供的基于云平台的测试系统的交互流程示意图。
具体实施方式
为使本领域技术人员更好地理解本发明的技术方案,下面结合附图和具体实施方式对本发明作进一步详细描述。下文中将详细描述本发明的实施方式,所述实施方式的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施方式是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的任一单元和全部组合。本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语)具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样定义,不会用理想化或过于正式的含义来解释。
本实施例中的方法流程,具体可以由云测试平台中的由多个服务器组成的后台服务系统执行,其中:云测试平台还可以向用户设备提供脚本的测试工具和编写工具;云测试平台还包括用于向用户设备展现可视化界面的前端服务器,由前端服务器于用户设备直接交互并将由用户设备发送的数据或信息向后台服务系统传输;在云测试平台中,由后台服务系统同一管理测试集群,其中,测试集群包括至少两台执行机。例如:在如图1所示的云测试平台中,由前端服务器接收用户设备发送的测试请求信息,以及接收用户编写并上传的测试脚本,并将测试请求信息和用户上传的测试脚本向后台服务系统发送;后台服务系统根据测试请求信息提取测试请求信息指向的测试脚本并创建测试任务,或是直接根据用户上传的测试脚本创建测试任务,并且在创建测试任务的过程中从测试集群中筛选用于测试的执行机,并根据测试脚本将需要进行测试的业务程序、apk等数据向用于测试的执行机发送,并指令用于测试的执行机加载业务程序或安装app。进一步的,后台服务系统中的服务器可以根据在测试过程中承担的具体功能,划分为用于调度执行机的调度服务器、用于存储脚本池的数据库服务器(也用于将用户上传的脚本存储在脚本池中)、用于生成测试结果的报表日志服务器、mock服务器和用于处理所传输数据的webdav(web-baseddistributedauthoringandversioning,一种基于http1.1协议的通信协议)服务器等。其中,用户设备也可以直接与后台服务系统进行通信,比如可以将用户编写的脚本直接上传数据库服务器。
本实施例中所述的执行机具体可以包括运行了各种不同操作系统的硬件设备,比如:运行ie、chrome或是firefox的计算机设备,还可以是运行安卓、ios和windowsphone系统的智能手机、pad等移动终端设备或是运行了各种不同操作系统虚拟机,比如:在具有较强计算能力的服务器上建立的多个虚拟机组成的集群。其中,“运行了各种不同操作系统”可以理解为:设备或是虚拟机上所运行的操作系统完全不相同,比如一部智能手机运行ios,另一部智能手机运行windowsphone;还可以理解为设备或是虚拟机上所运行的版本不相同的操作系统,比如一部智能手机运行安卓4.1系统,另外两部智能手机分别运行安卓4.0和安卓4.4系统。
本发明实施例提供一种基于云平台的测试方法,如图2所示,包括:
s1、服务器系统接收用户设备发送的测试请求信息。
其中,所述测试请求信息包括:脚本参数信息和环境参数信息,所述脚本参数信息用于描述测试所需使用的脚本,所述环境参数信息用于描述测试所需使用的测试环境。在本实施例中,由云测试平台的向用户设备提供测试服务,并在云测试平台的服务器系统中存储已编辑的测试脚本,或者是接收并存储用户编辑的测试脚本,其中,测试脚本用于针对待测试程序的特定功能或特定组件进行功能测试,测试脚本的具体类型包括:录制脚本、sat脚本、自定义脚本等。
s2、根据所述脚本参数信息从脚本池中获取测试脚本,并根据所述环境参数信息选取测试集群。
其中,脚本参数信息所指向的脚本可以是存储在服务器系统的脚本池中的测试脚本,也可以是由用户预先编辑完成并提交给服务器系统的测试脚本,还可以是由其他用户编辑完成并提交给服务器系统的测试脚本。所述环境参数信息用于表示所需选取的执行机的性能参数和属性参数,例如:环境参数信息的具体内容可以包括:用于测试的执行机的数量、型号;和/或,各个执行机的优先级关系;和/或,各个执行机的来源,其中,执行机的来源包括:与所述服务器系统连接的执行机和与所述用户设备连接的执行机。
s3、在所述测试集群运行所述测试脚本,并将获取的测试结果向所述用户设备发送。
其中,服务器系统自动生成的测试结果包括多个维度的参数,且测试结果中所显示的维度可以由用户在用户设备的可视化界面进行设置,其中,可视化界面可以基于现有的浏览器架构进行设计。例如:在可视化界面中显示当前云测试平台支持的稳定性测试服务,并由用户上传待测app到云测试平台的服务器系统,由云测试平台将待测app自动安装到测试集群的执行机中。在本实施例中,服务器系统也可以将测试结果向预先设定的指定设备发送。
在本实施例中,所述测试请求信息由所述用户设备根据设置信息生成,所述设置信息由所述用户设备根据用户在可视化操作界面的操作结果生成。
其中,所述操作结果包括:所述用户设备记录的用户设置的脚本参数信息,和所述用户设备记录的用户设置的环境参数信息。例如:1、在如图3a所示的可视化界面中,用户可以设定测试计划列表,并在相应的测试计划中设置脚本,比如:脚本列表中名称参数为tc02_001、ts_002脚本,用户设备记录用户的设置结果为脚本参数信息;2、在如图3b所示的可视化界面中,用户可以设定测试集群中的执行机的设备类型、系统版本、分辨率、品牌类型、终端型号等参数信息,用户设备记录用户的设置结果为环境参数信息;3、用户可以设定测试任务的执行时间(也可以设定立即执行,即云测试平台接收到本条测试请求信息后立即开始执行本次测试过程),测试任务的名称和测试结果的接受地址,其中测试结果的接受地址默认可以是用户设备本地,也可以是用户自定义的电子邮箱地址或是其他设备。
在本实施例中,进行测试所用的测试集群,也可以包括用户设备本地的执行机,因此所述根据所述环境参数信息选取测试集群为:服务器系统根据所述环境参数信息,从执行机资源池中得到所述环境参数信息所对应型号和数量的执行机。
其中,所述执行机资源池包括:与所述服务器系统连接的执行机和与所述用户设备连接的执行机。在本实施例中,测试集群中的执行机的来源包括:与所述服务器系统连接的执行机和与所述用户设备连接的执行机。其中,与所述用户设备连接的执行机也可称为“外围真机”,是与用户设备连接并由用户设备管理的执行机,当用户设备接入云测试平台后,可以将外围真机在服务器系统中注册,并由服务器系统集中管控,并在测试执行过程中服务器系统向外围真机发送测试命令,从而可以充分利用用户本地已有的执行机。从而实现本地的执行机资源与云测试平台的执行机资源的共享。在实际应用中,当多个用户同时提供各自本地的执行机资源时,进一步提升了执行机资源池的规模,从而实现更大规模的测试,提高本实施例方案的应用范围。
在本实施例中,脚本池中还包括由用户预先编辑完成并提交给服务器系统的测试脚本,以及由其他用户编辑完成并提交给服务器系统的测试脚本。因此本实施例的方案还包括:
所述服务器系统接收所述用户设备上传的脚本。
从所述上传的脚本中提取特征信息并记录,并将所述上传的脚本存储在所述脚本池。
其中,所述特征信息用于表示测试脚本的对应的应用程序和功能类型。具体的,所述特征信息可以包括脚本所对应的应用程序的名称信息、作者信息程序版本号等用于识别参与测试的应用程序或app的信息,还包括负载监控、点击量统计等用于识别参与测试的应用程序具体被测试功能的信息。
在本实施例中,云测试平台可以向用户设备提供录制工具,所述录制工具用于自动记录用户的操作路径(例如:安卓录制和firefoxweb),生成相应的测试脚本并上传云测试平台主要应用于需要进行流程录制回放的测试脚本。云测试平台的服务器系统可以自动截取所录制脚本中的操作路径截图,用于验证验证针对应用程序设计的操作流程是否正常走通。
在本实施例中,还包括:
根据所述脚本参数信息确定维度信息,所述维度信息包括在所述测试结果中用于表示脚本的测试数据和参数的种类。
根据所述维度信息和所述测试结果,生成测试统计数据,并将所述测试统计数据向所述用户设备发送,以便于所述用户设备将测试统计数据显示在所述用户设备的可视化操作界面。其中,在用户设备提供的可视化界面,主要展示测试类型、执行记录名称、执行时间、状态、操作路径等测试参数。需要展示的测试参数对应于用户设定的脚本参数信息和环境参数信息。
本发明实施例提供的基于云平台的测试方法,通过云测试平台的服务器系统保存测试脚本,并通过用户设备根据用户设定并生成的测试请求信息的,选取对应的测试脚本和所需的测试集群,完成测试过程并向用户设备反馈测试结果。相对于现有技术中,需要用户本地编辑并保存测试脚本的云测试方案,本发明实施例的方案中测试人员只需通过可视化界面进行相应设置并向云测试平台的服务器系统发送相应的测试请求信息,云测试平台则自动调用测试脚本和测试集群并完成测试过程。从而节约了用户设备本地的存储资源,并且实现由云测试平台承担测试过程,从而节约了用户设备本地的计算资源,还实现了用户直接通过设置调用脚本。避免了用户亲自编辑脚本,节省了技术人员的时间和精力,因此极大的降低了运营成本。
本发明实施例还提供一种基于云平台的测试系统,如图4a所述的连接关系和如图4b所示交互流程,该测试系统包括:
用户设备,用于向服务器系统发送的测试请求信息,所述测试请求信息包括:脚本参数信息和环境参数信息,所述脚本参数信息用于描述测试所需使用的脚本,所述环境参数信息用于描述测试所需使用的测试环境。其中,如图4a所示的本地设备包括用户设备和与用户设备相连的执行机。
所述服务器系统,用于根据所述脚本参数信息从脚本池中获取测试脚本,并根据所述环境参数信息选取测试集群,所述测试集群包括至少两台执行机。
其中,所述服务器系统还用于将运行测试脚本时所需的应用程序和所述测试脚本向所述测试集群中的执行机发送
所述测试集群,用于运行所述测试脚本。
所述服务器系统,还用于监控所述测试集群运行所述测试脚本的运行状态,并将获取的测试结果向所述用户设备发送。
在本实施例中,所述用户设备,具体用于根据设置信息生成所述测试请求信息,所述设置信息由所述用户设备根据用户在可视化操作界面的操作结果生成,所述操作结果包括:所述用户设备记录的用户设置的脚本参数信息,和所述用户设备记录的用户设置的环境参数信息。
可选的,所述服务器系统,具体用于根据所述环境参数信息,从执行机资源池中得到所述环境参数信息所对应型号和数量的执行机,所述执行机资源池包括:与所述服务器系统连接的执行机和与所述用户设备连接的执行机。其中,当用户设备登录云测试平台后,可以将与所述服务器系统连接的执行机(或称为外围真机)在服务器系统中注册,并由服务器系统集中管控,从而将外围真机加入执行机资源池。并在测试执行过程中服务器系统向外围真机发送测试命令,从而可以充分利用用户本地已有的执行机。
可选的,所述服务器系统,还用于接收所述用户设备上传的脚本。并从所述上传的脚本中提取特征信息并记录,并将所述上传的脚本存储在所述脚本池,所述特征信息用于表示测试脚本的对应的应用程序和功能类型。
在本实施例中,所述服务器系统,还用于根据所述脚本参数信息确定维度信息,所述维度信息包括在所述测试结果中用于表示脚本的测试数据和参数的种类。并根据所述维度信息和所述测试结果,生成测试统计数据,并将所述测试统计数据向所述用户设备发送。
其中,所述用户设备,还用于将测试统计数据显示在所述可视化操作界面。
本发明实施例提供的基于云平台的测试系统,通过云测试平台的服务器系统保存测试脚本,并通过用户设备根据用户设定并生成的测试请求信息的,选取对应的测试脚本和所需的测试集群,完成测试过程并向用户设备反馈测试结果。相对于现有技术中,需要用户本地编辑并保存测试脚本的云测试方案,本发明实施例的方案中测试人员只需通过可视化界面进行相应设置并向云测试平台的服务器系统发送相应的测试请求信息,云测试平台则自动调用测试脚本和测试集群并完成测试过程。从而节约了用户设备本地的存储资源,并且实现由云测试平台承担测试过程,从而节约了用户设备本地的计算资源,还实现了用户直接通过设置调用脚本。避免了用户亲自编辑脚本,节省了技术人员的时间和精力,因此极大的降低了运营成本。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于设备实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)或随机存储记忆体(randomaccessmemory,ram)等。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。