一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种测试方法、装置、及计算机设备与流程

2022-06-29 16:58:25 来源:中国专利 TAG:


1.本发明涉及互联网技术领域,尤其涉及一种测试方法、装置及计算机设备。


背景技术:

2.随着互联网科技技术的不断发展,终端设备中的各种应用程序应运而生。针对终端设备中的浏览器,往往存在很多类型以及版本,例如,电脑中安装的浏览器,可以包括a、b、c等多种类型的浏览器,浏览器兼容测试是前端应用程序测试的重点,浏览器兼容测试是指:测试前端应用程序在不同类型的浏览器中的能否正常显示程序页面以及响应功能。
3.现有技术实现兼容性测试,通常是在一台计算机设备中安装某个浏览器的指定版本,若需要测试某个浏览器的多个版本,则需要在多台计算机设备中分别安装每个版本的浏览器,这样的做法会占用大量计算机设备资源,并且不利于对计算机设备的进行统一的资源管理。并且,现有技术针对浏览器的兼容性测试通常是人工测试,每次人工测试都要消耗大量人力对每台计算机设备进行手动操作,导致测试效率低下。


技术实现要素:

4.本技术实施例提出了一种测试方法、装置、计算机设备以及存储介质,可以提高针对待测应用程序的测试效率,以及节省计算机设备资源。
5.本技术实施例一方面提供了一种测试方法,应用于容器工作节点,所述容器工作节点中运行有与待测应用程序相关的第一容器环境和第二容器环境,所述第一容器环境和所述第二容器环境互不相同;所述方法包括:
6.获取待测应用程序在所述第一容器环境中的第一测试用例,并获取所述待测应用程序在所述第二容器环境中的第二测试用例;
7.在所述第一容器环境中运行所述第一测试用例,得到第一测试结果;
8.在所述第二容器环境中运行所述第二测试用例,得到第二测试结果;
9.输出所述第一测试结果和所述第二测试结果。
10.本技术实施例一方面提供了一种测试装置应用于容器工作节点,所述容器工作节点中运行有第一容器环境和第二容器环境,所述第一容器环境和所述第二容器环境互不相同;
11.所述装置包括:
12.获取单元,用于获取待测应用程序在所述第一容器环境中的第一测试用例,并获取所述待测应用程序在所述第二容器环境中的第二测试用例;
13.运行单元,用于在所述第一容器环境中运行所述第一测试用例,得到第一测试结果;
14.运行单元,还用于在所述第二容器环境中运行所述第二测试用例,得到第二测试结果;
15.输出单元,用于输出所述第一测试结果和所述第二测试结果。
16.本技术实施例一方面提供了一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,计算机程序被处理器执行时,使得处理器执行上述各实施例中的方法。
17.本技术实施例一方面提供了一种计算机存储介质,计算机存储介质存储有计算机程序,计算机程序包括程序指令,程序指令当被处理器执行时,执行上述各实施例中的方法。
18.本技术实施例一方面提供了一种计算机程序产品或计算机程序,计算机程序产品或计算机程序包括计算机指令,计算机指令存储在计算机可读存储介质中,计算机指令被计算机设备的处理器执行时,执行上述各实施例中的方法。
19.通过本技术实施例的测试方法,可以在一台计算机设备中同时部署第一容器环境和第二容器环境。通过这种方法,可以在一台计算机设备上同时部署多个容器环境,对计算机设备而言,可以节省计算机设备资源。第一容器环境可以自动执行第一测试用例,第二容器环境可以自动执行第二测试用例,相较于现有技术中需要人工手动对计算机设备进行测试,本方案可以由计算机自动执行,从而可以提高针对待测应用程序的测试效率。
附图说明
20.为了更清楚地说明本技术实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
21.图1是本技术实施例提供的一种测试系统的架构示意图;
22.图2是本技术实施例提供的一种测试方法的场景示意图;
23.图3是本技术实施例提供的一种测试方法的流程示意图;
24.图4是本技术实施例提供的另一种测试方法的流程示意图;
25.图5是本技术实施例提供的一种测试报告的页面示意图;
26.图6是本技术实施例提供的一种节点注册的流程示意图;
27.图7是本技术实施例提供的一种测试装置的结构示意图;
28.图8是本技术实施例提供的一种计算机设备的结构示意图。
具体实施方式
29.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
30.需要说明的是,本技术实施例中所涉及到的“第一”、“第二”等描述仅用于描述目的,而不能理解为指示或者暗示其相对重要性或者隐含指明所指示的技术特征的数量。因此,限定有“第一”、“第二”的技术特征可以明示或者隐含的包括至少一个该特征。
31.为了能够更好地理解本技术实施例,下面对本技术实施例涉及的专业术语进行介绍:
32.docker:docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的linux或windows等操作系统的机器
上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。即docker提供了一种在安全、可重复的环境中自动部署软件的方式。一个完整的docker主要包括:docker client客户端、docker daemon守护进程、docker image(容器镜像)以及docker container(容器)。本技术主要涉及docker中的容器以及容器镜像,因此,接下来主要对容器以及容器镜像进行详细说明。
33.容器环境:容器环境既可以直接运行在宿主服务器平台的系统内核之上,也可以运行在宿主机上的虚拟机里。容器环境可以在不超过1秒的时间内启动,而且拥有与宿主服务器相近的性能,同一台宿主服务器上面可以同时运行成百上千个容器,从而能够让用户充分的利用系统资源。容器环境运行时,如升级某个应用程序到新的版本,一个新的文件系统层会被创建并叠加到原有的文件层之上,不替换整个原先的容器镜像,确保容器环境之间的隔离性,因而,容器化技术能进一步简化应用程序软件的依赖、部署和管理问题。它能够快速的交付和部署,容器环境在整个开发周期都可以完美辅助你实现快速交付,容器环境允许开发者本地应用,直接进入到可持续的开发流程中。例如开发者可以使用一个标准容器镜像构建一套开发容器环境,开发完成之后,运维人员可以直接使用这个容器环境来部署代码,容器环境可以快速迭代应用程序,整个过程全程可见,使团队中的其他成员更容易理解应用程序是如何创建和工作的。
34.需要说明的是,容器技术在互联网技术中受到广泛应用,其具有以下优势。容器环境的启动时间是秒级的,大量节约开发、测试、部署的时间。还有一个非常关键的点,就是容器环境能够高效地部署和扩容,容器环境几乎可以在任意平台上运行,包括虚拟机、物理机、公有云、私有云、个人电脑、服务器等,这种兼容性,可以让用户把一个应用程序从一个平台直接迁移到另外一个平台。容器环境的兼容性和轻量性的特性可以轻松的实现负载的动态管理,你可以快速扩容或方便的下线你的应用和服务,这种速度趋近于实时。此外,容器环境还具有更高的资源利用率,一台主机上可以运行数千个容器环境,容器环境除了运行其应用之外,基本不消耗额外的系统资源,使得应用性能高,系统开销小。并且,容器环境还可以有更简单的管理,使用容器环境只需要小小的修改就可以替代以往大量的更新工作,所有的修改都以增量的方式被分发和更新,从而实现自动化并且高效的管理。
35.容器镜像:镜像是一堆只读层的统一视角,除了最底层没有指向外,每一层都指向它的父层。统一文件系统(union file system)技术能够将不同的层整合成一个文件系统,为这些层提供了一个统一的视角,这样就隐藏了多层的存在。在用户的角度看来,只存在一个文件系统。镜像每一层都是不可写的,都是只读层。需要说明的是,容器和容器镜像之间的区别在于容器的最上面那一层是可读可写的。要点:容器=容器镜像 读写层。
36.虚拟机:通过hypervisor层抽象底层基础设施资源,提供相互隔离的虚拟机,通过统一配置、统一管理,计算资源的可运维性,以及资源利用率都能够得到有效的提升。同时,虚拟机提供客户机操作系统,客户机变化不会影响宿主机,能够提供可控的测试环境,更能够屏蔽底层硬件甚至基础软件的差异性,让应用做到的广泛兼容。
37.基于以上分析,本技术实施例提供了一种测试方法,应用于容器工作节点,容器工作节点中运行有第一容器环境和第二容器环境,第一容器环境和第二容器环境互不相同。该测试方法具体是:容器工作节点获取待测应用程序在第一容器环境中的第一测试用例,并获取待测应用程序在第二容器环境中的第二测试用例;容器工作节点在第一容器环境中
运行第一测试用例,得到第一测试结果;容器工作节点在第二容器环境中运行第二测试用例,得到第二测试结果;容器工作节点输出第一测试结果和第二测试结果。需要说明的是,本技术涉及的容器工作节点可以运行容器环境,也可以运行虚拟机环境,通过本技术的测试方法,可以实现提高针对待测应用程序的测试效率,以及节省计算机设备资源。
38.请参见图1,图1是本技术实施例提供的一种测试系统的架构示意图。该测试系统架构图可以包括容器管理节点100和容器工作节点集群,其中,容器工作节点集群包括容器工作节点101、容器工作节点102以及容器工作节点103。其中,容器管理节点100和容器工作节点集群可以是同一台计算机设备,容器管理节点100和容器工作节点集群也可以是可以不同的计算机设备。需要说明的是,本技术实施例所涉及的容器工作节点101、容器工作节点102以及容器工作节点103的数量仅仅用于示例,在另一个可行的实施例中,容器工作节点集群中对应的容器工作节点的数量也可以为五个、八个等等。
39.其中,每个容器工作节点中均可以部署多个容器环境以及多个虚拟机环境,以容器工作节点101为例,容器工作节点101中部署有第一容器环境、第二容器环境以及虚拟机环境,每个容器环境或者虚拟机环境中均可以指定不同类型的浏览器,例如第一容器环境中包含浏览器a-1、浏览器b-1以及浏览器c-1,第二容器环境中包含浏览器a-2、浏览器b-2以及浏览器c-2,虚拟机环境中包含浏览器a-3、浏览器b-3以及浏览器c-3。同理,容器工作节点102以及容器工作节点103中也可以部署容器环境或者虚拟机环境或者容器环境和虚拟机环境,并且每个容器工作节点中部署的容器环境或者虚拟机环境的数量可以相同也可以不相同,例如容器工作节点102中可以部署两个容器环境和一个虚拟机环境,容器工作节点103中可以部署两个虚拟机环境和一个容器环境。
40.其中,容器管理节点100可以对容器工作节点集群中的每个容器工作节点进行管理,具体地,容器管理节点100可以为容器工作节点101、容器工作节点102以及容器工作节点103定制以及分发测试用例,以使容器工作节点101、容器工作节点102以及容器工作节点103根据容器管理节点100发送的测试用例进行测试。以及,容器管理节点100可以查看每个容器工作节点的节点状态,节点状态可以包括空闲状态和工作状态。在一种可能的实现方式中,若有新的容器工作节点加入到该测试系统中,则该新的容器工作节点需要向容器管理节点提交节点注册请求,容器管理节点100根据节点注册请求可以将该新的容器工作节点挂载到容器管理节点100下。当然,容器工作节点101、容器工作节点102以及容器工作节点103也可以向容器管理节点100提交节点注销请求,此时,容器管理节点100可以查看提交节点注销请求的容器工作节点已经被摘除。
41.在一种可能的实现方式中,容器管理节点100和容器工作节点101、容器工作节点102以及容器工作节点103处于同一台计算机设备中。容器管理节点100、容器工作节点101、容器工作节点102以及容器工作节点103可以是终端设备,也可以是服务器。其中,终端设备具体可以是手机、平板电脑、笔记本电脑、掌上电脑、移动互联网设备(mid,mobile internet device)、车辆、路边设备、飞行器、可穿戴设备,例如智能手表、智能手环、计步器等,等具有测试功能的智能设备。服务器具体可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、cdn(content delivery network,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器。
42.在一种可能的实现方式中,容器管理节点100可以为服务器,容器工作节点101、容器工作节点102以及容器工作节点103为终端设备。具体的,容器工作节点101可以为终端设备1,容器工作节点102可以为终端设备2,容器工作节点103可以为终端设备3,终端设备1、终端设备2以及终端设备3之间的类型可以相同,也可以不相同,本技术对此不作限定。
43.在一种可能的实现方式中,以容器工作节点101为例,假设容器工作节点101中运行有第一容器环境和第二容器环境,第一容器环境和所述第二容器环境互不相同。容器工作节点101接收容器管理节点100发送的针对待测应用程序在第一容器环境中的第一测试用例,以及容器工作节点101接收容器管理节点100发送的针对待测应用程序在第二容器环境中的第二测试用例。容器工作节点101在第一容器环境中运行第一测试用例,得到第一测试结果;容器工作节点101在第二容器环境中运行第二测试用例,得到第二测试结果;容器工作节点101输出第一测试结果和第二测试结果。基于以上方式,针对容器工作节点102和容器工作节点103,均采用同样的方式,可以得到多个测试结果,每个容器工作节点可以将得到的所有测试结果发送给容器管理节点100,容器管理节点100根据多个测试结果,输出针对浏览器兼容性的兼容测试报告。
44.可以理解的是,本技术实施例描述的系统架构示意图是为了更加清楚的说明本技术实施例的技术方案,并不构成对于本技术实施例提供的技术方案的限定,本领域普通技术人员可知,随着系统架构的演变和新业务场景的出现,本技术实施例提供的技术方案对于类似的技术问题,同样适用。
45.请参见图2,图2是本技术实施例提供的一种测试方法的场景示意图。需要说明的是,本技术所涉及的测试方法可以应用于显示于浏览器的页面程序在浏览器中的兼容性测试场景。具体的,本技术可以应用于即时通讯网页端程序在浏览器中的兼容性测试场景,购物网页端程序在浏览器中的兼容性测试场景等。其中,在浏览器中的兼容性测试是指即时通讯网页端程序或者购物网页端程序在当前浏览器中能否正常显示页面程序或者在当前浏览器中能否正常使用该即时通讯网页端程序或者购物网页端程序中的所有功能。
46.如图2所示,假设本技术应用于即时通讯网页端程序在浏览器中的兼容性测试场景,则浏览器可以具体包括浏览器a、浏览器b、浏览器c以及浏览器d,其中,浏览器a、浏览器b、浏览器c以及浏览器d互不相同。其中,浏览器a-1、浏览器a-2、浏览器a-3以及浏览器a-4是指浏览器的不同版本。具体的,浏览器a-1可以为浏览器a的1.0版本,浏览器a-2可以为浏览器a的2.0版本,浏览器a-3可以为浏览器a的3.0版本,浏览器a-4可以为浏览器a的4.0版本。
47.在一种可能的实现方式中,在一台计算机设备中部署了4个容器环境,每个容器环境可以指定不同类型的浏览器,或者每个容器环境指定同一浏览器的指定版本,基于这种部署架构,可以实现在同一台计算机设备中同时部署同一浏览器的不同版本。如图2所示,容器环境1中有浏览器a-1、浏览器b-1以及浏览器c-1,容器环境2中有浏览器a-2、浏览器c-2以及浏览器d-1,容器环境3中有浏览器c-3、浏览器d-2以及浏览器a-3,容器环境4中有浏览器b-2、浏览器c-4以及浏览器a-4。举例来说,在容器环境1中可以运行待测应用程序在浏览器a-1中的第一测试用例,具体就是容器环境1中的浏览器a-1运行第一测试用例。在容器环境1中运行待测应用程序在浏览器b-1中的第二测试用例以及在容器环境1中运行待测应用程序在浏览器c-1中的第三测试用例。第一测试用例、第二测试用例以及第三测试用例是
测试人员根据各个浏览器的浏览器参数进行定制的,并且,第一测试用例、第二测试用例以及第三测试用例的数量可以为一个也可以为多个。第一测试用例、第二测试用例以及第三测试用例的数量可以是计算机设备根据各自对应的浏览器的浏览器参数进行设置的,也可以是容器环境1指定的,本技术对此不作限定。
48.在一种可能的实现方式中,容器工作节点在容器环境1中根据第一测试用例、第二测试用例以及第三测试用例,通过浏览器a-1运行第一测试用例,可以得到待测应用程序在浏览器a-1中对应的第一测试结果;通过浏览器b-1运行第二测试用例,可以得到待测应用程序在浏览器b-1中对应的第二测试结果;通过浏览器c-1运行第二测试用例,可以得到待测应用程序在浏览器c-1中对应的第二测试结果。测试结果可以包括测试通过结果以及测试不通过结果,当测试结果为测试不通过结果的时候,计算机设备可以根据对应的测试结果,追溯测试不通过结果对应的容器环境的环境参数的原因,以便后续程序工作台人员根据测试不通过结果对待测应用程序在该浏览器的指定版本中进行调整,以满足待测应用程序在该浏览器的指定版本中的兼容性。其中,待测应用程序是指即时通讯网页端程序。
49.在一种可能的实现方式中,容器环境1、容器环境2、容器环境3以及容器环境4可以是并发运行各自对应的测试用例,容器环境1、容器环境2、容器环境3以及容器环境4也可以是分别运行各自对应的测试用例,本技术对此不作限定。当各个容器并发运行测试用例的情况下,可以提高整个测试流程的测试效率,并且,每个容器中对应的浏览器的指定版本还可以并发运行多条测试用例,具体的,容器环境1中的浏览器a-1可以并发运行10条测试用例、浏览器b-1可以并发运行20条测试用例以及浏览器c-1可以并发运行30条测试用例。
50.在一种可能的实现方式中,在计算机设备中除了部署容器环境1、容器环境2、容器环境3以及容器环境4,也可以在计算机设备中部署虚拟机环境。当某些特定的浏览器或者操作系统的内核未被公开,因此计算机设备不能够为该浏览器的内核创建容器镜像,在这种情况下,只能通过创建虚拟机从而通过虚拟机中的虚拟机环境来运行该浏览器对应的测试用例,例如,若浏览器d的内核未公开,因此计算机设备基于虚拟机技术创建一个虚拟机环境,且创建的虚拟机环境包括浏览器d,即虚拟机环境和容器环境之间是互补关系。此时,计算机设备中则既部署了容器环境也部署了虚拟机环境。
51.通过本方案,在即时通讯网页端程序在浏览器中的兼容性测试场景中,可以在一台计算机设备中同时部署多个容器环境和多个虚拟机环境,每个容器环境中包括多个浏览器,每个虚拟机环境中包括多个浏览器,从而可以实现在同一台计算机设备中对同一浏览器的多个版本以及不同操作系统下的浏览器进行兼容性测试。对于计算机设备而言,可以节约计算机设备的系统资源,便于系统资源的管理;对于测试即时通讯网页端程序在浏览器中的兼容性测试中,可以并发执行多条测试用例,从而提高整个测试流程的测试效率。
52.请参见图3,图3是本技术实施例所提供的一种测试方法的流程示意图。该方法应用于容器工作节点,容器工作节点中运行有与待测应用程序相关的第一容器环境和第二容器环境,第一容器环境和第二容器环境互不相同。如图3所示,该测试方法可包括步骤s310~s340。其中:
53.步骤s310:获取待测应用程序在所述第一容器环境中的第一测试用例,并获取所述待测应用程序在所述第二容器环境中的第二测试用例。
54.其中,待测应用程序包括显示于浏览器的页面程序。例如,待测应用程序可以是即
时通讯网页端程序,待测应用程序也可以是购物网页端程序。第一测试用例可以是测试人员针对即时通讯网页端程序显示于各个浏览器的页面程序是否正常显示定制的,具体可以是,能否在第一浏览器中正常打开即时通信网页端程序,能否在第一浏览器中正常使用即时通信网页端程序的所有功能。需要说明的是,第一测试用例对应的测试功能与第二测试用例对应的测试功能可以相同,也可以不相同。
55.具体实现时,容器工作节点接收容器管理节点发送的测试用例集合,测试用例集合包括待测应用程序在第一容器环境的第一测试用例,以及待测应用程序在第二容器环境中的第二测试用例。其中,容器工作节点与容器管理节点可以是同一台计算机设备,计算机设备可以是终端设备;容器工作节点与容器管理节点也可以是不同的计算机设备,容器工作节点具体可以是终端设备,容器管理节点具体可以是服务器,本技术实施例对此不作限定。
56.在一种可能的实现方式中,首先,容器工作节点获取第一容器环境的第一环境参数以及获取第二容器环境的第二环境参数。其中,第一环境参数具体可以包括操作系统、第一浏览器以及第一浏览器的第一版本等参数,例如第一环境参数具体可以为windows操作系统下的第一浏览器的2.0版本,同理,第二环境参数具体可以包括操作系统、第二浏览器以及第二浏览器的第二版本等参数,例如第二环境参数具体可以为macos操作系统下的第二浏览器的1.0版本。然后,容器工作节点将第一环境参数和第二环境参数封装为工作节点注册请求,并将工作节点注册请求发送至容器管理节点。容器管理节点接收容器工作节点发送的工作节点注册请求之后,后续,容器管理节点可以对容器工作节点进行管理。其中,容器管理节点对容器工作节点进行管理,具体可以包括:容器管理节点为容器工作节点定制以及分发测试用例,容器工作节点查看容器管理节点的节点状态,节点状态可以具体包括空闲状态以及工作状态,容器管理节点对容器工作节点进行节点注册等操作。
57.举例来说,容器管理节点根据容器工作节点提交的工作节点注册请求,可以确定容器工作节点在第一容器环境的第一测试用例以及确定容器工作节点在第二容器环境的第二测试用例。具体来说,容器管理节点为容器工作节点分发的第一测试用例是根据第一容器环境的第一环境参数进行定制的,即第一测试用例是针对windows操作系统下的第一浏览器的2.0版本定制的测试用例,同理,容器管理节点为容器工作节点分发的第二测试用例是根据第二容器环境的第二环境参数进行定制的,即第二测试用例是针对macos操作系统下的第二浏览器的1.0版本定制的测试用例。
58.在一种可能的实现方式中,容器工作节点中还运行有虚拟机环境。则容器工作节点获取待测应用程序在虚拟机环境中的第三测试用例。首先,容器工作节点获取虚拟机环境的第三环境参数。其中,第三环境参数具体可以包括操作系统、第三浏览器以及第三浏览器的第三版本等参数,例如第三环境参数具体可以为macos操作系统下的第二浏览器的2.0版本。然后,容器工作节点将第三环境参数封装为工作节点注册请求,并将工作节点注册请求发送至容器管理节点。容器管理节点接收容器工作节点发送的工作节点注册请求之后,后续,容器管理节点可以对容器工作节点进行管理。其中,容器管理节点对容器工作节点进行管理,具体可以包括:容器管理节点为容器工作节点定制以及分发测试用例,容器工作节点查看容器管理节点的节点状态,节点状态可以具体包括空闲状态以及工作状态,容器管理节点对容器工作节点进行节点注册等操作。
1.0版本的浏览器,则第二容器环境中运行有2个进程,即进程3和进程4。其中,进程3具体是指opera 1.0版本的浏览器通过运行测试用例3的过程,进程4具体是指ie 1.0版本的浏览器通过运行测试用例4的过程。其中,进程3和进程4所依托于的操作系统是相同的,例如进程3和进程4都是运行在windows操作系统中。
68.需要说明的是,进程1、进程2、进程3、进程4以及进程n可以是运行在同一个容器工作节点的不同容器环境中,也可以是运行在不同容器工作节点的不同容器环境中,还可以是一部分运行在第一容器工作节点的容器环境中,另一部分运行在第二容器工作节点的虚拟机环境中。具体来说,例如,进程1、进程2是运行在第一容器工作节点的第一容器环境中,进程3、进程4是运行在第一容器工作节点的第二容器环境中。又如,进程1是运行在第一容器工作节点的第一容器环境中,进程2是运行在第一容器工作节点的第二容器环境中,进程3是运行在第二容器工作节点的第一虚拟机环境中,进程4是运行在第二容器工作节点的第二虚拟机环境中。以此类推,进程n可以是运行在容器环境中,也可以是运行在虚拟机环境中。
69.在一种可能的实现方式中,在容器工作节点运行有虚拟机环境的情况下,测试用例1、测试用例2、测试用例3、测试用例4以及测试用例n是并发执行的。即容器管理节点可以控制进程1、进程2、进程3以及进程4根据每个进程分别对应的测试用例并发执行。例如,容器管理节点将测试用例分发至所有的容器工作节点之后,容器管理节点在同一时刻启动每个容器工作节点,使得每个容器工作节点中的所有容器环境或者虚拟机环境中运行的进程并发执行相应的测试代码,从而实现所有的进程并发执行。通过并发执行的方式,可以提高测试效率。
70.当然,每个进程除了可以并发执行相应的测试用例,也可以依次执行相应的测试用例,或者一部分进程并发执行相应的测试用例,另一部分进程依次执行相应的测试用例,本技术对此不作具体限定。举例来说,在进程1执行完测试用例1之后,进程2才开始执行测试用例2,在进程2执行完测试用例2之后,进程3才开始执行测试用例3,......以此类推,每个进程可以一次执行相应的测试用例。又如,进程1和进程2是并发执行的,在进程1和进程2中都执行结束之后,进程3和进程4再并发执行。需要说明的是,并发执行指的是同一时刻所有进程开始执行相应的测试用例,由于每个进程之间的差异性以及测试用例的不同,并不能保证并发执行的所有进程在同一时刻结束。
71.步骤s340:输出所述第一测试结果和所述第二测试结果。
72.具体实现时,测试结果包含多个测试功能说明文本,以及每个测试功能的单位测试结果,单位测试结果包括单位测试通过结果和单位测试不通过结果,单位测试结果通过表明对应的测试功能测试通过,单位测试不通过结果表明对应的测试功能测试不通过。在一个测试结果包含的多个单位测试结果中,只要存在一个单位测试不通过结果,就可以判定为该测试结果为测试不通过结果,若所有的单位测试结果均为单位测试通过结果,则该测试结果为测试通过结果。
73.具体实现时,第一测试结果以及第二测试结果的语言类型可以是超文本标记语言(hyper text markup language,html)。测试结果可以包括待测应用程序在当前浏览器的当前版本中能否正常显示页面程序,具体的,第一测试结果可以是即时通讯网页端程序在第一浏览器1.0版本中能正常显示页面程序,第二测试结果可以是即时通讯网页端程序在
第二浏览器1.0版本中能正常显示页面程序。
74.在一种可能的实现方式中,测试结果包括测试通过结果和测试不通过结果,若第一测试结果是即时通讯网页端程序在第一浏览器1.0版本中能正常显示页面程序,则第一测试结果为测试通过结果;若第一测试结果是即时通讯网页端程序在第一浏览器1.0版本中不能正常显示页面程序,则第一测试结果为测试不通过结果。当第一测试结果和第二测试结果中存在至少一个测试不通过结果时,获取测试不通过结果对应的环境参数;将获取的环境参数以及测试不通过结果组合为兼容测试报告,并输出兼容测试报告。
75.具体地,若第一测试结果为测试不通过,则容器工作节点获取第一测试结果、第一环境参数;容器工作节点将第一测试结果、第一环境参数发送至容器管理节点,容器管理节点将第一测试结果、第一环境参数组合为兼容测试报告,并输出兼容测试报告。同理,若第二测试结果为测试不通过,则容器工作节点获取第二测试结果、第二环境参数;容器工作节点将第二测试结果、第二环境参数发送至容器管理节点,容器管理节点将第二测试结果、第二环境参数组合为兼容测试报告,并输出兼容测试报告。举例来说,若第一测试结果是即时通讯网页端程序在第一浏览器1.0版本中不能正常显示页面程序,则表示第一测试结果为测试不通过,则容器工作节点可以将第一浏览器1.0版本对应的环境参数发送给容器管理节点,以此类推,容器管理节点可以在所有进程执行完测试用例得到所有测试结果之后,容器管理节点可以统计所有测试结果中测试不通过结果的测试结果的数量。
76.在一种可能的实现方式中,容器管理节点将所有测试不通过结果以及每个测试不通过结果对应的环境参数组合为兼容测试报告,在计算机设备中输出并向用户展示兼容测试报告,以便后续程序工作人员可以根据兼容测试报告针对性的调整待测应用程序在特定浏览器的指定版本中的参数,以实现待测应用程序在特定浏览器的指定版本中能够满足兼容需求。
77.请参见图5,图5是本技术实施例提供的一种测试报告的页面示意图。由图5可知,在执行完多个测试用例得到的多个测试结果中,有4个测试结果为测试不通过结果,分别为测试结果1、测试结果2、测试结果3以及测试结果4。其中,每个测试结果中均包含多个功能以及每个功能对应的单位测试结果。例如,测试结果1中包含即时通信网页端程序在第一容器环境中的功能1测试通过,功能2测试不通过,功能3测试通过。兼容测试报告中包含测试结果1、测试结果2、测试结果3、测试结果4、第一环境参数、第二环境参数、第三环境参数以及第四环境参数。需要说明的是,后续,用户可以根据兼容测试报告中的环境参数,对环境参数进行调整时,可以具体定位到该即时通信网页端程序中的特定功能在该容器环境中不兼容。
78.在一种可能的实现方式中,兼容测试报告还包括第一图片集合,第二图片集合以及提示消息。其中,第一图片集合包括在第一容器环境中运行第一测试用例的浏览器页面截图,第二图片集合包括在第二容器环境中运行第二测试用例的浏览器页面截图,提示消息用于指示测试不通过结果对应的错误原因。具体来说,第一图片集合(或者第二图片集合)中的图片是第一测试用例(或者第二测试用例)在对应容器环境中运行时的步骤截图(步骤截图可以是本技术中的浏览器页面截图),若测试结果为测试通过,则图片集合包含测试用例涉及的所有步骤的浏览器页面截图。若测试结果为测试不通过,图片集合可以仅包含测试用例的部分步骤的浏览器页面截图,当然这部分步骤是可以成功执行的步骤,对
应的浏览器页面截图是指能够正常运行对应的截图,提示消息可以包括提示代码或者提示文字等。
79.通过本技术实施例提供的测试方法,可以实现在同一台计算机设备中部署多个容器环境以及多个虚拟机环境,每个容器工作节点可以指定相应的浏览器以及浏览器的指定版本,于是可以实现在同一台计算机设备中部署同一浏览器的多个版本以及不同操作系统下的浏览器。对于计算机设备而言,可以节省系统资源和成本,便于系统资源的统一管理。进一步地,多个进程可以并发执行每个进程对应的测试用例,以生成相应的测试结果,从而可以提高测试效率。
80.请参见图6,图6是本技术实施例提供的一种节点注册的流程示意图。该方法应用于容器工作节点,容器工作节点中运行有第一容器环境和第二容器环境,第一容器环境和第二容器环境互不相同。如图6所示,该节点注册的流程可包括步骤s610~s650。其中:
81.步骤s610:获取第一容器镜像的网络地址以及第二容器镜像的网络地址。
82.具体实现时,容器工作节点可以在已经公布的网页中获取容器镜像对应的网络地址,容器工作节点也可以从docker hub(仓库)中获取容器镜像对应的网络地址。
83.在一种可能的实现方式中,容器工作节点获取第一操作系统镜像,并获取第一浏览器安装包。容器工作节点在第一操作系统镜像上安装第一浏览器安装包对应的浏览器,得到第一容器镜像。同样地,容器工作节点获取第二操作系统镜像,并获取第二浏览器安装包。容器工作节点在第二操作系统镜像上安装第二浏览器安装包对应的浏览器,得到第二容器镜像。
84.具体地,若第一操作系统镜像和第二操作系统镜像相同,且第一浏览器安装包和第二浏览器安装包不同,那么第一容器环境和第二容器环境中的操作系统相同,但浏览器不同;更一步地,第一浏览器安装包和第二浏览器安装包的不同可以细分为第一浏览器安装包和第二浏览器安装包是同一个浏览器的两个版本,那么第一容器环境和第二容器环境中的操作系统相同,但浏览器版本不同;第一浏览器安装包和第二浏览器安装包的不同还可以细分由两个软件供应商提供的两个完全不同的浏览器,那么第一容器环境和第二容器环境中的操作系统相同,但浏览器不同。
85.另外,若第一操作系统镜像和第二操作系统镜像不同,且第一浏览器安装包和第二浏览器安装包不同,那么第一容器环境和第二容器环境中的操作系统不同,浏览器不同,同样的,第一浏览器安装包和第二浏览器安装包的不同可以细分为第一浏览器安装包和第二浏览器安装包是同一个浏览器的两个版本,那么第一容器环境和第二容器环境中的操作系统不同,浏览器版本也不同;第一浏览器安装包和第二浏览器安装包的不同还可以细分由两个软件供应商提供的两个完全不同的浏览器,那么第一容器环境和第二容器环境中的操作系统不同,并且浏览器也不同。还有,若第一操作系统镜像和第二操作系统镜像不同,且第一浏览器安装包和第二浏览器安装包相同,那么第一容器环境和第二容器环境中的操作系统不同,但浏览器相同。
86.步骤s620:从所述第一容器镜像的网络地址下载所述第一容器镜像,并根据所述第一容器镜像运行所述第一容器环境。
87.步骤s630:从所述第二容器镜像的网络地址下载所述第二容器镜像,并根据所述第二容器镜像运行所述第二容器环境。
88.具体实现时,待测应用程序包括显示于浏览器的页面程序。第一容器环境包括第一操作系统以及第一版本的目标浏览器,第二容器环境包括第一操作系统以及第二版本的目标浏览器。举例来说,第一容器环境可以是windows操作系统中的a版本的浏览器,第二容器环境可以是windows操作系统中的b版本的浏览器。或者,第一容器环境包括第一操作系统、第一浏览器和第二浏览器,第二容器环境包括第二操作系统、第一浏览器和第二浏览器。举例来说,第一容器环境可以是windows操作系统中的a浏览器和b浏览器,第二容器环境可以是macos操作系统中的a浏览器和b浏览器。
89.需要说明的是,第一容器环境和第二容器环境中所包含的浏览器的数量可以为一个,也可以为多个。并且,第一容器环境和第二容器环境中所包含的浏览器的数量可以是由容器工作节点指定,也可以是由容器管理节点指定。
90.步骤s640:获取所述第一容器环境的第一环境参数以及获取所述第二容器环境的第二环境参数。
91.具体实现时,环境参数可以包括操作系统、目标浏览器以及目标浏览器的目标版本等。例如,第一环境参数具体可以为windows操作系统下的第一浏览器的2.0版本,第二环境参数具体可以为macos操作系统下的第二浏览器的1.0版本。
92.步骤s650:将所述第一环境参数和所述第二环境参数封装为工作节点注册请求,并将所述工作节点注册请求发送至容器管理节点。
93.在一种可能的实现方式中,容器工作节点还可以获取第一容器环境对应的第一最大并发数量以及第二容器环境对应的第二最大并发数量。然后,容器工作节点将第一最大并发数量、第二最大并发数量、第一环境参数和第二环境参数封装为工作节点注册请求,并将工作节点注册请求发送至容器管理节点。后续,最大并发数量用于容器管理节点分发测试用例的时候,每个容器环境对应的测试用例的数量小于或者等于相应容器环境对应的最大并发数量,即第一容器环境对应的测试用例的数量小于或者等于第一最大并发数量,以及第二容器环境对应的测试用例的数量小于或者等于第二最大并发数量。
94.请参见图7,图7是本技术实施例提供的一种测试装置的结构示意图。该测试装置可应用于图3~图6对应的方法实施例中的计算机设备。测试装置可以是运行于计算机设备中的一个计算机程序(包括程序代码),例如该测试装置为一个应用软件;该装置可以用于执行本技术实施例提供的方法中的相应步骤。该测试装置可包括:
95.获取单元710,用于获取待测应用程序在所述第一容器环境中的第一测试用例,并获取所述待测应用程序在所述第二容器环境中的第二测试用例;
96.运行单元720,用于在所述第一容器环境中运行所述第一测试用例,得到第一测试结果;
97.运行单元720,还用于在所述第二容器环境中运行所述第二测试用例,得到第二测试结果;
98.输出单元730,用于输出所述第一测试结果和所述第二测试结果。
99.在一种可能的实现方式中,所述测试装置还包括安装单元740。
100.获取单元710获取第一操作系统镜像,并获取第一浏览器安装包;
101.安装单元740在第一操作系统镜像上安装所述第一浏览器安装包对应的浏览器,得到第一容器镜像;
102.运行单元720根据所述第一容器镜像运行所述第一容器环境;
103.获取单元710获取第二操作系统镜像,并获取第二浏览器安装包;
104.安装单元740在第二操作系统镜像上安装所述第二浏览器安装包对应的浏览器,得到第一容器镜像;
105.运行单元720根据所述第二容器镜像运行所述第二容器环境。
106.在一种可能的实现方式中,所述测试装置还包括处理单元750。
107.处理单元750,用于在获取单元710获取所述第一容器环境的第一环境参数以及获取所述第二容器环境的第二环境参数之后,将所述第一环境参数和所述第二环境参数封装为工作节点注册请求,并将所述工作节点注册请求发送至容器管理节点;
108.获取单元710获取待测应用程序在所述第一容器环境中的第一测试用例,并获取所述待测应用程序在所述第二容器环境中的第二测试用例,包括:
109.接收所述容器管理节点发送的测试用例集合,所述测试用例集合包括待测应用程序在所述第一容器环境的第一测试用例,以及待测应用程序在所述第二容器环境中的第二测试用例;所述第一测试用例以及所述第二测试用例是所述容器管理节点根据所述工作节点注册请求确定的。
110.在一种可能的实现方式中,容器工作节点中还运行有虚拟机环境;
111.获取单元710获取所述待测应用程序在所述虚拟机环境中的第三测试用例,并在所述虚拟机环境中运行所述第三测试用例,得到第三测试结果;
112.输出单元730输出所述第三测试结果。
113.在一种可能的实现方式中,待测应用程序包括显示于浏览器的页面程序;
114.所述第一容器环境包括第一操作系统以及第一版本的目标浏览器,所述第二容器环境包括所述第一操作系统以及第二版本的目标浏览器;或者,
115.所述第一容器环境包括第一操作系统、第一浏览器和第二浏览器,所述第二容器环境包括第二操作系统、所述第一浏览器和所述第二浏览器;或者,
116.所述第一容器环境包括第一操作系统、第一浏览器和第二浏览器,所述第二容器环境包括第二操作系统、所述第三浏览器和所述第四浏览器。
117.在一种可能的实现方式中,当所述第一测试结果和所述第二测试结果中存在至少一个测试不通过结果时,获取单元710获取测试不通过结果对应的环境参数;
118.将获取的环境参数以及所述测试不通过结果组合为兼容测试报告,输出单元730输出所述兼容测试报告。
119.在一种可能的实现方式中,兼容测试报告还包括第一图片集合,第二图片集合以及提示消息;
120.所述第一图片集合包括在所述第一容器环境中运行所述第一测试用例的浏览器页面截图,所述第二图片集合包括在所述第二容器环境中运行所述第二测试用例的浏览器页面截图,所述提示消息用于指示所述测试不通过结果对应的错误原因。
121.在一种可能的实现方式中,第一测试用例、所述第二测试用例以及所述第三测试用例在所述容器工作节点中并发执行。
122.请参见图8,请参见图8,图8是本技术实施例提供的一种计算机设备的结构示意图,该计算机设备用于执行图3~图6对应的方法实施例中计算机设备所执行的步骤,该服
务器包括:一个或多个处理器810;一个或多个输入设备820,一个或多个输出设备830和存储器840。上述处理器810、输入设备820、输出设备830和存储器840通过总线850连接。存储器840用于存储计算机程序,所述计算机程序包括程序指令,处理器810用于执行存储器840存储的程序指令,执行以下操作:
123.获取待测应用程序在所述第一容器环境中的第一测试用例,并获取所述待测应用程序在所述第二容器环境中的第二测试用例;
124.在所述第一容器环境中运行所述第一测试用例,得到第一测试结果;
125.在所述第二容器环境中运行所述第二测试用例,得到第二测试结果;
126.输出所述第一测试结果和所述第二测试结果。
127.在一种可能的实现方式中,处理器810还用于执行以下操作:
128.获取第一操作系统镜像,并获取第一浏览器安装包;
129.在第一操作系统镜像上安装所述第一浏览器安装包对应的浏览器,得到第一容器镜像;
130.根据所述第一容器镜像运行所述第一容器环境;
131.获取第二操作系统镜像,并获取第二浏览器安装包;
132.在第二操作系统镜像上安装所述第二浏览器安装包对应的浏览器,得到第一容器镜像;
133.根据所述第二容器镜像运行所述第二容器环境。
134.在一种可能的实现方式中,处理器810还用于执行以下操作:
135.获取所述第一容器环境的第一环境参数以及获取所述第二容器环境的第二环境参数;
136.将所述第一环境参数和所述第二环境参数封装为工作节点注册请求,并将所述工作节点注册请求发送至容器管理节点;
137.处理器810获取待测应用程序在所述第一容器环境中的第一测试用例,并获取所述待测应用程序在所述第二容器环境中的第二测试用例,包括:
138.接收所述容器管理节点发送的测试用例集合,所述测试用例集合包括待测应用程序在所述第一容器环境的第一测试用例,以及待测应用程序在所述第二容器环境中的第二测试用例;所述第一测试用例以及所述第二测试用例是所述容器管理节点根据所述工作节点注册请求确定的。
139.在一种可能的实现方式中,所述容器工作节点中还运行有虚拟机环境;
140.处理器810还用于执行以下操作:
141.获取所述待测应用程序在所述虚拟机环境中的第三测试用例,并在所述虚拟机环境中运行所述第三测试用例,得到第三测试结果;
142.输出所述第三测试结果。
143.在一种可能的实现方式中,所述待测应用程序包括显示于浏览器的页面程序;
144.所述第一容器环境包括第一操作系统以及第一版本的目标浏览器,所述第二容器环境包括所述第一操作系统以及第二版本的目标浏览器;或者,
145.所述第一容器环境包括第一操作系统、第一浏览器和第二浏览器,所述第二容器环境包括第二操作系统、所述第一浏览器和所述第二浏览器;或者,
146.所述第一容器环境包括第一操作系统、第一浏览器和第二浏览器,所述第二容器环境包括第二操作系统、所述第三浏览器和所述第四浏览器。
147.在一种可能的实现方式中,处理器810还用于执行以下操作:
148.当所述第一测试结果和所述第二测试结果中存在至少一个测试不通过结果时,获取测试不通过结果对应的环境参数;
149.将获取的环境参数以及所述测试不通过结果组合为兼容测试报告,并输出所述兼容测试报告。
150.在一种可能的实现方式中,兼容测试报告还包括第一图片集合,第二图片集合以及提示消息;
151.所述第一图片集合包括在所述第一容器环境中运行所述第一测试用例的浏览器页面截图,所述第二图片集合包括在所述第二容器环境中运行所述第二测试用例的浏览器页面截图,所述提示消息用于指示所述测试不通过结果对应的错误原因。
152.在一种可能的实现方式中,所述第一测试用例、所述第二测试用例以及所述第三测试用例在所述容器工作节点中并发执行。
153.本技术实施例还提供了一种计算机存储介质,且计算机存储介质中存储有前文提及的测试装置所执行的计算机程序,且该计算机程序包括程序指令,当处理器执行上述程序指令时,能够执行前文图3~图6所对应实施例中的方法,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本发明所涉及的计算机存储介质实施例中未披露的技术细节,请参照本发明方法实施例的描述。作为示例,程序指令可以被部署在一个计算机设备上,或者在位于一个地点的多个计算机设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算机设备上执行,分布在多个地点且通过通信网络互连的多个计算机设备可以组成区块链系统。
154.根据本技术的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备可以执行前文图3到图6所对应实施例中的方法,因此,这里将不再进行赘述。
155.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,上述程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,上述存储介质可为磁碟、光盘、只读存储记忆体(read-only memory,rom)或随机存储记忆体(random access memory,ram)等。
156.以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献