测试环境的生成方法、装置、设备和计算机可读存储介质转让专利
申请号 : CN202111280120.8
文献号 : CN113704136B
文献日 : 2022-01-28
发明人 : 吴德源
申请人 : 深圳市明源云科技有限公司
摘要 :
权利要求 :
1.一种测试环境的生成方法,其特征在于,所述方法包括以下步骤:接收输入的测试环境生成参数,所述测试环境生成参数包括用户名称;
根据所述测试环境生成参数生成测试环境;
根据所述用户名称生成所述测试环境中应用程序的访问地址,输出所述访问地址;
其中,所述测试环境生成参数包括部署类型和数据库类型,所述访问地址包括应用端口值,所述根据所述用户名称生成所述测试环境中应用程序的访问地址的步骤包括:将所述用户名称转换为名称对应值;
将所述部署类型和所述数据库类型转换为对应的二进制值;
根据所述名称对应值和所述二进制值计算所述应用程序的应用端口值。
2.如权利要求1所述的测试环境的生成方法,其特征在于,所述测试环境生成参数包括分支名称,所述测试环境包括应用程序,所述根据所述测试环境生成参数生成测试环境的步骤包括:
构建所述分支名称对应的项目代码;
对所述项目代码进行预设的镜像处理制作应用镜像;
根据所述应用镜像创建应用程序。
3.如权利要求2所述的测试环境的生成方法,其特征在于,所述根据所述应用镜像创建应用程序的步骤之后包括:
若所述应用程序为多个,则采用串行启动的方式启动各所述应用程序中存在依赖关系的应用程序,并采用并行启动的方式启动各所述应用程序中不存在依赖关系的应用程序。
4.如权利要求1所述的测试环境的生成方法,其特征在于,所述根据所述名称对应值和所述二进制值计算所述应用程序的应用端口值的步骤包括:确定所述测试环境中能够容纳最多应用程序个数的应用最大值;
通过所述部署类型和数据库类型的总数确定所有部署类型和数据库类型的排列组合数量;
通过选择的部署类型和数据库类型确定排列组合序号;
根据所述名称对应值、应用最大值、排列组合数量和排列组合序号确定应用端口值。
5.如权利要求4所述的测试环境的生成方法,其特征在于,所述根据所述名称对应值、应用最大值、排列组合数量和排列组合序号确定应用端口值的步骤包括:获取预设的应用编码和端口起点值;
计算所述名称对应值、所述应用最大值和所述排列组合数量的乘积以获得第一乘积;
计算所述排列组合数量和预设的应用编码的乘积以获得第二乘积;
计算所述第一乘积、第二乘积、预设的端口起点值、排列组合序号之间的和值,并将所述和值作为应用端口值。
6.如权利要求3所述的测试环境的生成方法,其特征在于,所述访问地址包括服务器地址和拼接端口值,所述输出所述测试环境中应用程序的访问地址的步骤包括:获取所述测试环境的服务器地址;
将所述测试环境中的所有应用端口值进行拼接得到拼接端口值;
输出所述服务器地址和所述拼接端口值,将所述拼接端口值和所述服务器地址作为访问地址。
7.一种测试环境的生成装置,其特征在于,所述测试环境的生成装置包括:参数接收模块,用于接收输入的测试环境生成参数,所述测试环境生成参数包括用户名称;
测试环境生成模块,用于根据所述测试环境生成参数生成测试环境;
访问地址输出模块,用于根据所述用户名称生成所述测试环境中应用程序的访问地址,输出所述访问地址;
其中,所述测试环境生成参数包括部署类型和数据库类型,所述访问地址包括应用端口值,所述根据所述用户名称生成所述测试环境中应用程序的访问地址的步骤包括:将所述用户名称转换为名称对应值;
将所述部署类型和所述数据库类型转换为对应的二进制值;
根据所述名称对应值和所述二进制值计算所述应用程序的应用端口值。
8.一种测试环境的生成设备,其特征在于,包括存储器、处理器、以及存储在所述存储器上并可在所述处理器上运行的测试环境的生成应用程序,所述测试环境的生成应用程序被处理器执行时实现如权利要求1至6中任一项所述测试环境的生成方法的步骤。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有测试环境的生成应用程序,所述测试环境的生成应用程序被处理器执行时实现如权利要求1至6中任一项所述测试环境的生成方法的步骤。
说明书 :
测试环境的生成方法、装置、设备和计算机可读存储介质
技术领域
背景技术
独立的开发。在开发任务完成之后,将特性分支上的改动合并到主干分支之前,测试人员需
要对其改动内容进行测试。一般情况下,测试环境只有一套,而特性分支有多个,需要在这
一套测试环境上来回切换分支重新构建部署应用,这样一来颇耗时间。尤其是在特性分支
上测试出Bug(程序故障)的时候,测试人员要么等待 Bug 修复,其它特性分支的任务搁置,
这样白白浪费大量的测试人员的时间;要么先切换到其它特性分支测试,Bug被修复后再切
换回来,在这种情况下如果不同的特性分支的环境配置有差异,手工配置下会出现重复劳
动,甚至极易出错,排错过程也会花费不少的时间。
发明内容
的应用程序。
于接收输入的测试环境生成参数,所述测试环境生成参数包括用户名称;所述测试环境生
成模块用于根据所述测试环境生成参数生成测试环境,所述访问地址输出模块用于根据所
述用户名称生成所述测试环境中应用程序的访问地址,输出所述访问地址。
成应用程序,所述测试环境的生成应用程序被处理器执行时实现所述测试环境的生成方
法。
现所述测试环境的生成方法。
序的访问地址。通过这种方式,可以根据不同的测试环境生成参数,为每一位用户按需自动
生成动态配置的测试环境,而不同于现有技术中所有用户共用一套测试环境,因此避免了
用户在测试前选择配置项的重复劳动和资源得不到有效利用的情况,节省了大量测试时
间。
附图说明
发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以
根据这些附图示出的结构获得其他的附图。
具体实施方式
本领域技术人员可以理解,图1中所示出的设备还可以包括比图示更多或更少的部件,或者
组合某些部件,或者不同的部件布置。其中,所述处理器03分别与所述存储器02和所述执行
模块01连接,所述存储器02上存储有测试环境的生成应用程序,所述测试环境的生成应用
程序同时被处理器03执行。
数据区可存储根据物联网终端的使用所创建的数据或信息等。此外,存储器02可以包括高
速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、
或其他易失性固态存储器件。
器02内的数据,执行物联网终端的各种功能和处理数据,从而对测试环境的生成设备进行
整体监控。处理器03可包括一个或多个处理单元;优选的,处理器03可集成应用处理器和调
制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处
理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器03中。
独立的开发。在开发任务完成之后,将特性分支上的改动合并到主干分支之前,测试人员需
要对其改动内容进行测试。一般情况下,测试环境只有一套,而特性分支有多个,需要在这
一套测试环境上来回切换分支重新构建部署应用,这样一来颇耗时间。尤其是在特性分支
上测试出Bug(程序故障)的时候,测试人员要么等待 Bug 修复,其它特性分支的任务搁置,
这样白白浪费大量的测试人员的时间;要么先切换到其它特性分支测试,Bug被修复后再切
换回来,在这种情况下如果不同的特性分支的环境配置有差异,手工配置下会出现重复劳
动,甚至极易出错,排错过程也会花费不少的时间。
样会进行大量容易出错的重复劳动,从而浪费大量的时间。
每一位开发人员生成其对应的测试环境之前,都需要输入测试环境生成参数。测试环境生
成参数中包括开发人员的用户名称,可通过用户名称标识测试环境,若检测到存在该用户
名称对应的测试环境,则更新该测试环境;若不存在该用户名称对应的测试环境,则新建一
个测试环境。如此一来,就能够保证每个开发人员都有且仅有一个对应的测试环境。
进行选择,其中,测试环境的部署类型包括分离部署和集中部署,数据库类型包括Mysql数
据库和SqlServer数据库。而分支名称和用户名称则由用户进行填写。
Jenkins是一个开源的、提供友好操作界面的持续集成工具,主要用于持续、自动的构建/测
试软件项目、监控外部任务的运行。在开发人员输入完所有测试环境生成参数至Jenkins之
后,会点击启动构建的按钮。Jenkins即会自动获取该测试环境中将要构建的多个应用程
序,并自动计算这多个应用程序各自的应用端口值;然后构建这些应用程序的项目代码,并
制作这些应用程序的应用镜像,该应用镜像可以为Docker镜像;在制作完成应用镜像之后,
通过应用镜像创建其对应的可执行的应用程序;并使这些应用程序与之前计算得到的应用
端口值呈一一对应的映射关系。
地址,然后输出这些应用程序的访问地址,使得开发人员或其他用户可根据输出的访问地
址访问对应的应用程序。具体地,启动应用程序可以采用串行和并行两种启动方式来启动
测试环境中的多个应用程序。对于不与其他应用程序存在依赖关系的应用程序,可以采用
并行启动的方式进行启动;对于与其他应用程序存在依赖关系的应用程序,可以采用串行
启动的方式进行启动。进一步地,应用程序的访问地址包括测试环境所在服务器的IP地址
和各个应用程序所对应的端口值。
程中和对测试环境进行部署过程中大量时间的浪费,降低了对测试环境进行反复部署过程
中出错的概率,提升了测试的效率。
对应的项目代码,项目代码存储在一个仓库服务器上;然后应用哈希算法和冲突算法将用
户名称转换为一定范围内的名称对应值,根据该测试环境中的应用数量、端口起点值、应用
程序的编码以及部署类型和数据库类型可计算得到应用程序对应的唯一应用端口值。在计
算得到应用端口值之后,构建获取的应用程序对应的项目代码,制作应用程序的应用镜像。
该应用镜像可以为Docker镜像;在制作完成应用镜像之后,通过应用镜像创建其对应的可
执行的应用程序;并使这些应用程序与之前计算得到的应用端口值呈一一对应的映射关
系。
序。
些应用程序。其中,并行启动指可以同时启动多个应用程序,串行启动指存在依赖关系的应
用程序之间存在特定的启动顺序,只有在前置应用程序启动结束之后,才能启动该应用程
序。服务器会根据测试环境中的应用程序的特性选择对应的启动方式,以保证该应用程序
能够正常启动和运行。
启动这些应用程序;若存在应用程序与其他应用程序不存在依赖关系,则采用并行启动的
方式启动这些应用程序。
行启动的方式启动该应用程序;即在启动该应用程序的同时,可以异步启动其他的应用程
序;而若该应用程序与其他应用程序存在依赖关系,则采用串行启动的方式启动该应用程
序。其中,并行启动指可以同时启动多个应用程序,串行启动指存在依赖关系的应用程序之
间存在特定的启动顺序,只有在前置应用程序启动结束之后,才能启动该应用程序。更进一
步地,依赖关系又包括强依赖关系和弱依赖关系。强依赖关系即必须先启动前置应用程序,
才可启动该应用程序;弱依赖关系指的是当没有先启动前置应用程序时,还存在其他的降
级方案以启动该应用程序。
应用程序;若未接收到请求成功的标识,则在预设睡眠时长后再次请求该网络接口,直到收
到请求成功的标识。其中,预设睡眠时长为本领域技术人员根据具体的测试要求进行设置,
并可以实时进行调整。预设睡眠时长可以是3秒,也可以是5秒。通过这种方式,能够确保存
在强依赖关系的应用程序的前置应用程序已经完成启动,从而保证该应用程序的正常运
行。
换为哈希值,并判断哈希值之间是否存在冲突,若哈希值存在冲突,则应用冲突算法将哈希
值转换为名称对应值,若哈希值不存在冲突,则直接将哈希值转换为名称对应值。其中,冲
突算法可以为开放定址法、再哈希法或链地址法。在转换之后,要求每个用户名称有唯一对
应的名称对应值。恰是因为每个用户名称有唯一对应的名称对应值,可使每个应用程序都
有唯一对应的应用端口值,从而能够清楚的区分每一个应用程序。
对应的二进制值,具体的转换方式由用户根据自身需求提前设定。在得到名称对应值和二
进制值之后,可通过部署类型和数据库类型对应的二进制值的总数确定所有部署类型和数
据库类型的排列组合数量;通过选择的部署类型和数据库类型对应的二进制值确定排列组
合序号。将名称对应值、应用编码、端口起点值、应用最大值、排列组合数量和排列组合序号
代入预设应用端口值计算公式,得到应用端口值。其中,应用端口值计算公式为本领域技术
人员根据预设规则设置的计算应用端口值的公式,可根据具体需求进行调整。
下:
序号,K为所有部署类型和数据库类型的排列组合数量。
类型有“分离部署”和“集中部署”两种,数据库类型有“SQLServer”和“Mysql”两种,在部署
类型中,将“分离部署”设置为二进制值01,将“集中部署”设置为二进制值10;在数据库类型
中,将“SQLServer”设置为二进制值01,将“Mysql”设置为二进制值10。此时,共有4种将数据
库类型和部署类型进行随机组合的组合方法,所有部署类型和数据库类型的排列组合数量
K=4。此外,在一实施例中,可将“分离部署”和数据库“SQLServer”进行组合的组合方式设置
为排列组合序号0;将“分离部署”和数据库“Mysql”进行组合的组合方式设置为排列组合序
号1;将“集中部署”和数据库“SQLServer”进行组合的组合方式设置为排列组合序号2;将
“集中部署”和数据库“Mysql”进行组合的组合方式设置为排列组合序号3。因此,排列组合
序号N的取值可以为0,1,2,3。通过这种方式确定端口值,可以保证每个应用程序的端口值
均不相同,因此避免了端口值产生冲突。
用户可访问测试环境中任一应用程序,以完成相应的测试。
测试环境的生成应用程序用于执行本发明各个实施例所述的方法。
的中的存储器,也可以是如ROM(Read‑Only Memory,只读存储器)/RAM(Random Access
Memory,随机存取存储器)、磁碟、光盘中的至少一种,所述计算机可读存储介质包括若干指
令用以使得一台具有处理器的物联网终端设备(可以是手机,计算机,服务器,物联网终端,
或者网络设备等)执行本发明各个实施例所述的方法。
上述术语在本发明中的具体含义。
点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不
必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任
一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技
术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结
合和组合。
员在本发明的范围内可以对上述实施例进行变化、修改和替换,这些变化、修改和替换都应
涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。