发明内容
针对现有技术的以上缺陷或改进需求,本发明提供了一种自动部署测试软件的方法以及相应的装置,其目的在于本发明采用自动化的方式部署待测试软件,可以有效减少测试人员的工作量,提高测试效率。同时,采用自动化的方式部署测试软件,可以有效降低部署出错的概率,提高软件测试的准确率和可信度。
为实现上述目的,按照本发明的一个方面,提供了一种自动部署测试软件的方法,所述自动部署测试软件的方法包括:
获取待测试软件;
解析所述待测试软件,得到与所述待测试软件相匹配的目标测试环境;
依据所述目标测试环境选择目标测试机器,将所述待测试软件发送至所述目标测试机器;
驱动所述目标测试机器安装所述待测试软件,以进行软件测试。
优选地,所述待测试软件携带有同步模式配置文件;
解析所述待测试软件,得到与所述待测试软件相匹配的目标测试环境包括:
解析所述同步模式配置文件,确定所述待测试软件需要部署的源端测试机器的数目和目的端测试机器的数目;
解析所述待测试软件的名称和/或属性,得到与所述待测试软件相匹配的数据库类型、操作系统类型和/或CPU类型,以得到与所述待测软件相匹配的目标测试环境。
优选地,所述自动部署测试软件的方法设置在自动部署装置上,所述自动部署装置上设置有测试环境配置文件,其中,所述测试环境配置文件包括:测试机器的IP地址,以及每一测试机器对应的数据库类型、操作系统和CPU类型;
依据所述目标测试环境选择目标测试机器,将所述待测试软件发送至所述目标测试机器包括:
解析所述测试环境配置文件,确定与所述待测试软件对应的数据库类型、操作系统和/或CPU类型相匹配的目标测试机器;
将所述待测试软件发送至所述目标测试机器。
优选地,驱动所述目标测试机器安装所述待测试软件,以进行软件测试具体包括:
判断确定所述目标测试机器是否安装过测试软件;
若所述目标测试机器安装过测试软件,则重新设定所述待测试软件的安装路径,驱动所述目标测试机器将所述待测试软件安装在重新设定的安装路径下,以进行软件测试;
若所述目标测试机器未安装过测试软件,则获取所述待测试软件的默认安装路径,驱动所述目标测试机器将所述待测试软件安装在默认安装路径下,以进行软件测试。
优选地,所述驱动所述目标测试机器安装所述待测试软件,以进行软件测试包括:
依据所述待测试软件以及与所述待测试软件相匹配的目标测试机器,生产安装脚本;
将所述安装脚本发送至所述目标测试机器,在所述安装脚本的驱动下,将所述待测试软件安装于所述目标测试机器上,以进行软件测试。
优选地,驱动所述目标测试机器安装所述待测试软件,以进行软件测试之后还包括:
获取所述待测试软件在所述目标测试机器上的运行时间;
若所述运行时间大于预设的时间阈值,则依据所述待测试软件的目标测试环境,重新确定备选测试机器;
当所述待测试软件在所述目标测试机器上运行失败时,则采用备选测试机器对所述待测试软件进行测试。
优选地,待测试软件的数目为多个,具体包括第一待测试软件和第二待测试软件,所述第二待测试软件的优先级高于所述第一待测试软件,所述第一待测试软件和所述第二待测试软件之间存在相同的目标测试机器,其中,所述目标测试机器正在对所述第一待测试软件进行测试;
所述自动部署测试软件的方法还包括:
计算所述目标测试机器完成测试所述第一待测试软件所需的测试时间;
判断所述测试时间是否不大于所述第二待测试软件可接受的等待时间;
若所述测试时间不大于所述第二待测试软件可接受的等待时间,则等待所述第一待测试软件完成测试后,将所述第二待测试软件部署至所述目标测试机器上。
优选地,所述自动部署测试软件的方法还包括:
若所述测试时间大于所述第二待测试软件可接受的等待时间,则暂停对所述第一待测试软件进行测试,并将所述第二待测试软件部署至所述目标测试机器上,以对所述第二待测试软件进行测试。
优选地,所述获取待测试软件包括:
按照预设的时间间隔,扫描软件包仓库;
当所述软件包仓库中存在新增的待测试软件时,则将所述待测试软件下载至本地。
按照本发明的另一方面,提供了一种自动部署装置,包括至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被程序设置为执行本发明所述的自动部署测试软件的方法。
总体而言,通过本发明所构思的以上技术方案与现有技术相比,具有如下有益效果:本发明提供一种自动部署测试软件的方法,该自动部署测试软件的方法包括:获取待测试软件,解析待测试软件,得到与待测试软件相匹配的目标测试环境,依据目标测试环境选择目标测试机器,将待测试软件发送至目标测试机器;驱动目标测试机器安装待测试软件,以进行软件测试。本发明的自动部署测试软件的方法可以自动下载待测试软件,并根据待测试软件的自身信息以及外部配置文件信息,确定待测试软件的目标测试环境,并将待测试软件上传至目标测试环境,实现待测试软件的自动安装以及测试,从而有效减少测试人员的工作量,提高测试效率。同时,采用自动化的方式部署测试软件,可以有效降低部署出错的概率,提高软件测试的准确率和可信度。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
实施例1:
本实施例提供一种自动部署测试软件的方法,该自动部署测试软件的方法,采用自动化测试的方式取代人工测试,可以有效减少测试人员的工作量,提高测试效率。本实施例的自动部署测试软件是设置在自动部署装置上的,该自动部署装置具体可以为服务器,参阅图1,本实施例的自动部署测试软件的方法包括如下步骤:
步骤10:获取待测试软件。
在本实施例中,待测试软件为同步软件,该待测试软件可以是开发团队完成新版本测试软件开发后,上传至软件包仓库(例如,软件包仓库可以是一服务器,用于存储所有的待测试软件)。其中,待测试软件可以为新类型的同步软件,或者,可以是已经存在的某一类型的同步软件的更新版本。
在实际应用场景下,自动部署装置按照预设的时间间隔,扫描软件包仓库,其中,预设的时间间隔可以根据实际测试工作进行配置,或者,可以根据开发人员更新测试软件的进度进行设置,例如,预设的时间间隔可以为1小时、6小时或者24小时等。当扫描到所述软件包仓库中存在新增的待测试软件后,判断该新增的待测试软件是否需要进行测试,若需要,则将所述待测试软件下载至本地。
在另一个应用场景下,自动部署装置可以与软件包仓库建立实时通信,当软件包仓库上新增待测试软件后,软件包仓库向自动部署装置发送测试请求,自动部署装置响应所述测试请求,并从软件包仓库中下载对应的待测试软件。
步骤11:解析所述待测试软件,得到与所述待测试软件相匹配的目标测试环境。
其中,针对数据同步软件,当源端和目的端对应的环境信息不同时,数据同步软件的设计也存在差异。为了更真实地反映同步软件的性能,需要将同步软件放置在与之相匹配的测试环境下进行软件测试。其中,数据库类型、操作系统和/或CPU类型等信息均会影响着同步软件的设计。因此,需要根据数据库类型、操作系统和/或CPU类型等信息确定相应的目标测试环境。
步骤12:依据所述目标测试环境选择目标测试机器,将所述待测试软件发送至所述目标测试机器。
其中,本实施例的待测试软件主要用于数据同步使用,目标测试机器的数目至少为两个。
在本实施例中,所述自动部署装置上设置有测试环境配置文件,其中,所述测试环境配置文件包括:测试机器的IP地址,以及每一测试机器对应的数据库类型、操作系统以及CPU类型。
自动部署装置依据目标测试环境从众多测试机器中选择合适的测试机器,作为目标测试机器。其中,可以按照参数一一匹配的方式选择目标测试机器,例如,待测试软件对应的目标测试环境为:数据库类型为oracle,操作系统为windows,CPU类型为龙芯;则在众多测试机器中选择与前述三种参数(数据库、操作系统、CPU)相同的测试机器,作为目标测试机器。
在实际应用场景下,可能不存在满足各项参数均相同的测试机器,此时,可以选择匹配度最高的测试机器作为目标测试机器,或者,采用具有兼容性的测试机器作为目标测试机器。或者,满足各项参数的测试机器正在对其他测试软件进行测试,由于资源限制,目前无法将该待测试软件部署到该测试机器上,而目前需要尽快对该待测试软件进行测试,则可以选择匹配度最高的测试机器作为目标测试机器,或者,采用具有兼容性的测试机器作为目标测试机器。
步骤13:驱动所述目标测试机器安装所述待测试软件,以进行软件测试。
在本实施例中,选择好目标测试机器后,将该待测试软件发送至目标测试机器,并远程驱动所述目标测试机器安装所述待测试软件,安装完成后,运行该待测试软件,以进行软件测试。
本实施例的自动部署测试软件的方法可以自动下载待测试软件,并根据待测试软件的自身信息以及外部配置文件信息,确定待测试软件的目标测试环境,并将待测试软件上传至目标测试环境,实现待测试软件的自动安装以及测试,从而有效减少测试人员的工作量,提高测试效率。同时,采用自动化的方式部署测试软件,可以有效降低部署出错的概率,提高软件测试的准确率和可信度。
在本实施例中,所述待测试软件携带有同步模式配置文件,在步骤11中,解析所述待测试软件,得到与所述待测试软件相匹配的目标测试环境包括:
解析所述同步模式配置文件,确定所述待测试软件需要部署的源端测试机器的数目和目的端测试机器的数目。其中,不同的同步模式,源端和目的端的数目也相应不同,例如,一对一同步时,源端和目的端的数目各为1个;一对多同步时,存在源端的数目为1个,目的端的数目为多个,或,源端数目为多个,目的端数目为1个的情况;还存在多节点级联的同步模式。
在同步模式配置文件中,会记录该待测试软件所需要部署的机器的数目,例如,需要1台测试机器作为源端,2台测试机器作为目的端;或者,2台测试机器作为源端,1台测试机器作为目的端。在本实施例中,首先根据同步模式配置文件确定源端与目的端的数目,然后,再确定每个测试机器所应满足的测试环境。
在本实施例中,每个待测试软件具有统一的命名格式,例如,命名格式为:同步软件名称+数据库类型名称+操作系统类型名称+日期;当涉及特殊的CPU时,命名格式为:同步软件名称+数据库类型名称+操作系统名称+CPU类型名称+日期。通过解析所述待测试软件的名称,得到与所述待测试软件相匹配的数据库类型、操作系统类型和/或CPU类型,以得到与所述待测软件相匹配的目标测试环境。
在另一个实施例中,每个待测试软件对应的数据库类型、操作系统类型和/或CPU类型,也可记录在每个待测试软件的属性信息中,通过解析所述待测试软件的名称,得到与所述待测试软件相匹配的数据库类型、操作系统类型和/或CPU类型,以得到与所述待测软件相匹配的目标测试环境。
在具体应用场景下,所述自动部署测试软件的方法设置在自动部署装置上,所述自动部署装置上设置有测试环境配置文件,其中,所述测试环境配置文件包括:测试机器的IP地址,以及每一测试机器对应的数据库类型、操作系统以及CPU类型。其中,测试机器具体可以为服务器。
在步骤12中,依据所述目标测试环境选择目标测试机器,将所述待测试软件发送至所述目标测试机器具体包括:解析所述测试环境配置文件,确定与所述待测试软件对应的数据库类型、操作系统和/或CPU类型相匹配的目标测试机器;将所述待测试软件发送至所述目标测试机器。
此外,测试环境配置文件中还包括有待测试软件的归档路径,以及各测试机器的用户名和密码。例如,IP地址为192.168.8.241的测试机器的环境为:待测试软件的归档路径为/opt/installsoft,操作系统的类型为redhat6,数据库的类型为db2V9.7。如此,根据步骤11中解析出来的数据库类型和操作系统类型等信息,便可初步确定该待测试软件对应的待部署的测试机器。
通常情况下,会有多台相同配置的测试机器,例如,IP地址为192.168.8.241的测试机器、IP地址为192.168.8.242的测试机器、IP地址为192.168.8.243的测试机器上安装的操作系统和数据库都是一样的,具体确定哪个测试机器为目标测试机器,可以综合评价每个测试机器的资源情况而定。
在实际应用场景下,由于测试环境通常是共同使用,在同一台测试机器上,可能同时运行多个测试软件,为了实现资源的合理利用,可以实时监测各测试机器的资源使用情况,其中,监测指标包括CPU使用情况、内存占用情况、磁盘IO等信息,在参数匹配度相同的情况下,优先选用资源最充分的测试机器作为目标测试机器。
在本实施例中,在不同的时间段或者相同的时刻,测试机器可以对多个不同的测试软件进行测试,当测试软件的类型不同时,需要将测试软件安装在不同的安装路径下,以避免不同的待测试软件之间存在冲突。
因此,如图3所示,在步骤13中,驱动所述目标测试机器安装所述待测试软件,以进行软件测试具体包括如下步骤:
步骤131:判断确定所述目标测试机器是否安装过测试软件。
在本实施例中,通过全局扫描的方式,确定所述目标测试机器是否安装过测试软件。一般而言,目标测试机器对第一个测试软件进行测试时,会将第一个测试软件安装在默认的安装路径下,基于此特性,为了提高处理的效率,可以直接定位到默认的安装路径,查看默认安装路径下是否安装有测试软件。
步骤132:若所述目标测试机器安装过测试软件,则重新设定所述待测试软件的安装路径,驱动所述目标测试机器将所述待测试软件安装在重新设定的安装路径下,以进行软件测试。
当目标测试机器安装过测试软件,则需要重新设定所述待测试软件的安装路径,驱动所述目标测试机器将所述待测试软件安装在重新设定的安装路径下,以进行软件测试。其中,重新设定的安装路径可以依据实际情况而定,在此不做具体限制。
步骤133:若所述目标测试机器未安装过测试软件,则获取所述待测试软件的默认安装路径,驱动所述目标测试机器将所述待测试软件安装在默认安装路径下,以进行软件测试。
当目标测试机器未安装过测试软件,则获取所述待测试软件的默认安装路径,驱动所述目标测试机器将所述待测试软件安装在默认安装路径下,以进行软件测试。其中,默认安装路径可以通过读取测试环境配置文件而获得。
在本实施例中,为了实现自动安装,在选择好目标测试机器后,生产安装脚本,实现待测试软件的自动安装以及参数配置。在不同的操作系统下编写安装脚本时,虽然安装脚本的执行流程是固定的,但是由于不同操作系统下各脚本语言对应的语法存在一些差异,因此,需要依据目标测试机器的操作系统,生成与之相匹配的安装脚本。
具体地,依据所述待测试软件以及与所述待测试软件相匹配的目标测试机器,生产安装脚本;将所述安装脚本发送至所述目标测试机器,在所述安装脚本的驱动下,将所述待测试软件安装于所述目标测试机器上,以进行软件测试。
在本实施例中,当选择好目标测试机器后,将待测试软件的名称与目标测试机器的信息,建立映射关系,并将该映射关系写入到测试环境配置文件中,一方面用于生成安装脚本,另一方面用于判断每个测试机器的资源使用情况。其中,目标测试机器的信息包括目标测试机器的IP地址、目标测试机器的操作系统类型、目标测试机器的数据库类型、待测试软件归档路径和待测试软件的安装路径。
下面举例说明映射关系的格式,如下:
xxx_db2V9.7_rh6_20190101(待测试软件名称)--------------192.168.8.241(测试机器的IP地址),redhat6(测试机器的操作系统类型),db2V9.7(测试机器的数据库类型),/opt/install(待测试软件归档路径),/opt/xxx(待测试软件的安装路径)
xxx_db2V9.7_rh6_20190101--------------192.168.8.242,redhat6,db2V9.7,/opt/install,/opt/xxx
进一步地,将待测试软件以及安装脚本发送至目标测试机器,然后远程执行安装脚本,当安装脚本执行完成后,读取安装日志,以确定本次安装是否成功。当待测试软件安装成功后,在测试环境配置文件中,添加软件安装成功的标志位。如果待测试软件安装失败,则根据报错原因进行问题排查,以确定故障原因,并重新安装待测试软件。必要的情况下,可以上报安装失败的提示信息,提示操作人员排查故障原因。
实施例2:
在实际测试过程中,可能会在较短的时间内部署多个待测试软件,由于每个测试机器的资源有限,与某个待测试软件相匹配的目标测试机器,可能正在测试先到达的待测试软件,而且,由于资源的限制,当前时刻无法将该待测试软件安装的对应的目标测试软件上,为了提高测试的效率,此时,存在的一种解决方案是,退而求其次,选择另一个测试机器作为目标测试机器对待测试软件进行测试,但是,在测试的过程中,有可能会存在测试失败或测试结果不佳的情况发生,为了解决此问题本实施例提供的另一种自动部署测试软件的方法。
如图4所示,该自动部署测试软件的方法包括如下步骤:
步骤20:获取待测试软件。
步骤21:解析所述待测试软件,得到与所述待测试软件相匹配的目标测试环境。
步骤22:依据所述目标测试环境选择目标测试机器,将所述待测试软件发送至所述目标测试机器。
步骤23:驱动所述目标测试机器安装所述待测试软件,以进行软件测试。
其中,步骤20~步骤23与上述实施例1中的步骤10~步骤13,实现方式基本相同,具体可以参照实施例1中的描述。不过,本实施例的目标测试机器不是性能最好或者匹配度最佳的测试机器(如前述问题分析,性能最好的测试机器正在被占用中)。
步骤24:获取所述待测试软件在所述目标测试机器上的运行时间。
在本实施例中,待测试软件完成测试的时间一般会满足预设的时间阈值,其中,时间阈值可以是开发人员依据程序设计,进行预估的时间。如果待测试软件在目标测试机器上的运行时间较长,可能会出现待测试软件运行不正常的情况发生,进而导致测试结果失败或不佳。
步骤25:若所述运行时间大于预设的时间阈值,则依据所述待测试软件的目标测试环境,重新确定备选测试机器。
步骤26:当所述待测试软件在所述目标测试机器上运行失败时,则采用备选测试机器对所述待测试软件进行测试。
为了能够及时发现该问题,并提供备选测试机器,在本实施例中,实时获取所述待测试软件在所述目标测试机器上的运行时间,若所述运行时间大于预设的时间阈值,则依据所述待测试软件的目标测试环境,重新确定备选测试机器,当所述待测试软件在所述目标测试机器上运行失败时,则采用备选测试机器对所述待测试软件进行测试。其中,当前述正在占用的最佳测试机器上的测试任务完成后,可以将该测试机器标记为备选测试机器,或者为其他与该待测试软件相匹配的测试机器。
在另一个应用场景下,当前来了一个优先级较高的测试任务,但是与其要求吻合的机型被其他测试任务占用,为了避免等待时间过长,可以采用如下方案,进行测试软件的部署。
本实施例适用的应用场景可以理解为:待测试软件的数目为多个,具体包括第一待测试软件和第二待测试软件,所述第二待测试软件的优先级高于所述第一待测试软件,所述第一待测试软件和所述第二待测试软件之间存在相同的目标测试机器,其中,所述目标测试机器正在对所述第一待测试软件进行测试。如图5所示,本实施例的自动部署测试软件的方法包括如下步骤:
步骤30:获取待测试软件。
步骤31:解析所述待测试软件,得到与所述待测试软件相匹配的目标测试环境。
步骤32:依据所述目标测试环境选择目标测试机器,将所述待测试软件发送至所述目标测试机器。
步骤33:驱动所述目标测试机器安装所述待测试软件,以进行软件测试。
其中,步骤20~步骤23与上述实施例1中的步骤10~步骤13,实现方式基本相同,具体可以参照实施例1中的描述。前述的待测试软件可以理解为第一待测试软件。
步骤34:计算所述目标测试机器完成测试第一待测试软件所需的测试时间。
步骤35:判断所述测试时间是否不大于所述第二待测试软件可接受的等待时间。
步骤36:若所述测试时间不大于所述第二待测试软件可接受的等待时间,则等待所述第一待测试软件完成测试后,将所述第二待测试软件部署至所述目标测试机器上。
步骤37:若所述测试时间大于所述第二待测试软件可接受的等待时间,则暂停对所述第一待测试软件进行测试,并将所述第二待测试软件部署至所述目标测试机器上,以对所述第二待测试软件进行测试。
进一步地,在等待过程中,可以将第二待测试软件进行拆分,将与该等待加入的目标测试机器相关的测试项目剥离出来,先在其他测试机器上完成与等待加入的目标测试机器无关的测试项目,后续该目标测试机器进入测试环境后,完成剥离出的测试项目,进行无缝衔接的操作,可以进一步提高测试的效率。
本发明各实施例的自动部署测试软件的方法可以自动下载待测试软件,并根据待测试软件的自身信息以及外部配置文件信息,确定待测试软件的目标测试环境,并将待测试软件上传至目标测试环境,实现待测试软件的自动安装以及测试,从而有效减少测试人员的工作量,提高测试效率。同时,采用自动化的方式部署测试软件,可以有效降低部署出错的概率,提高软件测试的准确率和可信度。
实施例3:
请参阅图6,图6是本发明实施例提供的一种自动部署装置的结构示意图。本实施例的自动部署装置包括一个或多个处理器41以及存储器42。其中,图6中以一个处理器41为例。
处理器41和存储器42可以通过总线或者其他方式连接,图6中以通过总线连接为例。
存储器42作为一种基于自动部署测试软件的方法的非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如实施例1或实施例2中的自动部署测试软件的方法以及对应的程序指令。处理器41通过运行存储在存储器42中的非易失性软件程序、指令以及模块,从而执行自动部署测试软件的方法的各种功能应用以及数据处理,实现实施例1或实施例2的自动部署测试软件的方法的功能。
其中,存储器42可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器42可选包括相对于处理器41远程设置的存储器,这些远程存储器可以通过网络连接至处理器41。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
关于自动部署测试软件的方法请参照图1~图5及相关的文字描述在此,不再赘述。
值得说明的是,上述装置和系统内的模块、单元之间的信息交互、执行过程等内容,由于与本发明的处理方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
本领域普通技术人员可以理解实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(Read Only Memory,简写为ROM)、随机存取存储器(Random AccessMemory,简写为RAM)、磁盘或光盘等。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。