发明内容
本申请提供了一种测试环境管理方法、装置、电子设备及存储介质,以至少解决现有技术中存在的以上技术问题。
根据本申请的第一方面,提供了一种测试环境管理方法,所述方法包括:
获得第一测试环境的更新信息;
基于第一测试环境的更新信息以及第一测试环境的已有测试信息,获得第一测试环境的最新测试信息;
基于第一测试环境的最新测试信息和至少一个第二测试环境中各第二测试环境的最新测试信息,确定是否对第一测试环境的最新测试信息和/或对各第二测试环境中的至少部分第二测试环境的最新测试信息进行更新,以使第一测试环境和各第二测试环境之间的测试信息保持一致。
上述方案中,所述第一测试环境的更新信息包括为所述第一测试环境启用的新服务和在所述第一测试环境中生成的新测试表。
上述方案中,在所述第一测试环境的更新信息为为所述第一测试环境启用的新服务的情况下,
所述基于第一测试环境的更新信息以及第一测试环境的已有测试信息,获得第一测试环境的最新测试信息,包括:
基于所述新服务对应的分支信息以及第一测试环境中已有测试信息对应的分支信息,得到第一测试环境的分支信息;
将第一测试环境的分支信息作为第一测试环境的最新测试信息。
上述方案中,所述第二测试环境的最新测试信息包括第二测试环境的分支信息,
所述基于第一测试环境的最新测试信息和至少一个第二测试环境中各第二测试环境的最新测试信息,确定是否对第一测试环境的最新测试信息和/或对各第二测试环境中的至少部分第二测试环境的最新测试信息进行更新,包括:
将第一测试环境的分支信息和各第二测试环境的分支信息进行逐一比对;
基于比对结果以及第一测试环境的分支信息和各第二测试环境的分支信息,确定是否对第一测试环境的最新测试信息和/或对各第二测试环境中的至少部分第二测试环境的最新测试信息进行更新。
上述方案中,如果比对结果为第一测试环境的分支信息中出现有至少之一第二测试环境中未出现的分支信息,则将所述未出现的分支信息合并至所述至少之一第二测试环境的分支信息中,以对所述至少之一第二测试环境的最新测试信息进行更新;
如果比对结果为至少之一第二测试环境的分支信息中出现有第一测试环境中未出现的分支信息,则将所述未出现的分支信息合并至第一测试环境的分支信息中,以对所述第一测试环境的最新测试信息进行更新。
上述方案中,如果比对结果为第一测试环境的分支信息中出现有至少之一第二测试环境中未出现的第一分支信息且比对结果为至少之一第二测试环境的分支信息中出现有第一测试环境中未出现的第二分支信息,则将第一分支信息合并至所述至少之一第二测试环境的分支信息中以对所述至少之一第二测试环境的最新测试信息进行更新,以及将第二分支信息合并至第一测试环境的分支信息中,以对第一测试环境的最新测试信息进行更新。
上述方案中,所述方法还包括:
创建所述新服务;
分别在第一测试环境以及在至少一个第二测试环境下为所述新服务进行参数配置;
确定采用各配置参数的所述新服务在各测试环境下是否为正常服务;
确定为正常服务时,可在第一测试环境下启用所述新服务。
根据本申请的第二方面,提供了一种测试环境管理装置,所述装置包括:
第一获取单元,用于获得第一测试环境的更新信息;
第二获取单元,用于基于第一测试环境的更新信息以及第一测试环境的已有测试信息,获得第一测试环境的最新测试信息;
第一确定单元,用于基于第一测试环境的最新测试信息和至少一个第二测试环境中各第二测试环境的最新测试信息,确定是否对第一测试环境的最新测试信息和/或对各第二测试环境中的至少部分第二测试环境的最新测试信息进行更新,以使第一测试环境和各第二测试环境之间的测试信息保持一致。
上述方案中,所述第一测试环境的更新信息包括为所述第一测试环境启用的新服务和在所述第一测试环境中生成的新测试表。
上述方案中,在所述第一测试环境的更新信息为为所述第一测试环境启用的新服务的情况下,
所述第二获取单元,用于基于所述新服务对应的分支信息以及第一测试环境中已有测试信息对应的分支信息,得到第一测试环境的分支信息;将第一测试环境的分支信息作为第一测试环境的最新测试信息。
上述方案中,所述第二测试环境的最新测试信息包括第二测试环境的分支信息,
所述第一确定单元,用于将第一测试环境的分支信息和各第二测试环境的分支信息进行逐一比对;基于比对结果以及第一测试环境的分支信息和各第二测试环境的分支信息,确定是否对第一测试环境的最新测试信息和/或对各第二测试环境中的至少部分第二测试环境的最新测试信息进行更新。
上述方案中,所述第一确定单元,用于
如果比对结果为第一测试环境的分支信息中出现有至少之一第二测试环境中未出现的分支信息,则将所述未出现的分支信息合并至所述至少之一第二测试环境的分支信息中,以对所述至少之一第二测试环境的最新测试信息进行更新;
如果比对结果为至少之一第二测试环境的分支信息中出现有第一测试环境中未出现的分支信息,则将所述未出现的分支信息合并至第一测试环境的分支信息中,以对所述第一测试环境的最新测试信息进行更新。
上述方案中,所述第一确定单元,用于
如果比对结果为第一测试环境的分支信息中出现有至少之一第二测试环境中未出现的第一分支信息且比对结果为至少之一第二测试环境的分支信息中出现有第一测试环境中未出现的第二分支信息,则将第一分支信息合并至所述至少之一第二测试环境的分支信息中以对所述至少之一第二测试环境的最新测试信息进行更新,以及将第二分支信息合并至第一测试环境的分支信息中,以对第一测试环境的最新测试信息进行更新。
上述方案中,所述装置还包括:
启用单元,用于创建所述新服务;分别在第一测试环境以及在至少一个第二测试环境下为所述新服务进行参数配置;确定采用各配置参数的所述新服务在各测试环境下是否为正常服务;确定为正常服务时,可在第一测试环境下启用所述新服务。
根据本申请的第三方面,提供了一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本申请所述的方法。
根据本申请的第四方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使计算机执行本申请所述的方法。
本申请中,通过获得第一测试环境的更新信息,并基于第一测试环境的更新信息以及第一测试环境的已有测试信息,获得第一测试环境的最新测试信息,基于第一测试环境的最新测试信息和至少一个第二测试环境中各第二测试环境的最新测试信息,确定是否对第一测试环境的最新测试信息和/或对各第二测试环境中的至少部分第二测试环境的最新测试信息进行更新,以使第一测试环境和各第二测试环境之间的测试信息保持一致。基于获得的第一测试环境的更新信息和第一测试环境的已有测试信息以及至少一个第二测试环境中各第二测试环境的最新测试信息,即可实现各测试环境中测试信息间的一致。为提高各测试环境中的测试信息之间的一致性提供了技术支持。
应当理解,本部分所描述的内容并非旨在标识本申请的实施例的关键或重要特征,也不用于限制本申请的范围。本申请的其它特征将通过以下的说明书而变得容易理解。
具体实施方式
为使本申请的目的、特征、优点能够更加的明显和易懂,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而非全部实施例。基于本申请中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
可以理解,结合图1所示,本申请实施例中测试环境包含两种类型:公共基础环境以及特性环境。其中,特性环境用来部署需求涉及变更的服务,公共基础环境是一个全套的服务运行环境,它通常运行一个相对稳定的服务版本,可以提供给所有特性环境共同调用。按照公共基础环境以及特性环境的方式部署,可以实现环境的快速搭建、快速释放。
在实际应用中,可采用在测试环境中、通过为测试项目建立的测试服务来对测试脚本进行测试并生成测试表的方式实现对测试项目的测试。在对测试项目的测试完成后,将测试过程中生成的测试表储存在数据库中。通常情况下,在同一测试环境中生成的测试表存储在同一数据库中,在不同测试环境中生成的测试表存储在不同的数据库中。当测试设备运行有多种测试环境,即,测试设备中存在多个数据库的情况下,多个数据库之间往往缺少同步或一致性机制,多个数据库中的数据不一致会导致同一测试项目无法在两个或多个测试环境中移植。
由此可见,在实际应用中,测试环境为软件测试工作中必不可少的一部分,考虑到目前各测试环境间缺少同步机制导致各测试环境间具有差异,各测试环境间的这种差异性,为测试项目在不同测试环境中的移植增加了很大的难度。本申请的技术方案,能够可靠地实现各测试环境间的一致性或同步,大大降低了测试项目在不同测试环境中的移植难度,为软件测试工作的顺利进行奠定基础。
本申请实施例的技术方案涉及到对测试环境进行管理的方案,基于获得的第一测试环境的更新信息和第一测试环境的已有测试信息以及至少一个第二测试环境中各第二测试环境的最新测试信息,即可实现各测试环境间的一致,保证了各测试环境间的一致性。为提高各测试环境之间的通用性提供了技术支持。
本申请实施例的技术方案涉及到对测试环境进行管理的方案,可部署于本申请实施例中的测试环境管理装置中。在实际应用中,测试环境管理装置通过diff接口分别与应用中心、开放可编程系统(OPS,Open Programmability System)平台进行通信。下面对本申请实施例中的测试环境管理方法做详细说明。
本申请实施例提供一种测试环境管理方法,应用于测试环境管理装置。如图2所示,所述方法包括:
S201:获得第一测试环境的更新信息;
本步骤中,测试设备包括有两个或两个以上的测试环境。第一测试环境是两个或两个以上测试环境中的任一测试环境。可以理解,当测试环境中存在有已有(测试)服务被更新或者新增服务(新服务)时,第一测试环境存在有更新信息。当测试环境中存在有已有测试表被更新或者新增测试表(新测试表)时,第一测试环境存在有更新信息。即,第一测试环境的更新信息包括但不限定于:已有服务被更新、出现新服务、已有测试表被更新、出现新测试表。
针对测试设备中某个存在更新信息的第一测试环境,测试环境管理装置可通过读取第一测试环境的更新信息的方式而获得第一测试环境的更新信息。
可以理解,如果第一测试环境中的更新或者新增的测试服务无法同步到其他测试环境中,会造成各个测试环境服务版本存在差异。如果第一测试环境中的更新或新增的测试表无法同步到其他测试环境中,会造成各个测试环境测试表的表字段长度等存在差异。第一测试环境的更新信息无法同步到其他测试环境,导致了测试项目无法在不同测试环境间进行移植。
在一些实施例中,第一测试环境可以是被选中的测试环境。具体而言,测试环境管理装置接收来自客户端或服务器的测试环境更新指令,更新指令包含测试环境的更新信息。示例性地,假定当前有A、B、C三个测试环境,测试环境管理装置想要A环境响应该更新指令,即,期望A环境在更新指令的作用下发生更新,这时A环境可作为第一测试环境来使用。B环境和C环境作为第二测试环境来使用。A环境作为被选中的第一测试环境,可响应更新指令,根据第一测试环境的更新信息进行服务和/或测试表的更新。第一测试环境中的服务更新包括已有服务的更新或出现新服务。第一测试环境中的测试表的更新包括已有测试表的更新或出现新测试表。在被选中的测试环境-第一测试环境响应更新指令完成更新的情况下,测试环境管理装置读取第一测试环境的更新信息。
其中,更新指令可在客户端或服务器存在对测试环境进行更新需求的情况下,由客户端或服务器向测试环境管理装置发送指令。
在一些可选实施例中,测试环境管理装置可在接收到客户端或服务器发送的更新指令的情况下,从多个可选的测试环境中,根据各测试环境的空闲状况选择出一测试环境作为第一测试环境。示例性地,在A、B和C三个测试环境中,如果A测试环境中测试任务最少,空闲资源最多,则可以选择A测试环境作为第一测试环境。
除了依据各测试环境的空闲状况选择出一测试环境作为第一测试环境,还可以依据其他合理的信息,本申请对此不作限制。
S202:基于第一测试环境的更新信息以及第一测试环境的已有测试信息,获得第一测试环境的最新测试信息;
本步骤中,通过读取第一测试环境的已有测试信息而得到第一测试环境的已有测试信息。将读取到的第一测试环境的更新信息和已有测试信息进行集合,即可得到第一测试环境的最新测试信息。此外,还需要读取测试设备中除第一测试环境之外的其他测试环境的测试信息作为第二测试环境的最新测试信息。
通俗来讲,第一测试环境的最新测试信息包括第一测试环境的更新信息和第一测试环境的已有测试信息。以第一测试环境为前述的A测试环境为例,A测试环境的更新信息为响应更新指令后在A测试环境中发生更新的信息,A测试环境的发生更新的信息包括两种情况。第一种情况是当A测试环境中更新的信息是对已有测试信息中部分信息的修改,如对已有服务和/或已有测试表的修改。这种情况下,A测试环境的最新测试信息为修改信息和未修改信息的总和。第二种情况是当A测试环境中更新信息是在已有测试信息的基础上新增的信息,如A测试环境中出现的新服务和/或新测试表。这种情况下,A测试环境的最新测试信息为新增信息和已有测试信息的总和。
S203:基于第一测试环境的最新测试信息和至少一个第二测试环境中各第二测试环境的最新测试信息,确定是否对第一测试环境的最新测试信息和/或对各第二测试环境中的至少部分第二测试环境的最新测试信息进行更新,以使第一测试环境和各第二测试环境之间的测试信息保持一致。
本步骤中,可通过比对第一测试环境更新后的最新测试信息与各第二测试环境的最新测试信息,判断是否应该对第一测试环境和/或各第二测试环境中的至少部分第二测试环境进行更新,以使全部测试环境的测试信息均保持一致。
示例性地,第一测试环境的最新测试信息与各第二测试环境的最新测试信息比对为一致,则无需对所有测试环境进行更新。如果第一测试环境的最新测试信息与各第二测试环境中的至少一个第二测试环境的最新测试信息比对为不一致,则需要对第一测试环境和/或至少一个第二测试环境进行测试信息的更新。在所有测试环境(包括第一测试环境和所有第二测试环境)中,需要进行测试信息更新的对象(测试环境)可通过后续的更新方案而确定并进行测试信息的更新,不赘述。
在S201~S203所示的方案中,获得第一测试环境的更新信息,基于获得的第一测试环境的更新信息和第一测试环境的已有测试信息,得到第一测试环境的最新测试信息,基于第一测试环境的最新测试信息以及至少一个第二测试环境中各第二测试环境的最新测试信息,确定是否进行第一和/或第二测试环境的更新。基于其中一个测试环境(第一测试环境)的最新测试信息和其他测试环境(第二测试环境)的最新测试信息,简单可靠地实现各测试环境间测试信息的一致性。使得当其中一个测试环境(第一测试环境)中有测试表更新或者新增时,将该更新或新增的测试表添加到其他测试环境(第二测试环境)中;当其中一个测试环境(第一测试环境)中有测试服务更新或新增时,将该更新或新增的测试服务同步到其他测试环境(第二测试环境)中。解决了测试环境随着测试进程互不一致的问题,通过将不同的测试环境的测试信息进行同步,实现了测试项目在不同测试环境之间的无障碍移植,为提高各测试环境的通用性提供了技术支持。
通俗来讲,前述的第一测试环境的最新测试信息与各第二测试环境的最新测试信息的比对方案,就是在确定某个测试环境中相对于其他测试环境而出现的不同的测试信息,该不同的测试信息需要添加到原本未出现该测试信息的测试环境中去。以第一测试环境中出现有被更新的测试表或者新测试表为例,将被更新的测试表或者新测试表添加到第二测试环境中,以实现所有测试环境中测试信息的同步。以第一测试环境中出现有被更新的测试服务或新服务时,将被更新的测试服务或新服务添加到第二测试环境中,以保证多个测试环境中测试信息的一致性。
在一个可选的方案中,所述第一测试环境的更新信息包括为所述第一测试环境启用的新服务和在所述第一测试环境中生成的新测试表。
可以理解,第一测试环境启用的新服务包括第一测试环境中新创建的服务和/或对第一测试环境中已有服务进行更新后的服务。第一测试环境中生成的新测试表包括对第一测试环境中新测试脚本进行测试后生成的新测试表和/或对第一测试环境中已有测试表进行更新后的测试表。
本申请中,可实现在第一测试环境中的更新信息在其他测试环境中的同步,从而使得不同测试环境中的测试信息保持一致,保证了测试项目在不同测试环境之间的无障碍移植,为提高各测试环境的通用性提供了技术支持。
在一个可选的方案中,在所述第一测试环境的更新信息为为所述第一测试环境启用的新服务的情况下,所述基于第一测试环境的更新信息以及第一测试环境的已有测试信息,获得第一测试环境的最新测试信息,包括:
基于所述新服务对应的分支信息以及第一测试环境中已有测试信息对应的分支信息,得到第一测试环境的分支信息;将第一测试环境的分支信息作为第一测试环境的最新测试信息。
其中,通过读取第一测试环境的已有测试信息对应的分支信息而得到第一测试环境的已有测试信息对应的分支信息。将读取到的第一测试环境的新服务对应的分支信息和已有测试信息对应的分支信息进行集合,即可得到第一测试环境的分支信息。
通俗来讲,第一测试环境的最新测试信息包括第一测试环境的新服务对应的分支信息和第一测试环境的已有测试信息对应的分支信息。第一测试环境的新服务对应的分支信息包括两种不同的情况。第一种情况是新服务对应的分支信息是对已有测试信息对应的分支信息中部分信息的修改。这种情况下,第一测试环境的最新测试信息为修改信息和未修改信息的总和。第二种情况是新服务对应的分支信息是在已有测试信息对应的分支信息的基础上新增的信息。这种情况下,第一测试环境的最新测试信息为新增信息和已有测试信息对应分支信息的总和。
基于其中一个测试环境(第一测试环境)的最新测试信息和其他测试环境(第二测试环境)的最新测试信息,简单可靠地实现各测试环境间测试信息的一致性。可保证测试项目在不同测试环境之间的无障碍移植,为提高各测试环境的通用性提供了技术支持。
在一个可选的方案中,所述第二测试环境的最新测试信息包括第二测试环境的分支信息,如图3所示,所述基于第一测试环境的最新测试信息和至少一个第二测试环境中各第二测试环境的最新测试信息,确定是否对第一测试环境的最新测试信息和/或对各第二测试环境中的至少部分第二测试环境的最新测试信息进行更新,包括:
S203':将第一测试环境的分支信息和各第二测试环境的分支信息进行逐一比对;
S204':基于比对结果以及第一测试环境的分支信息和各第二测试环境的分支信息,确定是否对第一测试环境的最新测试信息和/或对各第二测试环境中的至少部分第二测试环境的最新测试信息进行更新。
在S203'和S204'中,将第一测试环境的分支信息和各第二测试环境的分支信息进行逐一比对,基于比对结果以及各测试环境的分支信息,确定是否进行测试环境的最新测试信息的更新,可提高更新准确性,从而保证不同测试环境的测试信息间的同步准确性。
在S204'中,可通过比对第一测试环境的分支信息与各第二测试环境的分支信息,判断是否应该对第一测试环境和/或各第二测试环境中的至少部分第二测试环境进行更新,以使全部测试环境的测试信息均保持一致。
具体的,将第一测试环境的分支信息与各第二测试环境的分支信息进行比对,比对的内容可以是各测试环境对应的代码,以及各测试环境服务对应的git(分布式版本控制)地址、服务名、分支对应的客户端或服务器名以及分支对应的更新指令等信息。通过信息比对,如果第一测试环境与各第二测试环境的上述比对内容全部一致时,则认为第一测试环境的分支信息与各第二测试环境的分支信息比对为一致,无需对所有测试环境进行更新。如果第一测试环境与至少一个第二测试环境的上述比对内容至少之一存在不一致时,则认为第一测试环境的分支信息与各第二测试环境中的至少一个第二测试环境的分支信息比对为不一致,则需要对第一测试环境和/或至少一个第二测试环境进行测试信息的更新。
在实际应用中,当第一测试环境的更新信息为为第一测试环境启用的新服务的情况下,如图4所示,当第一测试环境中的服务更新完成后,OPS平台接收来自第一测试环境的更新完成指令,该更新完成指令包含有第一测试环境中发生了更新或新增的服务对应的服务名。OPS平台将更新完成指令传输给测试环境管理装置,测试环境管理装置调用应用中心接口从应用中心处获取各第二测试环境对应的代码、服务分支名、git地址、分支对应的客户端或服务器名以及分支对应的更新指令等信息。通过比较上述信息确定是否对第一测试环境和/或至少部分第二测试环境进行更新。
在一个可选的方案中,如果比对结果为第一测试环境的分支信息中出现有至少之一第二测试环境中未出现的分支信息,则将所述未出现的分支信息合并至所述至少之一第二测试环境的分支信息中,以对所述至少之一第二测试环境的最新测试信息进行更新;如果比对结果为至少之一第二测试环境的分支信息中出现有第一测试环境中未出现的分支信息,则将所述未出现的分支信息合并至第一测试环境的分支信息中,以对所述第一测试环境的最新测试信息进行更新。这种比对以及更新的方案可保证不同测试环境中的测试信息的同步准确性。
在实施时,在第一测试环境的分支信息和各第二测试环境的分支信息比对内容为各环境对应的代码的情况下,当第一测试环境的分支信息中存在第二测试环境的分支信息中没有的代码时,将第二测试环境分支信息相对于第一测试环境分支信息而言没有出现的代码合并到第二测试环境分支信息对应的代码中。在实际应用中,相当于调用应用中心接口在应用中心中将第二测试环境部署成第一测试环境,以此来实现第一测试环境和第二测试环境的信息一致。以前述的A环境作为第一测试环境,B环境作为第二测试环境为例,如果A环境的分支信息中存在B环境分支信息中没有的代码a1时,则将a1合并到B环境分支信息对应的代码中,此时A环境和B环境分支信息对应的代码一致。当第二测试环境的分支信息中存在第一测试环境的分支信息中没有的代码时,将第一测试环境的分支信息相对于第二测试环境分支信息而言没有出现的代码合并到第一测试环境分支信息对应的代码中。在实际应用中,相当于调用应用中心接口在应用中心中将第一测试环境部署成为第二测试环境,以此来实现第一测试环境和第二测试环境的信息一致。以前述的A环境作为第一测试环境,B环境作为第二测试环境为例,如果B环境的分支信息中存在A环境分支信息中没有的代码b1时,则将b1合并到A环境分支信息对应的代码中,此时A环境和B环境分支信息对应的代码一致。
这种比对以及更新的方案在工程上易于实现,且可保证不同测试环境中的测试信息的同步准确性。
在一个可选的方案中,如果比对结果为第一测试环境的分支信息中出现有至少之一第二测试环境中未出现的第一分支信息且比对结果为至少之一第二测试环境的分支信息中出现有第一测试环境中未出现的第二分支信息,则将第一分支信息合并至所述至少之一第二测试环境的分支信息中以对所述至少之一第二测试环境的最新测试信息进行更新,以及将第二分支信息合并至第一测试环境的分支信息中,以对第一测试环境的最新测试信息进行更新。
在实施时,在第一测试环境的分支信息和各第二测试环境的分支信息比对内容为各环境对应的代码的情况下,当第一测试环境的分支信息中存在第二测试环境的分支信息中没有的代码,且第二测试环境的分支信息中也存在第一测试环境的分支信息中没有的代码,则分别将第二测试环境的分支信息相对于第一测试环境分支信息而言没有出现的代码合并到第二测试环境的分支信息对应的代码中,以及将第一测试环境的分支信息相对于第二测试环境分支信息而言没有出现的代码合并到第一测试环境的分支信息对应的代码中。在实际应用中,相当于调用应用中心接口在应用中心中将第一测试环境的分支信息对应的代码和第二测试环境的分支信息对应的代码进行合并后重新部署第一测试环境和第二测试环境,此时第一测试环境的分支信息对应的代码和第二测试环境的分支信息对应的代码均为合并后的代码。以前述的A环境作为第一测试环境,B环境作为第二测试环境为例,如果A环境的分支信息中存在B环境分支信息中没有的代码a1,且B环境的分支信息中存在A环境分支信息中没有的代码b1时,则将a1合并到B环境分支信息对应的代码中,及将b1合并到A环境分支信息对应的代码中。此时A环境和B环境分支信息对应的代码一致。这种比对以及更新的方案在工程上易于实现,且可保证不同测试环境中的测试信息的同步准确性。
在一个可选的方案中,所述方法还包括:
创建所述新服务;分别在第一测试环境以及在至少一个第二测试环境下为所述新服务进行参数配置;确定采用各配置参数的所述新服务在各测试环境下是否为正常服务;确定为正常服务时,可在第一测试环境下启用所述新服务。
在实施时,在测试环境管理装置接收到的更新指令中的更新信息为为第一测试环境所启用的新服务的情况下,如图5所示,在接收到客户端或服务器发送的更新指令后,首先要在应用中心进行服务的创建和部署(配置),其中通过以下方式进行新服务的创建和部署(配置):分别在第一测试环境以及各第二测试环境部署Tomcat服务器并启动;Tomcat服务器正常启动后,分别在第一测试环境以及各第二测试环境自动新建服务job并部署master版本;确定部署完成后的服务在第一测试环境以及第二测试环境中是否为正常服务;确定为正常服务时,根据更新信息部署第一测试环境中新服务对应分支;确定部署完对应分支后的新服务在第一测试环境下是否为正常服务,确定为正常服务时,可以在第一测试环境下启用所述新服务。
在实际应用中,分别在第一测试环境以及各第二测试环境中部署Tomcat服务器包括:搭建Tomcat服务器;将Java项目包上传至Tomcat服务器目录下;配置Tomcat服务器端口。通过将项目包添加到Tomcat服务器目录下,使得Tomcat服务器通过配置的端口就可以访问到该项目。
在实际应用中,服务一般依赖于web服务器来部署。Tomcat服务器作为一种最常见的web服务器,在部署Tomcat服务器完成后启动Tomcat服务器。在Tomcat服务器被启动的情况下,分别在第一测试环境以及各第二测试环境自动新建服务job,并将其部署为master版本。部署之后,通过应用中心兼容的sonar平台进行扫描,检查代码缺陷。master版本可以理解为未响应更新指令前各测试环境服务的上线版本,后续操作将会在之前的上线版本基础上进行。在接收到来自客户端或服务器的更新指令后,各环境中部署Tomcat服务器并新建服务job,将各环境新建的服务job部署为各环境未新建服务前的上线版本master,判断部署master版本的服务job在第一测试环境以及各第二测试环境是否为正常服务。如果部署master版本的服务job在其中一个环境中不是正常服务则该服务新建失败,将所有测试环境回退到添加服务之前的状态。如果在所有测试环境中部署master版本的服务job都为正常服务,则部署第一测试环境的新服务对应分支,如果部署完对应分支后的新服务在第一测试环境中是正常服务,则可在第一测试环境下启用新服务。启用新服务后第一测试环境生成更新完成指令,以供后续对更新完成后的第一测试环境以及各第二测试环境进行比对。
这种服务的创建、参数配置以及启用的方案简单易行、在工程上易于实施。该方案为测试环境间测试信息的同步提供了信息基础。
本申请实施例提供一种测试环境管理装置,测试环境管理装置可以是独立于测试设备之外的一个装置以对各测试环境进行管理,也可以作为测试设备内部的管理单元对各测试环境进行管理。如图6所示,所述装置包括:
第一获取单元601,用于获得第一测试环境的更新信息;
第二获取单元602,用于基于第一测试环境的更新信息以及第一测试环境的已有测试信息,获得第一测试环境的最新测试信息;
第一确定单元603,用于基于第一测试环境的最新测试信息和至少一个第二测试环境中各第二测试环境的最新测试信息,确定是否对第一测试环境的最新测试信息和/或对各第二测试环境中的至少部分第二测试环境的最新测试信息进行更新,以使第一测试环境和各第二测试环境之间的测试信息保持一致。
在一个可选的方案中,所述第一测试环境的更新信息包括为所述第一测试环境启用的新服务和在所述第一测试环境中生成的新测试表。
在一个可选的方案中,在所述第一测试环境的更新信息为为所述第一测试环境启用的新服务的情况下,
所述第二获取单元,用于基于所述新服务对应的分支信息以及第一测试环境中已有测试信息对应的分支信息,得到第一测试环境的分支信息;将第一测试环境的分支信息作为第一测试环境的最新测试信息。
在一个可选的方案中,所述第二测试环境的最新测试信息包括第二测试环境的分支信息,
所述第一确定单元,用于将第一测试环境的分支信息和各第二测试环境的分支信息进行逐一比对;基于比对结果以及第一测试环境的分支信息和各第二测试环境的分支信息,确定是否对第一测试环境的最新测试信息和/或对各第二测试环境中的至少部分第二测试环境的最新测试信息进行更新。
在一个可选的方案中,所述第一确定单元,用于
如果比对结果为第一测试环境的分支信息中出现有至少之一第二测试环境中未出现的分支信息,则将所述未出现的分支信息合并至所述至少之一第二测试环境的分支信息中,以对所述至少之一第二测试环境的最新测试信息进行更新;
如果比对结果为至少之一第二测试环境的分支信息中出现有第一测试环境中未出现的分支信息,则将所述未出现的分支信息合并至第一测试环境的分支信息中,以对所述第一测试环境的最新测试信息进行更新。
在一个可选的方案中,所述第一确定单元,用于
如果比对结果为第一测试环境的分支信息中出现有至少之一第二测试环境中未出现的第一分支信息且比对结果为至少之一第二测试环境的分支信息中出现有第一测试环境中未出现的第二分支信息,则将第一分支信息合并至所述至少之一第二测试环境的分支信息中以对所述至少之一第二测试环境的最新测试信息进行更新,以及将第二分支信息合并至第一测试环境的分支信息中,以对第一测试环境的最新测试信息进行更新。
在一个可选的方案中,所述装置还包括:
启用单元,用于创建所述新服务;分别在第一测试环境以及在至少一个第二测试环境下为所述新服务进行参数配置;确定采用各配置参数的所述新服务在各测试环境下是否为正常服务;确定为正常服务时,可在第一测试环境下启用所述新服务。
需要说明的是,本申请实施例的测试环境管理装置,由于该装置解决问题的原理与前述的测试环境管理方法相似,因此,该装置的实施过程、实施原理及有益效果均可以参见前述方法的实施过程、实施原理及有益效果的描述,重复之处不再赘述。
根据本申请的实施例,本申请还提供了一种电子设备和一种可读存储介质。
图7示出了可以用来实施本申请的实施例的示例电子设备700的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。
如图7所示,设备700包括计算单元701,其可以根据存储在只读存储器(ROM)702中的计算机程序或者从存储单元708加载到随机访问存储器(RAM)703中的计算机程序,来执行各种适当的动作和处理。在RAM 703中,还可存储设备700操作所需的各种程序和数据。计算单元701、ROM 702以及RAM 703通过总线704彼此相连。输入/输出(I/O)接口705也连接至总线704。
设备700中的多个部件连接至I/O接口705,包括:输入单元706,例如键盘、鼠标等;输出单元707,例如各种类型的显示器、扬声器等;存储单元708,例如磁盘、光盘等;以及通信单元709,例如网卡、调制解调器、无线通信收发机等。通信单元709允许设备700通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元701可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元701的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元701执行上文所描述的各个方法和处理,例如测试环境管理方法。例如,在一些实施例中,测试环境管理方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元708。在一些实施例中,计算机程序的部分或者全部可以经由ROM 702和/或通信单元709而被载入和/或安装到设备700上。当计算机程序加载到RAM 703并由计算单元701执行时,可以执行上文描述的测试环境管理方法的一个或多个步骤。备选地,在其他实施例中,计算单元701可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行测试环境管理方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本申请的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本申请的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式系统的服务器,或者是结合了区块链的服务器。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或隐含地包括至少一个该特征。在本申请的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。