测试环境的生成方法、装置、设备和计算机可读存储介质转让专利

申请号 : CN202111280120.8

文献号 : CN113704136B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 吴德源

申请人 : 深圳市明源云科技有限公司

摘要 :

本发明公开了一种测试环境的生成方法、装置、设备和计算机可读存储介质,所述方法包括以下步骤:接收测试环境生成参数;根据所述测试环境生成参数生成测试环境;输出所述测试环境中应用程序的访问地址。通过本发明可以在为每一位用户按需自动生成动态配置的测试环境,避免了重复劳动造成的大量时间浪费。

权利要求 :

1.一种测试环境的生成方法,其特征在于,所述方法包括以下步骤:接收输入的测试环境生成参数,所述测试环境生成参数包括用户名称;

根据所述测试环境生成参数生成测试环境;

根据所述用户名称生成所述测试环境中应用程序的访问地址,输出所述访问地址;

其中,所述测试环境生成参数包括部署类型和数据库类型,所述访问地址包括应用端口值,所述根据所述用户名称生成所述测试环境中应用程序的访问地址的步骤包括:将所述用户名称转换为名称对应值;

将所述部署类型和所述数据库类型转换为对应的二进制值;

根据所述名称对应值和所述二进制值计算所述应用程序的应用端口值。

2.如权利要求1所述的测试环境的生成方法,其特征在于,所述测试环境生成参数包括分支名称,所述测试环境包括应用程序,所述根据所述测试环境生成参数生成测试环境的步骤包括:

构建所述分支名称对应的项目代码;

对所述项目代码进行预设的镜像处理制作应用镜像;

根据所述应用镜像创建应用程序。

3.如权利要求2所述的测试环境的生成方法,其特征在于,所述根据所述应用镜像创建应用程序的步骤之后包括:

若所述应用程序为多个,则采用串行启动的方式启动各所述应用程序中存在依赖关系的应用程序,并采用并行启动的方式启动各所述应用程序中不存在依赖关系的应用程序。

4.如权利要求1所述的测试环境的生成方法,其特征在于,所述根据所述名称对应值和所述二进制值计算所述应用程序的应用端口值的步骤包括:确定所述测试环境中能够容纳最多应用程序个数的应用最大值;

通过所述部署类型和数据库类型的总数确定所有部署类型和数据库类型的排列组合数量;

通过选择的部署类型和数据库类型确定排列组合序号;

根据所述名称对应值、应用最大值、排列组合数量和排列组合序号确定应用端口值。

5.如权利要求4所述的测试环境的生成方法,其特征在于,所述根据所述名称对应值、应用最大值、排列组合数量和排列组合序号确定应用端口值的步骤包括:获取预设的应用编码和端口起点值;

计算所述名称对应值、所述应用最大值和所述排列组合数量的乘积以获得第一乘积;

计算所述排列组合数量和预设的应用编码的乘积以获得第二乘积;

计算所述第一乘积、第二乘积、预设的端口起点值、排列组合序号之间的和值,并将所述和值作为应用端口值。

6.如权利要求3所述的测试环境的生成方法,其特征在于,所述访问地址包括服务器地址和拼接端口值,所述输出所述测试环境中应用程序的访问地址的步骤包括:获取所述测试环境的服务器地址;

将所述测试环境中的所有应用端口值进行拼接得到拼接端口值;

输出所述服务器地址和所述拼接端口值,将所述拼接端口值和所述服务器地址作为访问地址。

7.一种测试环境的生成装置,其特征在于,所述测试环境的生成装置包括:参数接收模块,用于接收输入的测试环境生成参数,所述测试环境生成参数包括用户名称;

测试环境生成模块,用于根据所述测试环境生成参数生成测试环境;

访问地址输出模块,用于根据所述用户名称生成所述测试环境中应用程序的访问地址,输出所述访问地址;

其中,所述测试环境生成参数包括部署类型和数据库类型,所述访问地址包括应用端口值,所述根据所述用户名称生成所述测试环境中应用程序的访问地址的步骤包括:将所述用户名称转换为名称对应值;

将所述部署类型和所述数据库类型转换为对应的二进制值;

根据所述名称对应值和所述二进制值计算所述应用程序的应用端口值。

8.一种测试环境的生成设备,其特征在于,包括存储器、处理器、以及存储在所述存储器上并可在所述处理器上运行的测试环境的生成应用程序,所述测试环境的生成应用程序被处理器执行时实现如权利要求1至6中任一项所述测试环境的生成方法的步骤。

9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有测试环境的生成应用程序,所述测试环境的生成应用程序被处理器执行时实现如权利要求1至6中任一项所述测试环境的生成方法的步骤。

说明书 :

测试环境的生成方法、装置、设备和计算机可读存储介质

技术领域

[0001] 本发明涉及开发测试领域,具体涉及一种测试环境的生成方法、装置、设备和计算机可读存储介质。

背景技术

[0002] 在项目迭代开发过程中,随着项目团队中开发人员的职责任务越来越独立分离,每个开发人员都会被要求在主干分支的基础上新建属于自己的特性分支,然后在其上进行
独立的开发。在开发任务完成之后,将特性分支上的改动合并到主干分支之前,测试人员需
要对其改动内容进行测试。一般情况下,测试环境只有一套,而特性分支有多个,需要在这
一套测试环境上来回切换分支重新构建部署应用,这样一来颇耗时间。尤其是在特性分支
上测试出Bug(程序故障)的时候,测试人员要么等待 Bug 修复,其它特性分支的任务搁置,
这样白白浪费大量的测试人员的时间;要么先切换到其它特性分支测试,Bug被修复后再切
换回来,在这种情况下如果不同的特性分支的环境配置有差异,手工配置下会出现重复劳
动,甚至极易出错,排错过程也会花费不少的时间。

发明内容

[0003] 本发明提供了一种测试环境的生成方法、装置、设备和计算机可读存储介质,旨在解决项目测试的过程中浪费大量时间的技术问题。
[0004] 为实现上述目的,本发明提供了一种测试环境的生成方法,该方法包括以下步骤:
[0005] 接收输入的测试环境生成参数,所述测试环境生成参数包括用户名称;
[0006] 根据所述测试环境生成参数生成测试环境;
[0007] 根据所述用户名称生成所述测试环境中应用程序的访问地址,输出所述访问地址。
[0008] 可选地,获取所述分支名称对应的项目代码;
[0009] 构建所述项目代码并对所述项目代码进行预设的镜像处理制作应用镜像;
[0010] 根据所述应用镜像创建应用程序。
[0011] 可选地,若所述应用程序为多个,则采用串行启动的方式启动各所述应用程序中存在依赖关系的应用程序,并采用并行启动的方式启动各所述应用程序中不存在依赖关系
的应用程序。
[0012] 可选地,将所述用户名称转换为名称对应值;
[0013] 将所述部署类型和所述数据库类型转换为对应的二进制值;
[0014] 根据所述名称对应值和所述二进制值计算所述应用程序的应用端口值。
[0015] 可选地,确定所述测试环境中能够容纳最多应用程序个数的应用最大值;
[0016] 通过所述部署类型和数据库类型的总数确定所有部署类型和数据库类型的排列组合数量;
[0017] 通过选择的部署类型和数据库类型确定排列组合序号;
[0018] 根据所述名称对应值、应用最大值、排列组合数量和排列组合序号确定应用端口值。
[0019] 可选地,获取预设的应用编码和端口起点值;
[0020] 计算所述名称对应值、所述应用最大值和所述排列组合数量的乘积以获得第一乘积;
[0021] 计算所述排列组合数量和预设的应用编码的乘积以获得第二乘积;
[0022] 计算所述第一乘积、第二乘积、预设的端口起点值、排列组合序号之间的和值,并将所述和值作为应用端口值。
[0023] 可选地,获取所述测试环境的服务器地址;
[0024] 将所述测试环境中的所有应用端口值进行拼接得到拼接端口值;
[0025] 输出所述服务器地址和所述拼接端口值。
[0026] 可选地,为实现上述目的,本申请还提出一种测试环境的生成装置,测试环境的生成装置包括参数接收模块、测试环境生成模块和访问地址输出模块。所述参数接收模块用
于接收输入的测试环境生成参数,所述测试环境生成参数包括用户名称;所述测试环境生
成模块用于根据所述测试环境生成参数生成测试环境,所述访问地址输出模块用于根据所
述用户名称生成所述测试环境中应用程序的访问地址,输出所述访问地址。
[0027] 为实现上述目的,本申请还提出一种测试环境的生成设备,测试环境的生成设备包括存储器、处理器、以及存储在所述存储器上并可在所述处理器上运行的测试环境的生
成应用程序,所述测试环境的生成应用程序被处理器执行时实现所述测试环境的生成方
法。
[0028] 为实现上述目的,本申请还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有测试环境的生成应用程序,所述测试环境的生成应用程序被处理器执行时实
现所述测试环境的生成方法。
[0029] 本发明技术方案中,服务器会接收用户输入的测试环境生成参数;并根据所述测试环境生成参数生成测试环境;在测试环境生成之后,向用户输出所述测试环境中应用程
序的访问地址。通过这种方式,可以根据不同的测试环境生成参数,为每一位用户按需自动
生成动态配置的测试环境,而不同于现有技术中所有用户共用一套测试环境,因此避免了
用户在测试前选择配置项的重复劳动和资源得不到有效利用的情况,节省了大量测试时
间。

附图说明

[0030] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本
发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以
根据这些附图示出的结构获得其他的附图。
[0031] 图1为本发明一实施例的测试环境的生成方法的模块结构示意图;
[0032] 图2为本发明一实施例的测试环境的生成方法的流程图;
[0033] 图3为本发明一实施例的测试环境的生成方法的模块结构图。

具体实施方式

[0034] 应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0035] 请参照图1,图1为本发明各个实施例中所提供的测试环境的生成设备的硬件结构示意图。所述测试环境的生成设备包括执行模块01、存储器02、处理器03、电池系统等部件。
本领域技术人员可以理解,图1中所示出的设备还可以包括比图示更多或更少的部件,或者
组合某些部件,或者不同的部件布置。其中,所述处理器03分别与所述存储器02和所述执行
模块01连接,所述存储器02上存储有测试环境的生成应用程序,所述测试环境的生成应用
程序同时被处理器03执行。
[0036] 执行模块01,可接收输入的测试环境生成参数,并根据测试环境生成参数生成测试环境,同时反馈以上信息发送给所述处理器03。
[0037] 存储器02,可用于存储软件程序以及各种数据。存储器02可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等;存储
数据区可存储根据物联网终端的使用所创建的数据或信息等。此外,存储器02可以包括高
速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、
或其他易失性固态存储器件。
[0038] 处理器03,是处理平台的控制中心,利用各种接口和线路连接整个物联网终端的各个部分,通过运行或执行存储在存储器02内的软件程序和/或模块,以及调用存储在存储
器02内的数据,执行物联网终端的各种功能和处理数据,从而对测试环境的生成设备进行
整体监控。处理器03可包括一个或多个处理单元;优选的,处理器03可集成应用处理器和调
制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处
理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器03中。
[0039] 本领域技术人员可以理解,图1中示出的测试环境的生成设备结构并不构成对设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
[0040] 根据上述硬件结构,提出本发明方法各个实施例。
[0041] 参照图2,在本发明测试环境的生成方法的第一实施例中,所述测试环境的生成方法包括:
[0042] 步骤S100,接收输入的测试环境生成参数,所述测试环境生成参数包括用户名称;
[0043] 在项目迭代开发过程中,随着项目团队中开发人员的职责任务越来越独立分离,每个开发人员都会被要求在主干分支的基础上新建属于自己的特性分支,然后在其上进行
独立的开发。在开发任务完成之后,将特性分支上的改动合并到主干分支之前,测试人员需
要对其改动内容进行测试。一般情况下,测试环境只有一套,而特性分支有多个,需要在这
一套测试环境上来回切换分支重新构建部署应用,这样一来颇耗时间。尤其是在特性分支
上测试出Bug(程序故障)的时候,测试人员要么等待 Bug 修复,其它特性分支的任务搁置,
这样白白浪费大量的测试人员的时间;要么先切换到其它特性分支测试,Bug被修复后再切
换回来,在这种情况下如果不同的特性分支的环境配置有差异,手工配置下会出现重复劳
动,甚至极易出错,排错过程也会花费不少的时间。
[0044] 此外,应用测试环境之前还需要进行两个环境属性选择,即选择部署类型和数据库类型,不同的选择意味着要进行不同的环境配置。在进行环境配置的过程中,测试人员同
样会进行大量容易出错的重复劳动,从而浪费大量的时间。
[0045] 为了解决上述测试过程中对时间浪费的问题,本申请提出了一种测试环境的生成方法,旨在为每一位开发人员按需自动生成动态配置的测试环境。具体地,在本实施例中,
每一位开发人员生成其对应的测试环境之前,都需要输入测试环境生成参数。测试环境生
成参数中包括开发人员的用户名称,可通过用户名称标识测试环境,若检测到存在该用户
名称对应的测试环境,则更新该测试环境;若不存在该用户名称对应的测试环境,则新建一
个测试环境。如此一来,就能够保证每个开发人员都有且仅有一个对应的测试环境。
[0046] 在一些实施例中,测试环境生成参数至少包括测试环境的分支名称、用户名称、部署类型和数据库类型。具体地,部署类型和数据库类型由用户在预先设定好的多个选项中
进行选择,其中,测试环境的部署类型包括分离部署和集中部署,数据库类型包括Mysql数
据库和SqlServer数据库。而分支名称和用户名称则由用户进行填写。
[0047] 步骤S200,根据所述测试环境生成参数生成测试环境;
[0048] 本实施例中,在接收到测试环境生成参数之后,服务器会根据测试环境生成参数自动生成测试环境。具体地,在一些实施例中,测试环境通过Jenkins进行部署,其中,
Jenkins是一个开源的、提供友好操作界面的持续集成工具,主要用于持续、自动的构建/测
试软件项目、监控外部任务的运行。在开发人员输入完所有测试环境生成参数至Jenkins之
后,会点击启动构建的按钮。Jenkins即会自动获取该测试环境中将要构建的多个应用程
序,并自动计算这多个应用程序各自的应用端口值;然后构建这些应用程序的项目代码,并
制作这些应用程序的应用镜像,该应用镜像可以为Docker镜像;在制作完成应用镜像之后,
通过应用镜像创建其对应的可执行的应用程序;并使这些应用程序与之前计算得到的应用
端口值呈一一对应的映射关系。
[0049] 步骤S300,根据所述用户名称生成所述测试环境中应用程序的访问地址,输出所述访问地址。
[0050] 本实施例中,在测试环境生成之后,即测试环境中的所有应用程序均创建完成之后,需要启动这些应用程序,并根据输入的用户名称生成测试环境中这些应用程序的访问
地址,然后输出这些应用程序的访问地址,使得开发人员或其他用户可根据输出的访问地
址访问对应的应用程序。具体地,启动应用程序可以采用串行和并行两种启动方式来启动
测试环境中的多个应用程序。对于不与其他应用程序存在依赖关系的应用程序,可以采用
并行启动的方式进行启动;对于与其他应用程序存在依赖关系的应用程序,可以采用串行
启动的方式进行启动。进一步地,应用程序的访问地址包括测试环境所在服务器的IP地址
和各个应用程序所对应的端口值。
[0051] 与现有技术中每个项目仅包含一个测试环境不同,通过上述测试环境的自动生成方法,可以为每个开发人员部署一套符合其测试要求的测试环境,从而避免了等待测试过
程中和对测试环境进行部署过程中大量时间的浪费,降低了对测试环境进行反复部署过程
中出错的概率,提升了测试的效率。
[0052] 在一实施例中,所述测试环境生成参数包括分支名称,所述根据所述测试环境生成参数生成测试环境的步骤包括:
[0053] 获取所述分支名称对应的项目代码;
[0054] 构建所述项目代码并对所述项目代码进行预设的镜像处理制作应用镜像;
[0055] 根据所述应用镜像创建应用程序。
[0056] 本实施例中,测试环境生成参数包括用户名称和分支名称。在用户填写分支名称和用户名称,并选择部署类型和数据库类型之后,服务器首先根据分支名称获取分支名称
对应的项目代码,项目代码存储在一个仓库服务器上;然后应用哈希算法和冲突算法将用
户名称转换为一定范围内的名称对应值,根据该测试环境中的应用数量、端口起点值、应用
程序的编码以及部署类型和数据库类型可计算得到应用程序对应的唯一应用端口值。在计
算得到应用端口值之后,构建获取的应用程序对应的项目代码,制作应用程序的应用镜像。
该应用镜像可以为Docker镜像;在制作完成应用镜像之后,通过应用镜像创建其对应的可
执行的应用程序;并使这些应用程序与之前计算得到的应用端口值呈一一对应的映射关
系。
[0057] 在一实施例中,所述根据所述应用镜像创建应用程序的步骤之后包括:
[0058] 若所述应用程序为多个,则采用串行启动的方式启动各所述应用程序中存在依赖关系的应用程序,并采用并行启动的方式启动各所述应用程序中不存在依赖关系的应用程
序。
[0059] 本实施例中,在创建好所有的应用程序,并令这些应用程序与应用端口值呈一一对应的映射关系之后,启动这些应用程序。具体地,采用串行或并行的混合启动方式启动这
些应用程序。其中,并行启动指可以同时启动多个应用程序,串行启动指存在依赖关系的应
用程序之间存在特定的启动顺序,只有在前置应用程序启动结束之后,才能启动该应用程
序。服务器会根据测试环境中的应用程序的特性选择对应的启动方式,以保证该应用程序
能够正常启动和运行。
[0060] 具体地,若同一测试环境中的应用程序为多个,则判断这些应用程序相互之间是否存在依赖关系;若存在应用程序与其他应用程序存在依赖关系,则采用串行启动的方式
启动这些应用程序;若存在应用程序与其他应用程序不存在依赖关系,则采用并行启动的
方式启动这些应用程序。
[0061] 进一步地,在启动应用程序之前,首先需要判断该应用程序是否与同一测试环境中其他应用程序存在依赖关系,若该应用程序不与其他应用程序存在依赖关系,则采用并
行启动的方式启动该应用程序;即在启动该应用程序的同时,可以异步启动其他的应用程
序;而若该应用程序与其他应用程序存在依赖关系,则采用串行启动的方式启动该应用程
序。其中,并行启动指可以同时启动多个应用程序,串行启动指存在依赖关系的应用程序之
间存在特定的启动顺序,只有在前置应用程序启动结束之后,才能启动该应用程序。更进一
步地,依赖关系又包括强依赖关系和弱依赖关系。强依赖关系即必须先启动前置应用程序,
才可启动该应用程序;弱依赖关系指的是当没有先启动前置应用程序时,还存在其他的降
级方案以启动该应用程序。
[0062] 在一些实施例中,存在与该应用程序呈强依赖关系的前置应用程序,启动该应用程序之前,需要请求前置应用程序的网络接口,若接收到请求成功的的标识则可以启动该
应用程序;若未接收到请求成功的标识,则在预设睡眠时长后再次请求该网络接口,直到收
到请求成功的标识。其中,预设睡眠时长为本领域技术人员根据具体的测试要求进行设置,
并可以实时进行调整。预设睡眠时长可以是3秒,也可以是5秒。通过这种方式,能够确保存
在强依赖关系的应用程序的前置应用程序已经完成启动,从而保证该应用程序的正常运
行。
[0063] 在一实施例中,所述测试环境生成参数包括部署类型和数据库类型,所述根据所述用户名称生成所述测试环境中应用程序的访问地址的步骤包括:
[0064] 将所述用户名称转换为名称对应值;
[0065] 将所述部署类型和所述数据库类型转换为对应的二进制值;
[0066] 根据所述名称对应值和所述二进制值计算所述应用程序的应用端口值。
[0067] 本实施例中,服务器首先应用哈希算法和冲突算法将用户名称转换为一定范围内的名称对应值;具体的,在名称对应值的转换过程中,服务器先采用哈希算法将用户名称转
换为哈希值,并判断哈希值之间是否存在冲突,若哈希值存在冲突,则应用冲突算法将哈希
值转换为名称对应值,若哈希值不存在冲突,则直接将哈希值转换为名称对应值。其中,冲
突算法可以为开放定址法、再哈希法或链地址法。在转换之后,要求每个用户名称有唯一对
应的名称对应值。恰是因为每个用户名称有唯一对应的名称对应值,可使每个应用程序都
有唯一对应的应用端口值,从而能够清楚的区分每一个应用程序。
[0068] 在一实施例中,所述根据所述名称对应值和所述二进制值计算所述应用程序的应用端口值的步骤包括:
[0069] 确定所述测试环境中能够容纳最多应用程序个数的应用最大值;
[0070] 通过所述部署类型和数据库类型的总数确定所有部署类型和数据库类型的排列组合数量;
[0071] 通过选择的部署类型和数据库类型确定排列组合序号;
[0072] 根据所述名称对应值、应用最大值、排列组合数量和排列组合序号确定应用端口值。
[0073] 本实施例中,获取输入的应用编码并获取端口起点值,确定测试环境中能够容纳最多应用程序个数的应用最大值,服务器将用户选择的部署类型和数据库类型分别转换为
对应的二进制值,具体的转换方式由用户根据自身需求提前设定。在得到名称对应值和二
进制值之后,可通过部署类型和数据库类型对应的二进制值的总数确定所有部署类型和数
据库类型的排列组合数量;通过选择的部署类型和数据库类型对应的二进制值确定排列组
合序号。将名称对应值、应用编码、端口起点值、应用最大值、排列组合数量和排列组合序号
代入预设应用端口值计算公式,得到应用端口值。其中,应用端口值计算公式为本领域技术
人员根据预设规则设置的计算应用端口值的公式,可根据具体需求进行调整。
[0074] 在一实施例中,所述将所述名称对应值、应用编码、端口起点值、应用最大值、排列组合数量和排列组合序号代入预设应用端口值计算公式,得到应用端口值的步骤包括:
[0075] 获取预设的应用编码和端口起点值;
[0076] 计算所述名称对应值、所述应用最大值和所述排列组合数量的乘积以获得第一乘积;
[0077] 计算所述排列组合数量和预设的应用编码的乘积以获得第二乘积;
[0078] 计算所述第一乘积、第二乘积、预设的端口起点值、排列组合序号之间的和值,并将所述和值作为应用端口值。
[0079] 本实施例中,第一乘积、第二乘积均为预设应用端口值计算公式的中间量,预设端口值计算公式为本领域技术人员根据预设规则提前设置的预设端口值的算法,具体公式如
下:
[0080] Y = Q + M * T * K + N + K * X
[0081] 其中,Y为预设端口值,X为应用编码,Q为端口起点值,T为该测试环境中最多能够容纳应用程序的应用最大值,M为名称对应值,N为所有部署类型和数据库类型的排列组合
序号,K为所有部署类型和数据库类型的排列组合数量。
[0082] 关于排列组合序号和排列组合数量的设置,由服务器可供选择的部署类型和数据库类型的数量和预设序号设置规则决定。具体的,在一实施例中,服务器中可供选择的部署
类型有“分离部署”和“集中部署”两种,数据库类型有“SQLServer”和“Mysql”两种,在部署
类型中,将“分离部署”设置为二进制值01,将“集中部署”设置为二进制值10;在数据库类型
中,将“SQLServer”设置为二进制值01,将“Mysql”设置为二进制值10。此时,共有4种将数据
库类型和部署类型进行随机组合的组合方法,所有部署类型和数据库类型的排列组合数量
K=4。此外,在一实施例中,可将“分离部署”和数据库“SQLServer”进行组合的组合方式设置
为排列组合序号0;将“分离部署”和数据库“Mysql”进行组合的组合方式设置为排列组合序
号1;将“集中部署”和数据库“SQLServer”进行组合的组合方式设置为排列组合序号2;将
“集中部署”和数据库“Mysql”进行组合的组合方式设置为排列组合序号3。因此,排列组合
序号N的取值可以为0,1,2,3。通过这种方式确定端口值,可以保证每个应用程序的端口值
均不相同,因此避免了端口值产生冲突。
[0083] 在一实施例中,所述输出所述测试环境中应用的访问地址的步骤包括:
[0084] 获取所述测试环境的服务器地址;
[0085] 将所述测试环境中的所有应用端口值进行拼接得到拼接端口值;
[0086] 输出所述服务器地址和所述拼接端口值。
[0087] 本实施例中,应用程序的访问地址包括测试环境所在的服务器的服务器地址和测试环境中所有应用端口值拼接起来的拼接端口值。通过输出的服务器地址和拼接端口值,
用户可访问测试环境中任一应用程序,以完成相应的测试。
[0088] 如图3所示,本发明还提出一种测试环境的生成装置,测试环境的生成装置包括:
[0089] 参数接收模块A10,用于接收输入的测试环境生成参数,所述测试环境生成参数包括用户名称;
[0090] 测试环境生成模块A20,用于根据所述测试环境生成参数生成测试环境;
[0091] 访问地址输出模块A30,用于根据所述用户名称生成所述测试环境中应用程序的访问地址,输出所述访问地址。
[0092] 可选地,测试环境生成模块A20可用于:
[0093] 获取所述分支名称对应的项目代码;
[0094] 构建所述项目代码并对所述项目代码进行预设的镜像处理制作应用程序的应用镜像;
[0095] 根据所述应用镜像创建所述应用程序。
[0096] 可选地,访问地址输出模块A30还可用于:
[0097] 若所述应用程序为多个,则判断所述多个应用程序是否相互存在依赖关系;
[0098] 采用串行启动的方式启动存在依赖关系的应用程序;
[0099] 采用并行启动的方式启动不存在依赖关系的应用程序。
[0100] 可选地,测试环境生成模块A20可用于:
[0101] 将所述用户名称转换为名称对应值;
[0102] 将所述部署类型和所述数据库类型转换为对应的二进制值;
[0103] 根据所述名称对应值和所述二进制值计算所述应用程序的应用端口值。
[0104] 可选地,测试环境生成模块A20还可用于:
[0105] 获取应用编码和端口起点值;
[0106] 确定所述测试环境中能够容纳最多应用程序个数的应用最大值;
[0107] 通过所述部署类型和数据库类型的总数确定所有部署类型和数据库类型的排列组合数量;通过选择的部署类型和数据库类型确定排列组合序号;
[0108] 将所述名称对应值、应用编码、端口起点值、应用最大值、排列组合数量和排列组合序号代入预设应用端口值计算公式,得到应用端口值。
[0109] 可选地,测试环境生成模块A20还可用于:
[0110] 计算所述名称对应值、所述应用最大值和所述排列组合数量的乘积以获得第一乘积;
[0111] 计算所述排列组合数量和所述应用编码的乘积以获得第二乘积;
[0112] 计算所述第一乘积、第二乘积、端口起点值、排列组合序号的和获得应用端口值。
[0113] 可选地,访问地址输出模块A30还可用于:
[0114] 获取所述测试环境的服务器地址;
[0115] 将所述测试环境中的所有应用端口值进行拼接得到拼接端口值;
[0116] 输出所述服务器地址和所述拼接端口值。
[0117] 其中,测试环境的生成装置的各个功能模块实现的步骤可参照本发明测试环境的生成方法的各个实施例,此处不再赘述。
[0118] 本发明还提出一种测试环境的生成设备,测试环境的生成设备包括存储器、处理器、以及存储在所述存储器上并可在所述处理器上运行的测试环境的生成应用程序,所述
测试环境的生成应用程序用于执行本发明各个实施例所述的方法。
[0119] 其中,测试环境的生成设备的各个功能模块实现的步骤可参照本发明测试环境的生成方法的各个实施例,此处不再赘述。
[0120] 本发明还提出一种计算机可读存储介质,其上存储有测试环境的生成应用程序。所述计算机可读存储介质包括计算机可读存储介质,所述计算机可读存储介质可以是图1
的中的存储器,也可以是如ROM(Read‑Only Memory,只读存储器)/RAM(Random Access 
Memory,随机存取存储器)、磁碟、光盘中的至少一种,所述计算机可读存储介质包括若干指
令用以使得一台具有处理器的物联网终端设备(可以是手机,计算机,服务器,物联网终端,
或者网络设备等)执行本发明各个实施例所述的方法。
[0121] 其中,计算机可读存储介质的各个功能模块实现的步骤可参照本发明测试环境的生成方法的各个实施例,此处不再赘述。
[0122] 在本发明中,术语“第一”“第二”“第三”“第四”“第五”仅用于描述的目的,而不能理解为指示或暗示相对重要性,对于本领域的普通技术人员而言,可以根据具体情况理解
上述术语在本发明中的具体含义。
[0123] 在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特
点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不
必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任
一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技
术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结
合和组合。
[0124] 尽管上面已经示出和描述了本发明的实施例,本发明保护的范围并不局限于此,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人
员在本发明的范围内可以对上述实施例进行变化、修改和替换,这些变化、修改和替换都应
涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。