一种软件测试方法、装置及测试平台与流程

文档序号:33521177发布日期:2023-03-22 06:36阅读:36来源:国知局
一种软件测试方法、装置及测试平台与流程

1.本技术涉及计算机技术领域,尤其涉及一种软件测试方法、装置及测试平台。


背景技术:

2.服务器管理软件是一套控制服务器工作运行、处理硬件、操作系统及应用软件等不同层级的软件管理程序,其可以实现对服务器进行资源管理、性能维护和监控配置。
3.服务器管理软件中的一些功能常依赖与第三方服务的交互,第三方服务如域名系统(domain name system,dns)服务、轻型目录访问协议(lightweight directory access protocol,ldap)服务、网络时间协议(network time protoco,ntp)服务等。所以,在对服务器管理软件进行测试时,需要提前部署这些第三方服务以便测试,而部署第三方服务所花费的时长对测试服务器管理软件的效率具有很大的影响。因此,在对服务器管理软件测试时,如何快速部署第三方服务是目标亟需解决的技术问题。


技术实现要素:

4.本技术提供了一种软件测试方法、装置、测试平台及计算机存储介质,能够实现在对服务器管理软件测试时,快速部署第三方服务,提升了测试效率。
5.第一方面,本技术提供一种软件测试方法,可以应用于测试平台,该方法包括:获取测试指令,测试指令中包括目标服务的标识,目标服务为待测服务器中的软件是否支持的服务;响应于测试指令,基于目标服务的标识,向第三方服务器发送第一消息,第一消息用于指示第三方服务器部署目标服务;获取第三方服务器发送的第二消息,第二消息中包括第三方服务器部署的目标服务的访问信息;响应于第二消息,基于目标服务的访问信息,指示待测服务器与第三方服务器进行交互;获取待测服务器发送的第三消息,第三消息中包括待测服务器与第三方服务器的交互结果,交互结果用于表征待测服务器中的软件是否支持目标服务。这样,在对服务器中的软件进行测试时,用户通过测试平台一键下发测试指令,即可以完成对第三方服务的部署,实现了快速部署第三方服务,并可以自动完成软件测试,提升了软件测试的效率。
6.在一种可能的实现方式中,测试平台内存有测试脚本,响应于第二消息,基于目标服务的访问信息,指示待测服务器与第三方服务器进行交互,包括:响应于第二消息,将目标服务的访问信息发送至待测服务器,并执行测试脚本,测试脚本用于指示待测服务器与第三方服务器进行交互。
7.在一种可能的实现方式中,目标服务被部署于第三方服务器中创建的容器内,方法还包括:若待测服务器中的软件支持目标服务,向第三方服务器发送第四消息,第四消息用于指示第三方服务器删除容器。由此以避免目标服务长时间占用资源。
8.在一种可能的实现方式中,目标服务被部署于第三方服务器中创建的容器内,方法还包括:若待测服务器中的软件不支持目标服务,向第三方服务器发送第五消息,第五消息用于指示第三方服务器停止运行容器,并释放与容器相对应的资源。由此以避免目标服
务长时间占用资源。
9.在一种可能的实现方式中,容器的标识和容器的运行日志被存储在数据库中,方法还包括:响应于用户查询待查询容器的操作,根据待查询容器的标识,从数据库中调取待查询容器的运行日志。这样,即可以在测试出待测服务器上的软件不支持目标服务时,分析出不支持的原因,进而便于用户对服务器中的软件进行更新。
10.第二方面,本技术提供一种软件测试方法,应用于第三方服务器,第三方服务器中部署有管理第三方服务的脚本,方法包括:获取测试平台发送的发送第一消息,第一消息用于指示第三方服务器部署目标服务,测试平台用于检测待测服务器中的软件是否支持目标服务;响应于第一消息,执行脚本,在第三方服务器中部署目标服务;向测试平台发送的第二消息,第二消息中包括第三方服务器部署的目标服务的访问信息,目标服务的访问信息用于待测服务器与第三方服务器进行交互,待测服务器与物理机的交互结果用于表征待测服务器中的软件是否支持目标服务。
11.在一种可能的实现方式中,目标服务被部署于第三方服务器中创建的容器内,方法还包括:若待测服务器中的软件支持目标服务,删除容器。
12.在一种可能的实现方式中,目标服务被部署于第三方服务器中创建的容器内,方法还包括:若待测服务器中的软件不支持目标服务,停止运行容器,并释放与容器相对应的资源。
13.进一步地,方法还包括:存储容器的标识和容器的运行日志。
14.第三方面,本技术提供一种软件测试装置,部署于测试平台,装置包括:通信模块和处理模块。其中,通信模块,用于获取测试指令,测试指令中包括目标服务的标识,目标服务为待测服务器中的软件是否支持的服务。处理模块,用于响应于测试指令,基于目标服务的标识,向第三方服务器发送第一消息,第一消息用于指示第三方服务器部署目标服务。通信模块,还用于获取第三方服务器发送的第二消息,第二消息中包括第三方服务器部署的目标服务的访问信息。处理模块,还用于响应于第二消息,基于目标服务的访问信息,指示待测服务器与第三方服务器进行交互。通信模块,还用于获取待测服务器发送的第三消息,第三消息中包括待测服务器与第三方服务器的交互结果,交互结果用于表征待测服务器中的软件是否支持目标服务。
15.在一种可能的实现方式中,测试平台内存有测试脚本,处理模块在响应于第二消息,基于目标服务的访问信息,指示待测服务器与第三方服务器进行交互时,具体用于:响应于第二消息,将目标服务的访问信息发送至待测服务器,并执行测试脚本,测试脚本用于指示待测服务器与第三方服务器进行交互。
16.在一种可能的实现方式中,目标服务被部署于第三方服务器中创建的容器内,通信模块,还用于当待测服务器中的软件支持目标服务时,向第三方服务器发送第四消息,第四消息用于指示第三方服务器删除容器。
17.在一种可能的实现方式中,目标服务被部署于第三方服务器中创建的容器内,通信模块,还用于当待测服务器中的软件不支持目标服务时,向第三方服务器发送第五消息,第五消息用于指示第三方服务器停止运行容器,并释放与容器相对应的资源。
18.在一种可能的实现方式中,容器的标识和容器的运行日志被存储在数据库中,处理模块还用于响应于用户查询待查询容器的操作,根据待查询容器的标识,从数据库中调
取待查询容器的运行日志。
19.第四方面,本技术提供一种软件测试装置,部署于第三方服务器,第三方服务器中部署有管理第三方服务的脚本。该装置包括:通信模块和处理模块。其中,通信模块,用于获取测试平台发送的发送第一消息,第一消息用于指示第三方服务器部署目标服务,测试平台用于检测待测服务器中的软件是否支持目标服务。处理模块,用于响应于第一消息,执行脚本,在第三方服务器中部署目标服务。通信模块,还用于向测试平台发送的第二消息,第二消息中包括第三方服务器部署的目标服务的访问信息,目标服务的访问信息用于待测服务器与第三方服务器进行交互,待测服务器与第三方服务器的交互结果用于表征待测服务器中的软件是否支持目标服务。
20.在一种可能的实现方式中,目标服务被部署于第三方服务器中创建的容器内,处理模块还用于:当待测服务器中的软件支持目标服务时,删除容器。
21.在一种可能的实现方式中,目标服务被部署于第三方服务器中创建的容器内,处理模块还用于:当待测服务器中的软件不支持目标服务时,停止运行容器,并释放与容器相对应的资源。
22.在一种可能的实现方式中,装置还包括存储模块,用于存储容器的标识和容器的运行日志。
23.第五方面,本技术提供一种测试平台,包括:显示界面和处理器,其中,显示界面用于接收用户输入的测试指令;处理器用于执行第一方面或第一方面的任一种可能的实现方式所描述的方法。
24.第六方面,本技术提供一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,当计算机程序在处理器上运行时,使得处理器执行第一方面或第一方面的任一种可能的实现方式所描述的方法,或者,执行第二方面或第二方面的任一种可能的实现方式所描述的方法。
25.第七方面,本技术提供一种计算机程序产品,当计算机程序产品在处理器上运行时,使得处理器执行第一方面或第一方面的任一种可能的实现方式所描述的方法,或者,执行第二方面或第二方面的任一种可能的实现方式所描述的方法。
26.可以理解的是,上述第二方面至第七方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。
附图说明
27.图1是本技术实施例提供的一种软件测试系统的系统架构示意图;
28.图2是本技术实施例提供的一种软件测试方法的流程示意图;
29.图3是本技术实施例提供的另一种软件测试方法的流程示意图;
30.图4是本技术实施例提供的一种软件测试过程中待测服务器、测试平台和第三方服务器的通信示意图;
31.图5是本技术实施例提供的一种软件测试装置的结构示意图;
32.图6是本技术实施例提供的另一种软件测试装置的结构示意图。
具体实施方式
33.本文中术语“和/或”,是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。本文中符号“/”表示关联对象是或者的关系,例如a/b表示a或者b。
34.本文中的说明书和权利要求书中的术语“第一”和“第二”等是用于区别不同的对象,而不是用于描述对象的特定顺序。例如,第一响应消息和第二响应消息等是用于区别不同的响应消息,而不是用于描述响应消息的特定顺序。
35.在本技术实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本技术实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
36.在本技术实施例的描述中,除非另有说明,“多个”的含义是指两个或者两个以上,例如,多个处理单元是指两个或者两个以上的处理单元等;多个元件是指两个或者两个以上的元件等。
37.目前对服务器管理软件的测试,需通过人工完成,费时费力。另外,在人工部署好第三方服务后,这些服务在没有被使用期间,将长时间占据资源,成本较高。
38.有鉴于此,本技术实施例提供了一种软件测试方法,该方法可以在软件测试时自动化完成第三方服务的部署工作,以及自动完成测试,提升了软件测试的效率。另外,在本技术实施例中,在测试完成后,还可以自动删除已完成测试的服务,避免了这些服务长时间占用资源,降低了成本。
39.示例性的,图1示出了一种软件测试系统的架构。如图1所示,该软件测试系统100可以包括:待测服务器110、测试平台120和第三方服务器130。其中,待测服务器110和测试平台120间,测试平台120和第三方服务器130间,待测服务器110和第三方服务器130间,均可以通过有线网络或无线网络建立连接。
40.待测服务器110中可以部署有基板管理控制器(baseboard manager controller,bmc)。其中,bmc可以理解为是服务器管理软件。在一些实施例中,待测服务器110也可以替换为其他的电子设备,此时所需测试的软件也可以替换为其他的软件,其中,替换后的方案仍在本技术的保护范围之内。
41.测试平台120主要用于自动控制第三方服务器130完成第三方服务的部署,以及检测待测服务器110中的软件是否支持某个服务等。在一些实施例中,测试平台120可以提供可视化的显示界面。用户通过该界面可以下发测试指令、观测到测试结果等。测试平台120可以部署在待测服务器110中,也可以部署在第三方服务器130中,亦可以部署在其他的设备中,具体可根据实际情况而定,此处不做限定。在一些实施例中,测试平台120上可以部署有测试用例。该测试用例是为了实施测试而向被测试的软件提供的一组集合,这组集合包含:测试环境、操作步骤、测试数据、预期结果等要素。在一些实施例中,当第三方服务器130完成第三方服务部署后,测试平台120可以执行其上部署的测试用例,并向待测服务器110发送测试请求,以使得待测服务器110中的bmc与第三方服务器130中的第三方服务进行交互,从而完成对待测服务器110中软件的测试。
42.第三方服务器130主要用于部署第三方服务,比如dns服务、ldap服务、ntp服务等。
在一些实施例中,第三方服务器130中可以部署有用于管理第三方服务生命周期的脚本或者程序等。第三方服务器130在获取到测试平台120发送的部署服务的请求后,可以基于该脚本或程序完成服务部署和/或管理等。在一些实施例中,第三方服务器130可以直接在其上部署第三方服务,也可以直接在其上的虚拟机中部署第三方服务,亦可以在其上虚拟机中的容器内部署第三方服务,具体可根据实际情况而定。
43.接下来,基于图1所示的系统,对本技术实施例提供的一种软件测试方法进行介绍。
44.示例性的,图2示出了一种软件测试方法。该方法可以但不限于应用于图1中的测试平台120。如图2所示,该软件测试方法可以包括以下步骤:
45.s201、获取测试指令,测试指令中包括目标服务的标识,目标服务为待测服务器中的软件是否支持的服务。
46.本实施例中,测试平台可以提供可视化的显示界面。用户通过该界面可以下发包含有需测试的目标服务的标识的指令。示例性的,目标服务可以为dns服务、ldap服务、ntp服务等中的一种或多种。示例性的,目标服务可以为待测服务器中的软件(比如bmc等)是否支持的服务。示例性的,待测服务器可以但不限于为前述图1中的待测服务器110。
47.s202、响应于测试指令,基于目标服务的标识,向第三方服务器发送第一消息,第一消息用于指示第三方服务器部署目标服务。
48.本实施例中,测试平台获取到测试指令后,可以响应于该指令,并基于目标服务的标识,查询其内存储的服务的标识和需部署的服务间的对应关系,确定出该目标服务需不需要部署。当需要部署目标服务时,测试平台可以向第三方服务器发送用于指示第三方服务器部署目标服务的消息。
49.在一些实施例中,当不需要部署目标服务时,测试平台执行其上部署的测试脚本(亦可称之为测试用例),并与待测服务器进行交互,以完成对目标服务的测试。例如,测试平台可以登录待测服务器中的软件,查看并获取待测服务器中一个或多个硬件(比如中央处理器等)的信息;当能够查看或获取到时,表明测试成功。
50.s203、获取第三方服务器发送的第二消息,第二消息中包括第三方服务器部署的目标服务的访问信息。
51.本实施例中,第三方服务器在部署完目标服务器后,第三方服务器可以向测试平台发送包含有其部署的目标服务的访问信息的第二消息。这样,测试平台即可以获取到该第二消息。示例性的,目标服务的访问信息可以包括目标服务的访问地址,比如:互联网协议(internet protocol,ip)地址等,和/或,部署有目标服务的容器的访问地址或标识等。在一些实施例中,当目标服务为ldap服务时,该服务的访问信息中还可以包括访问该服务所需的用户名和密码。
52.s204、响应于第二消息,基于目标服务的访问信息,指示待测服务器与第三方服务器进行交互。
53.本实施例中,测试平台获取到第二消息后,可以响应于该第二消息,并基于目标服务的访问信息,指示待测服务器与第三方服务器进行交互,以完成对待测服务器中软件的测试。
54.在一些实施例中,在测试平台中可以存储有测试脚本(亦可称之为测试用例)。其
中,该测试脚本可以用于指示待测服务器与第三方服务器进行交互。此时,测试平台可以将目标服务器的访问信息发送至待测服务器,并执行测试脚本,由此以指示待测服务器与第三方服务器进行交互。示例性的,测试平台在执行测试脚本后,其可以自动模拟用户使用待测服务器中的软件。
55.s205、获取待测服务器发送的第三消息,第三消息中包括待测服务器与第三方服务器的交互结果,交互结果用于表征待测服务器中的软件是否支持目标服务。
56.本实施例中,待测服务器在与第三方服务器完成交互后,待测服务器可以将包含有两者的交互结果的第三消息发送至测试平台。其中,该交互结果用于表征待测服务器中的软件是否支持目标服务。这样,测试平台在获取到第三消息后,可以通过该消息中包含的交互结果,获知到待测服务器中的软件是否支持目标服务,进而生成测试结果。
57.由此,在对待测服务器中的软件进行测试时,用户通过测试平台一键下发测试指令,即可以完成对第三方服务的部署,实现了快速部署第三方服务,并可以自动完成软件测试,提升了软件测试的效率。
58.在一些实施例中,第三方服务器可以将目标服务部署于其创建的容器内。此时,当交互结果表征待测服务器中的软件支持目标服务时,测试平台还可以向第三方服务器发送第四消息。该第四消息可以用于指示第三方服务器删除部署有目标服务的容器。由此以避免该目标服务长时间占用第三方服务器中的资源。
59.另外,当交互结果表征待测服务器中的软件不支持目标服务时,测试平台还可以向第三方服务器发送第五消息。该第五消息可以用于指示第三方服务器停止运行容器,并释放与容器相对应的资源。由此以避免该目标服务长时间占用第三方服务器中的资源。
60.进一步地,该第五消息还可以用于指示第三方服务器存储部署有目标服务的容器的标识和该容器的运行日志。示例性的,第三方服务器可以将这些信息存储在其上的数据库中,也可以将这些信息发送至测试平台,以由测试平台将这些信息存储在测试平台的数据库中,还可以将这些信息发送至待测服务器,以由待测服务器将这些信息存储待测服务器的数据库中,亦可以将这些信息发送至其他的设备中,以由其他的设备将这些信息存储在其他的设备的数据库中。
61.此外,用户还可以通过测试平台提供的可视化界面下发查询待查询容器的操作。之后,测试平台可以响应于该操作,并根据待查询容器的标识,从相应的数据库中调取待查询容器的运行日志。进一步地,测试平台可以向用户展示这些日志,以便使用户获知到待测服务器中的软件不支持目标服务的原因。示例性的,当存储目标服务的容器的标识和该容器的运行日志的数据库不属于测试平台时,测试平台可以通过与该数据库所属的设备进行交互,以调取待查询容器的运行日志。
62.示例性的,图3示出了另一种软件测试方法。该方法可以但不限于应用于图1中的第三方服务器130。其中,该第三方服务器130中可以部署有管理第三方服务的脚本。如图3所示,该软件测试方法可以包括以下步骤:
63.s301、获取测试平台发送的发送第一消息,第一消息用于指示第三方服务器部署目标服务,测试平台用于检测待测服务器中的软件是否支持目标服务。
64.本实施例中,用户在通过测试平台提供的界面下发测试指令后,当测试平台确定出需要部署目标服务时,测试平台可以向第三方服务器发送用于指示第三方服务器部署目
标服务的第一消息,以便第三方服务器部署该目标服务。在测试平台发送第一消息后,第三方服务器即可以获取到该第一消息。
65.在一些实施例中,测试平台可以用于检测待测服务器中的软件是否支持目标服务。示例性的,该测试平台可以但不限于为前述图1中所示的测试平台120,待测服务器可以但不限于为前述图1中所示的待测服务器110。
66.s302、响应于第一消息,执行脚本,在第三方服务器中部署目标服务。
67.本实施例中,第三方服务器在获取到第一消息后,可以响应于该第一消息,执行其上用于管理第三方服务的脚本,并在其内部署目标服务。示例性的,第三方服务器在运行用于管理第三方服务的脚本后,其可以但不限于通过网络获取到与目标服务相关的镜像。之后,第三方服务器可以通过其上部署的docker创建容器,并将其获取到的镜像部署在容器中,以完成目标服务的部署。
68.s303、向测试平台发送的第二消息,第二消息中包括第三方服务器部署的目标服务的访问信息,目标服务的访问信息用于待测服务器与第三方服务器进行交互,待测服务器与第三方服务器的交互结果用于表征待测服务器中的软件是否支持目标服务。
69.本实施例中,第三方服务器在完成目标服务的部署后,其可以向测试平台发送包括第三方服务器部署的目标服务的访问信息的第二消息,以便测试平台可以对待测服务器中的软件进行测试。示例性的,目标服务的访问信息可以包括目标服务的访问地址,比如:互联网协议(internet protocol,ip)地址等,和/或,部署有目标服务的容器的访问地址或标识等。在一些实施例中,当目标服务为ldap服务时,该服务的访问信息中还可以包括访问该服务所需的用户名和密码。
70.示例性的,目标服务的访问信息可以用于待测服务器与第三方服务器进行交互。其中,待测服务器与第三方服务器的交互结果用于表征待测服务器中的软件是否支持目标服务。
71.由此,在对待测服务器中的软件进行测试时,用户通过测试平台一键下发测试指令,第三方服务器即可以自动完成对第三方服务的部署,实现了快速部署第三方服务,并可以自动完成软件测试,提升了软件测试的效率。
72.在一些实施例中,当目标服务被署于第三方服务器中创建的容器内时,若待测服务器中的软件支持目标服务,则第三方服务器可以删除部署有目标服务的容器。若待测服务器中的软件不支持目标服务,则第三方服务器可以停止运行容器,并释放与容器相对应的资源。由此以避免该目标服务长时间占用第三方服务器中的资源。示例性的,测试平台可以将待测服务器反馈的待测服务器与第三方服务器的交互结果发送至第三方服务器,之后,第三方服务器可以对该交互结果进行分析,以确定出待测服务器中的软件是否支持目标服务。另外,测试平台在确定出待测服务器中的软件是否支持目标服务后,可以向第三方服务器发送控制指令,之后,第三方服务器可以基于该控制指令执行相应的操作。例如,当控制指令为删除部署有目标服务的容器时,第三方服务器则删除部署有目标服务的容器;当控制指令为停止运行容器,并释放与容器相对应的资源时,第三方服务器则停止运行容器,并释放与容器相对应的资源。
73.进一步地,当待测服务器中的软件不支持目标服务时,第三方服务器可以存储部署有目标服务的容器的标识和该容器的运行日志,以便后续可以基于这些信息分析出待测
服务器中的软件不支持目标服务的原因。示例性的,第三方服务器可以将这些信息存储至其内的数据库中,也可以将这些信息发送至测试平台,以由测试平台将这些信息存储至测试平台中的数据库中,还可以将这些信息发送至待测服务器,以由待测服务器将这些信息存储待测服务器的数据库中,亦可以将这些信息发送至其他的设备中,以由其他的设备将这些信息存储在其他的设备的数据库中。
74.以上即是对本技术实施例提供的软件测试方法的介绍。为便于理解,下面对在进行软件测试时,待测服务器、测试平台和第三方服务器的通信过程进行介绍。
75.示例性的,图4示出了一种软件测试过程中待测服务器、测试平台和第三方服务器的通信示意图。如图4所示,该通信过程可以包括以下步骤:
76.s401、测试平台120获取用户下发的测试指令,测试指令中包括需测试的目标服务的标识。
77.本实施例中,测试平台120可以提供可视化的显示界面。用户通过该界面可以下发包含有需测试的目标服务的标识的指令。示例性的,目标服务可以为dns服务、ldap服务、ntp服务等中的一种或多种。示例性的,目标服务可以为待检测的待测服务器110中的软件(比如bmc等)是否支持的服务。
78.s402、测试平台120响应于测试指令,基于目标服务的标识,判断是否需要部署目标服务。
79.本实施例中,测试平台120获取到测试指令后,可以将目标服务的标识查询其内存储的服务的标识和需部署的服务间的对应关系,确定出该目标服务需不需要部署。当需要部署时,执行s404。当不需要部署时,执行s403。
80.s403、测试平台120与待测服务器110进行交互,以完成测试。
81.本实施例中,当不需要部署目标服务时,测试平台120可以直接与待测服务器110进行交互,以完成测试。例如,测试平台120可以登录待测服务器110中的软件(比如bmc等),查看并获取待测服务器110中一个或多个硬件(比如中央处理器等)的信息;当能够查看或获取到时,表明测试成功。
82.s404、测试平台120向第三方服务器130发送用于指示第三方服务器130部署目标服务的消息。
83.本实施例中,在需要部署需测试的服务时,测试平台120可以向第三方服务器130发送用于指示第三方服务器130部署目标服务的消息。
84.s405、第三方服务器130响应于测试平台120发的消息,部署目标服务。
85.本实施例中,第三方服务器130获取到测试平台120发送的服务部署请求后,可以运行其上部署的用于管理第三方服务的脚本或者程序,以在其内部署目标服务。在一些实施例中,第三方服务器130可以直接在其上部署目标服务,也可以直接在其上的虚拟机中部署目标服务,亦可以在其上虚拟机中的容器内部署目标服务。示例性的,第三方服务器130在运行用于管理第三方服务的脚本或者程序后,其可以通过网络获取到与目标服务相关的镜像。之后,第三方服务器130可以通过其上部署的docker创建容器,并将其获取到的镜像部署在容器中,以完成目标服务的部署。
86.s406、第三方服务器130向测试平台120发送包含有其部署的目标服务的访问信息的消息。
87.本实施例中,第三方服务器130在部署完目标服务后,可以向测试平台120发送消息,该消息中可以包含其部署的目标服务的访问信息。示例性的,目标服务的访问信息中可以包括目标服务的访问地址,比如:互联网协议(internet protocol,ip)地址等,和/或,部署有目标服务的容器的访问地址或标识等。在一些实施例中,当目标服务为ldap服务时,该服务的访问信息中还可以包括访问该服务所需的用户名和密码。
88.s407、测试平台120向待测服务器110发送包含有目标服务的访问信息的消息。
89.本实施例中,测试平台120可以执行其上部署的测试用例,并自动模拟用户使用待测服务器110。在模拟过程中,测试平台120可以先通过测试用例登录待测服务器110中的软件,然后,在向待测服务器110中的软件发送包含有目标服务的访问信息的消息,以指示待测服务器110中的软件基于该访问信息与第三方服务器130中的服务进行交互。
90.在一些实施例中,测试平台120可以存储其获取到的目标服务的访问信息。当目标服务为多个时,测试平台120也可以存储各个目标服务的访问地址与各个容器间的对应关系。例如,当目标服务为两个时,测试平台120可以存储目标服务1和容器1的对应关系,以及,存储目标服务2和容器2的对应关系。
91.进一步地,测试平台120可以将其存储的服务和容器间的对应关系发送至待测服务器110。这样,待测服务器110即可以基于要测试的服务获知到其所需访问的容器,并对该容器中的服务进行访问。
92.s408、待测服务器110响应于测试平台120发送的消息,基于目标服务的访问信息,与第三方服务器130进行交互,并得到用于表征待测服务器110中的软件是否支持目标服务的交互结果。
93.本实施例中,待测服务器110可以将目标服务的访问信息配置到其内的软件中,接着,其内的软件可以基于目标服务的访问信息与第三方服务器130中部署的目标服务进行交互,以验证目标服务,从而得到交互结果。该交互结果可以用于表征待测服务器110中的软件是否支持目标服务。
94.例如,当目标服务为dns服务时,待测服务器110可以通过dns服务的访问地址向第三方服务器130发送一个域名,以由第三方服务器130上的dns服务对该域名进行解析;同时,第三方服务器130可以将解析结果返回至待测服务器110。当解析结果为成功解析时,则交互结果为测试成功,表明待测服务器110支持该dns服务。当解析结果为解析失败时,则交互结果为测试失败,表明待测服务器110中的软件不支持该dns服务。
95.当目标服务为ldap服务时,待测服务器110可以通过ldap服务的访问地址和登录方式登录第三方服务器130中所提供的ldap服务。如果登录成功,则交互结果为测试成功,表明待测服务器110支持该ldap服务。如果登录失败,则交互结果为测试失败,表明待测服务器110中的软件不支持该ldap服务。
96.当目标服务为ntp服务时,待测服务器110可以通过ntp服务的访问地址向第三方服务器130发送时间同步请求;同时,第三方服务器130获取到请求后,可以将其上ntp服务中的时间发送至待测服务器110。当待测服务器110上的时间与第三方服务器130返回的时间一致时,则交互结果为测试成功,表明待测服务器110支持该ntp服务。当待测服务器110上的时间与第三方服务器130返回的时间不一致时,则交互结果为测试失败,表明待测服务器110不支持该ntp服务。
97.在一些实施例中,当目标服务为多个时,待测服务器110可以同时访问多个目标服务,也可以依次访问,具体可根据实际情况而定,此处不做限定。示例性的,当待测服务器110依次访问各个目标服务时,测试平台120可以依次向待测服务器110发送各个目标服务的访问信息。
98.s409、待测服务器110向测试平台120发送包含有交互结果的消息。
99.s410、测试平台120向第三方服务器130发送包含有交互结果的消息。其中,该消息可以用于指示第三方服务器130基于交互结果对其上部署的目标服务进行管理。
100.本实施例中,测试平台120获取到待测服务器110发的包含有交互结果的消息后,可以基于该交互结果,生成测试结果,并将该测试结果呈现给用户。另外,测试平台120还可以将其获取到的交互结果发送至第三方服务器130,以使第三方服务器130基于该交互结果对其上部署的目标服务进行管理。
101.在一些实施例中,测试平台120也可以将测试结果发送给第三方服务器130,以使第三方服务器130基于该测试结果对其上部署的目标服务进行管理。
102.另外,测试平台120还可以基于测试结果向第三方服务器130发送相应的控制指令,以使第三方服务器130基于该控制指令对其上部署的目标服务进行管理。例如,当测试结果为成功时,测试平台120可以向第三方服务器130发送用于删除部署有目标服务的容器的控制指令;当测试结果为失败时,测试平台120可以向第三方服务器130发送用于释放其上目标服务所占的资源,以及存储与目标服务相关的运行日志的控制指令等。
103.应理解的是,本技术实施例中,对测试平台120在获取到待测服务器110反馈的交互结果后,测试平台120和第三方服务器130之间交互过程不做限定,能够保证第三方服务器130可以对其上部署的目标服务进行管理即可。
104.s411、第三方服务器130基于交互结果,对其上部署的目标服务进行管理。
105.本实施例中,第三方服务器130在获取到交互结果后,可以基于该交互结果,对其上部署的目标服务进行管理。此时,可以理解为:第三方服务器是直接基于交互结果对其上部署的目标服务进行管理。
106.其中,当交互结果为测试成功(即待测服务器110支持目标服务)时,第三方服务器130可以删除其上与目标服务相关的数据,以避免该目标服务长时间占用资源。例如,当目标服务部署于其上虚拟机中的容器时,其可以删除该容器。当目标服务部署于其上虚拟机时,其可以删除该虚拟机,或者初始化该虚拟机等。
107.当交互结果为测试失败(即待测服务器110不支持目标服务)时,第三方服务器130可以释放其上目标服务所占的资源,以及存储与目标服务相关的运行日志,以避免该目标服务长时间占用资源,以及使得测试平台120可以基于运行日志分析待测服务器110不支持目标服务的原因。例如,当目标服务部署于其上虚拟机中的容器时,其可以控制该容器停止运行,以释放该容器所占的资源,同时可以通过防火墙规则释放映射的端口资源,以及根据该容器的标识将容器的运行日志和目标服务的运行日志存储。另外,其还可以存储其上系统的运行日志。例如,当目标服务部署于其上虚拟机时,其可以控制该虚拟机停止运行,以释放该虚拟机所占的资源,以及根据该虚拟机的标识将虚拟机的运行日志和目标服务的运行日志存储。另外,其还可以存储其上系统的运行日志。
108.在一些实施例中,当交互结果为测试失败时,第三方服务器130可以向测试平台
120发送消息,该消息中可以包括其上用于部署目标服务的组件的标识。示例性的,用于部署目标服务的组件可以为虚拟机,也可以为虚拟机中的容器等。
109.进一步地,测试平台120获取到第三方服务器130发送的消息后,可以基于部署目标服务的组件的标识,查询第三方服务器130中存储的与目标服务相关的运行日志,以及输出测试失败原因。示例性的,测试平台120可以基于部署目标服务的组件的标识,查询第三方服务器130中存储的与目标服务相关的运行日志,并对这些日志进行分析,定位出测试失败的原因,以及输出测试失败原因,从而使得用户可以获知到测试失败原因,进而便于用户对服务器中的软件进行更新。
110.在一些实施例中,当s410为测试平台120向第三方服务器130发送控制指令时,s411也可以替换为:第三方服务器130根据控制指令,对其上部署的目标服务进行管理。此时,可以理解为第三方服务器是间接基于交互结果对其上部署的目标服务进行管理。对于管理过程,详见上文描述,此处不再赘述。
111.由此,当需要对服务器中的软件是否支持某个服务进行测试时,用户可以一键下发测试指令,即可以自动完成第三方服务的部署,以及完成测试,大幅提升了测试效率。
112.在一些实施例中,当测试平台120中存储有各个服务和各个容器间的对应关系时,测试平台120还可以基于其获取到的待测服务器110反馈的交互结果,对该对应关系进行更新。例如,当交互结果为成功时,其可以删除相应的服务和容器间的对应关系;当交互结果为失败时,其可以保留相应的服务和容器间的对应关系,以便在检测失败原因时可以获知到应查询哪个容器的运行日志等。
113.可以理解的是,上述各个实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本技术实施例的实施过程构成任何限定。此外,在一些可能的实现方式中,上述各个实施例中的各步骤可以根据实际情况选择性执行,可以部分执行,也可以全部执行,此处不做限定。另外,上述各个实施例中的任意特征的全部或部分在不矛盾的前提下,可以自由地、任何地组合。组合后的技术方案也在本技术的范围之内。
114.基于上述实施例中的方法,本技术实施例提供了一种软件测试装置。
115.示例性的,图5示出了一种软件测试装置。其中,该装置可以部署于前述图1中的测试平台120中。如图5所示,该软件测试装置500可以包括:通信模块501和处理模块502。
116.其中,通信模块501,用于获取测试指令,测试指令中包括目标服务的标识,目标服务为待测服务器中的软件是否支持的服务。处理模块502,用于响应于测试指令,基于目标服务的标识,向第三方服务器发送第一消息,第一消息用于指示第三方服务器部署目标服务。通信模块501,还用于获取第三方服务器发送的第二消息,第二消息中包括第三方服务器部署的目标服务的访问信息。处理模块502,还用于响应于第二消息,基于目标服务的访问信息,指示待测服务器与第三方服务器进行交互。通信模块501,还用于获取待测服务器发送的第三消息,第三消息中包括待测服务器与第三方服务器的交互结果,交互结果用于表征待测服务器中的软件是否支持目标服务。
117.在一些实施例中,测试平台内存有测试脚本,处理模块502在响应于第二消息,基于目标服务的访问信息,指示待测服务器与第三方服务器进行交互时,具体用于:响应于第二消息,将目标服务的访问信息发送至待测服务器,并执行测试脚本,测试脚本用于指示待
测服务器与第三方服务器进行交互。
118.在一些实施例中,目标服务被部署于第三方服务器中创建的容器内,通信模块501,还用于当待测服务器中的软件支持目标服务时,向第三方服务器发送第四消息,第四消息用于指示第三方服务器删除容器。
119.在一些实施例中,目标服务被部署于第三方服务器中创建的容器内,通信模块501,还用于当待测服务器中的软件不支持目标服务时,向第三方服务器发送第五消息,第五消息用于指示第三方服务器停止运行容器,并释放与容器相对应的资源。
120.在一些实施例中,容器的标识和容器的运行日志被存储在数据库中,处理模块502还用于响应于用户查询待查询容器的操作,根据待查询容器的标识,从数据库中调取待查询容器的运行日志。
121.应当理解的是,上述模块用于执行上述实施例中图2所描述的方法,模块中相应的程序模块,其实现原理和技术效果与上述图2所描述的方法中的描述类似,该模块的工作过程可参考上述图2所描述的方法中的对应过程,此处不再赘述。
122.基于上述实施例中的方法,本技术实施例提供了又一种软件测试装置。
123.示例性的,图6示出了一种软件测试装置。其中,该装置可以部署于前述图1中的第三方服务器130中。其中,第三方服务器130中可以部署有管理第三方服务的脚本。如图6所示,该软件测试装置600可以包括:通信模块601和处理模块602。
124.其中,通信模块601,用于获取测试平台发送的发送第一消息,第一消息用于指示第三方服务器部署目标服务,测试平台用于检测待测服务器中的软件是否支持目标服务。处理模块602,用于响应于第一消息,执行脚本,在第三方服务器中部署目标服务。通信模块601,还用于向测试平台发送的第二消息,第二消息中包括第三方服务器部署的目标服务的访问信息,目标服务的访问信息用于待测服务器与第三方服务器进行交互,待测服务器与第三方服务器的交互结果用于表征待测服务器中的软件是否支持目标服务。
125.在一些实施例中,目标服务被部署于第三方服务器中创建的容器内,处理模块602还用于:当待测服务器中的软件支持目标服务时,删除容器。
126.在一些实施例中,目标服务被部署于第三方服务器中创建的容器内,处理模块602还用于:当待测服务器中的软件不支持目标服务时,停止运行容器,并释放与容器相对应的资源。
127.在一些实施例中,该装置还可以包括存储模块(图中未示出),用于存储容器的标识和容器的运行日志。
128.应当理解的是,上述模块用于执行上述实施例中图3所描述的方法,模块中相应的程序模块,其实现原理和技术效果与上述图3所描述的方法中的描述类似,该模块的工作过程可参考上述图3所描述的方法中的对应过程,此处不再赘述。
129.基于上述实施例中的方法,本技术实施例还提供了一种测试平台。该测试平台可以包括:显示界面和处理器,其中,显示界面用于接收用户输入的测试指令;处理器用于执行前述图2中所描述的方法。
130.基于上述实施例中的方法,本技术实施例提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,当计算机程序在处理器上运行时,使得处理器执行上述实施例中的方法。
131.基于上述实施例中的方法,本技术实施例提供了一种计算机程序产品,当计算机程序产品在处理器上运行时,使得处理器执行上述实施例中的方法。
132.可以理解的是,本技术的实施例中的处理器可以是中央处理单元(central processing unit,cpu),还可以是其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field programmable gate array,fpga)或者其他可编程逻辑器件、晶体管逻辑器件,硬件部件或者其任意组合。通用处理器可以是微处理器,也可以是任何常规的处理器。
133.本技术的实施例中的方法步骤可以通过硬件的方式来实现,也可以由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于随机存取存储器(random access memory,ram)、闪存、只读存储器(read-only memory,rom)、可编程只读存储器(programmable rom,prom)、可擦除可编程只读存储器(erasable prom,eprom)、电可擦除可编程只读存储器(electrically eprom,eeprom)、寄存器、硬盘、移动硬盘、cd-rom或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于asic中。
134.在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本技术实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者通过所述计算机可读存储介质进行传输。所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘(solid state disk,ssd))等。
135.可以理解的是,在本技术的实施例中涉及的各种数字编号仅为描述方便进行的区分,并不用来限制本技术的实施例的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1