CN112799954B - 快速构建测试环境的方法、设备及计算机可读介质 - Google Patents
快速构建测试环境的方法、设备及计算机可读介质 Download PDFInfo
- Publication number
- CN112799954B CN112799954B CN202110177066.8A CN202110177066A CN112799954B CN 112799954 B CN112799954 B CN 112799954B CN 202110177066 A CN202110177066 A CN 202110177066A CN 112799954 B CN112799954 B CN 112799954B
- Authority
- CN
- China
- Prior art keywords
- resources
- resource
- java class
- java
- association
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000012360 testing method Methods 0.000 title claims abstract description 71
- 238000000034 method Methods 0.000 title claims abstract description 48
- 238000010276 construction Methods 0.000 claims abstract description 32
- 230000006870 function Effects 0.000 claims abstract description 25
- 230000000295 complement effect Effects 0.000 claims abstract description 8
- 238000004590 computer program Methods 0.000 claims description 17
- 238000011161 development Methods 0.000 claims description 10
- 230000008569 process Effects 0.000 abstract description 13
- 238000003860 storage Methods 0.000 description 22
- 238000010586 diagram Methods 0.000 description 6
- 238000007689 inspection Methods 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 6
- 238000012545 processing Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000000007 visual effect Effects 0.000 description 3
- 239000008186 active pharmaceutical agent Substances 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000013522 software testing Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000012797 qualification Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3664—Environments for testing or debugging software
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
- G06F8/24—Object-oriented
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/31—Programming languages or programming paradigms
- G06F8/315—Object-oriented languages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/33—Intelligent editors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4488—Object-oriented
- G06F9/449—Object-oriented method invocation or resolution
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Computing Systems (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请提供了一种快速构建测试环境的方案,该方案先获取测试环境需要的资源、资源的属性信息和资源之间的关联关系,然后将将每一种资源定义为一个Java类,将资源的的属性信息定义为对应Java类的成员变量,并根据资源之间的关联关系,在对应的Java类中声明与其它Java类之间的关联关系,在获取使用领域特定语言的环境构建代码后,根据环境构建代码调用资源对应的Java类构建测试环境。由于预先获取了资源之间的关系并在Java类中进行了声明,因此使用了DSL语法构建测试环境时,代码量少,可以快速直观的获知测试环境的整体结构,即使资源种类、数量较多时也不易出错,并且由于使用了DSL语法可以使用IDE工具的自动补全功能,构建过程更加方便快捷。
Description
技术领域
本申请涉及信息技术领域,尤其涉及一种快速构建测试环境的方法、设备及计算机可读介质。
背景技术
在软件测试中,如果想要测试一个API(Application Programming Interface,应用程序编程接口),需要提前构建API依赖的测试环境。以创建虚拟机API举例,需要提前准备虚拟机镜像、集群、集群物理机、集群网络、集群存储,测试账号等等,并且添加虚拟机镜像又依赖于镜像仓库。
目前用于构建上述测试环境的常用方案主要有两种,分别是硬编码实现方案和通过XML(Extensible Markup Language,可扩展标记语言)/JSON(JavaScript ObjectNotation,JS对象简谱)配置文件实现方案。
对于第一种方案,硬编码实现。编写代码一步一步创建测试环境,以构建创建虚拟机API接口测试环境举例:
第一步:调用添加镜像仓库API接口,添加一个镜像仓库
第二步:调用添加虚拟机镜像API接口,创建一个虚拟机镜像
第三步:调用创建集群API接口,创建一个集群
第四步:调用添加物理机API接口,向集群添加物理机
第五步:调用创建集群网络API接口,设置集群网络配置
第六步:调用添加集群存储API接口,设置集群存储配置
第七步:创建一个普通账号。
使用硬编码方案构建测试环境,具有以下缺点:
1.代码行数多,工作量大,耗时长。
2.构建复杂的测试环境时容易出错,例如需要创建多个集群,每个集群添加不同的物理机,不同的集群网络,不同的集群存储。
3.环境整体结构信息不够直观,不利于后期维护修改。
对于第二种方案,通过XML/JSON配置文件实现。测试工程师在配置文件里列出环境信息,测试***解析配置文件内容,调用相关API完成环境构建。使用XML/JSON配置文件方案构建测试环境时,虽然代码数量相较于第一种方案较少,环境整体结构信息也相对直观,但是也带来了以下的几个问题:
1.环境配置文件和测试代码分离,不在一个源码文件里,不利于维护。
2.配置文件容易出现拼写错误,配置错误。IDE(Integrated DevelopmentEnvironment,集成开发环境)等开发工具并不能针对XML/JSON做出代码自动补全,不支持参数基础类型检验,语法检验。
3.不够智能便捷,测试工程师编写配置文件时不能使用到IDE的自动补全功能。
发明内容
本申请的一个目的是提供一种快速构建测试环境的方法、设备及计算机可读介质,用以解决现有技术中的问题。
为实现上述目的,本申请提供了一种快速构建测试环境的方法,该方法包括:
获取测试环境需要的资源、所述资源的属性信息和所述资源之间的关联关系;
将每一种资源定义为一个Java类,将所述资源的的属性信息定义为对应Java类的成员变量;
根据所述资源之间的关联关系,在对应的Java类中声明与其它Java类之间的关联关系;
获取使用领域特定语言的环境构建代码;
根据所述环境构建代码调用所述资源对应的Java类构建测试环境。
进一步地,所述关联关系包括包含关系和使用关系。
进一步地,所述关联关系为包含关系;
根据所述资源之间的关联关系,在对应的Java类中声明与其它Java类之间的关联关系,包括:
在上层资源的Java类中定义下层资源的Java类的引用,并在上层资源的Java类中加入对下层资源的Java类的添加函数,其中,所述上层资源包含下层资源。
进一步地,所述关联关系为使用关系;
根据所述资源之间的关联关系,在对应的Java类中声明与其它Java类之间的关联关系,包括:
在使用方资源的Java类中定义被使用方资源的Java类的引用,并在使用方资源的Java类中加入用于声明与被使用方资源的Java类之间的使用关系的资源关联函数。
进一步地,使用Groovy闭包语法实现用于构建测试环境的领域特定语言。
进一步地,所述关联关系为树状结构关系。
进一步地,获取使用领域特定语言的环境构建代码,包括:
通过集成开发环境工具的自动补全功能获取使用领域特定语言的环境构建代码。
基于本申请的另一方面,还提供了一种快速构建测试环境的设备,该设备包括:
资源获取模块,用于获取测试环境需要的资源、所述资源的属性信息和所述资源之间的关联关系;
资源定义模块,用于将每一种资源定义为一个Java类,将所述资源的的属性信息定义为对应Java类的成员变量,以及根据所述资源之间的关联关系,在对应的Java类中声明与其它Java类之间的关联关系;
代码获取模块,用于获取使用领域特定语言的环境构建代码;
环境构建模块,用于根据所述环境构建代码调用所述资源对应的Java类构建测试环境。
本申请实施例还提供了一种计算设备,该设备包括用于存储计算机程序指令的存储器和用于执行计算机程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发所述设备执行所述快速构建测试环境的方法。
此外,本申请实施例还提供了一种计算机可读介质,其上存储有计算机程序指令,所述计算机程序指令可被处理器执行以实现所述快速构建测试环境的方法。
与现有技术相比,本申请提供了一种快速构建测试环境的方案,该方案先获取测试环境需要的资源、所述资源的属性信息和所述资源之间的关联关系,然后将将每一种资源定义为一个Java类,将所述资源的的属性信息定义为对应Java类的成员变量,并根据所述资源之间的关联关系,在对应的Java类中声明与其它Java类之间的关联关系,在获取使用领域特定语言的环境构建代码后,根据所述环境构建代码调用所述资源对应的Java类构建测试环境。由于预先获取了资源之间的关系并在Java类中进行了声明,因此使用了DSL(Domain Specific Language,领域特定语言)语法构建测试环境时,代码量少,可以快速直观的获知测试环境的整体结构,即使资源种类、数量较多时也不易出错,并且由于使用了DSL语法可以使用IDE工具的自动补全功能,构建过程更加方便快捷。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1为本申请实施例提供的一种快速构建测试环境的方法的处理流程图;
图2为本申请实施例提供的一种用于快速构建测试环境的设备的结构示意图。
附图中相同或相似的附图标记代表相同或相似的部件。
具体实施方式
下面结合附图对本申请作进一步详细描述。
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在本申请一个典型的配置中,终端、服务网络的设备均包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体,可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
本申请实施例提供了一种快速构建测试环境的方法,该方法预先获取了资源之间的关系并在Java类中进行了声明,因此使用了DSL语法构建测试环境时,代码量少,可以快速直观的获知测试环境的整体结构,即使资源种类、数量较多时也不易出错,并且由于使用了DSL语法可以使用IDE工具的自动补全功能,构建过程更加方便快捷。
图1示出了本申请实施例提供的一种快速构建测试环境的方法的处理流程,至少包括以下的处理步骤:
步骤S101,获取测试环境需要的资源、所述资源的属性信息和所述资源之间的关联关系。其中,资源是指软件测试过程中需要涉及到的对象,以前述关于创建虚拟机API的测试为例,所涉测试环境所需要的资源可以包括镜像仓库、虚拟机镜像、集群、物理机、存储等。
各个资源都具有资格对应的属性,例如以物理机为例,其属性可以包括ip、name、username、password、clusterUuid等,其中ip为物理机的ip地址,name为物理机名称,username为物理机对应的用户名,password为物理机对应的密码,clusterUuid为物理机所属集群的唯一标识。
各个资源之间也会具有一定的关联关系,常见的关联关系可以包括包含关系和使用关系。所述包含关系是指一种资源中包含了另一种资源,对于具有包含关系的两种资源,可以分别定义为上层资源和下层资源,其中上层资源包含下层资源。例如,集群和物理机之间的关联关系即为包含关系,一个集群中可以包含了一个物理机,由此在该组包含关系中集群为上层资源,而物理机为下层资源。
所述使用关系是指在***运行过程中一种资源需要使用到另一种资源,对于具有使用关系的两种资源,可以分别定义为使用方资源和被使用方资源,其中使用方资源会在***运行过程中使用被使用方资源。例如,集群和存储之间的关联关系即为使用关系,在虚拟机***运行过程中,集群需要使用到存储,由此在该组使用关系中,集群为使用方资源,而存储为被使用方资源。
在实际场景中,对于需要测试对象,可以结合实际业务来确定测试环境中所需要的所有构成资源、每种资源的属性以及资源之间的关联关系。
步骤S102,将每一种资源定义为一个Java类,将所述资源的的属性信息定义为对应Java类的成员变量。以集群和物理机为例,定义的Java类分别如下:
步骤S103,根据所述资源之间的关联关系,在对应的Java类中声明与其它Java类之间的关联关系。
由于本申请实施例中的关联关系包括了包含关系和关联关系,两者存在一定的区别,因此可以分别采用不同的方式来声明两种资源之间的两种关联关系。其中,当关联关系是包含关系时,可以采用如下的方式声明:在上层资源的Java类中定义下层资源的Java类的引用,并在上层资源的Java类中加入对下层资源的Java类的添加函数。例如,以前述的集群和物理机为例,可以通过如下的方式在集群的Java类中定义物理机的Java类的引用,并加入添加函数,此时集群的Java类可以包含如下内容:
当关联关系是使用关系时,可以采用如下的方式声明:在使用方资源的Java类中定义被使用方资源的Java类的引用,并在使用方资源的Java类中加入用于声明与被使用方资源的Java类之间的使用关系的资源关联函数。例如,以集群和存储为例,可以通过如下的方式在集群的Java类中定义存储的Java类的引用,并加入资源关联函数,此时存储的Java类和集群的Java类可以分别包含如下内容:
由此,通过上述方式可以在对应的Java类中完成各类关联关系的声明。由于此种方式声明的关联关系呈树状结构关系,从位于根部(即包含关系中的最上层或使用关系中最初的使用方)的资源Java类即可直观的遍历所有资源,因此对于用户而言可以直观的获知测试环境的整体结构。
步骤S104,获取使用DSL的环境构建代码。为了提高效率可以在获取环境构建代码时,可以通过集成开发环境工具的自动补全功能来获得代码。
步骤S105,根据所述环境构建代码调用所述资源对应的Java类构建测试环境。
在本申请的一些实施例中,可以使用Groovy闭包语法实现用于构建测试环境的领域特定语言。其中,Groovy是一种基于JVM(Java虚拟机)的开发语言,通过使用Groovy闭包语法可以来构建测试环境,可以在代码编写过程中使用IDE等开发工具的代码自动补全、参数基础类型检验、语法检验等功能,因此可以使得构建测试环境的整体过程更加方便快捷,并减少出错的可能性。在此,本领域技术人员应当理,上述DSL的具体开发语言的选择仅为举例,现有或今后出现的基于类似原理的其它类型的开发语言如果能够适用于本申请,也应该包含在本申请的保护范围内,并以引用的形式包含于此。
在实际场景中,根据前述定义的各类资源的Java类,若测试人员在测试用例中声明的测试环境为:2个集群(cluter1和cluter2),集群1有两台物理机(kvm1和kvm2)并且挂载了存储1(local),集群2有1台物理机(kvm3)但是并不挂载任何存储,此时使用Groovy闭包语法作为DSL构建测试环境所使用到的环境构建代码如下:
而如果不使用DSL语法,而是通过硬编码的方式调用API去构建同样的测试环境,则对应的环境构建代码如下:
//添加存储
AddLocalPrimaryStorageAction addLocalPrimaryStorageAction=new AddLocalPrimaryStorageAction()
addLocalPrimaryStorageAction.name="local"
addLocalPrimaryStorageAction.url="/local_ps"
PrimaryStorageInventory primaryStorage=addLocalPrimaryStorageAction.call().value.inventory
//创建集群1
CreateClusterAction createCluster1Action=new CreateClusterAction()
createCluster1Action.name="cluster1"
ClusterInventory cluster1=createCluster1Action.call().value.inventory
//配置集群1使用存储
AttachPrimaryStorageToClusterAction attachPrimaryStorageToClusterAction=new AttachPrimaryStorageToClusterAction()
attachPrimaryStorageToClusterAction.clusterUuid=cluster1.uuid
attachPrimaryStorageToClusterAction.primaryStorageUuid=primaryStorage.uuid
attachPrimaryStorageToClusterAction.call()
//向集群1添加物理机1
AddKVMHostAction addKVMHost1Action=new AddKVMHostAction()
addKVMHost1Action.clusterUuid=cluster1.uuid
addKVMHost1Action.name="kvm1"
addKVMHost1Action.username="root"
addKVMHost1Action.password="password"
addKVMHost1Action.managementIp="127.0.0.1"
addKVMHost1Action.call()
//向集群1添加物理机2
AddKVMHostAction addKVMHost2Action=new AddKVMHostAction()
addKVMHost2Action.clusterUuid=cluster1.uuid
addKVMHost2Action.name="kvm2"
addKVMHost2Action.username="root"
addKVMHost2Action.password="password"
addKVMHost2Action.managementIp="127.0.0.2"
addKVMHost2Action.call()
//创建集群2
CreateClusterAction createCluster2Action=new CreateClusterAction()
createCluster2Action.name="cluster2"
ClusterInventory cluster2=createCluster2Action.call().value.inventory
//向集群2添加物理机3
AddKVMHostAction addKVMHost3Action=new AddKVMHostAction()
addKVMHost3Action.clusterUuid=cluster2.uuid
addKVMHost3Action.name="kvm3"
addKVMHost3Action.username="root"
addKVMHost3Action.password="password"
addKVMHost3Action.managementIp="127.0.0.3"
addKVMHost3Action.call()
在另一实施例中,若测试人员在测试用例中需要声明的测试环境包括了一个镜像仓库(stp)、一个虚拟机镜像(image1)、一个集群(cluter)、一个物理机(kvm)、一个存储(nfs)、一个集群网络(12)以及一个普通帐号(account1),使用Groovy闭包语法作为DSL构建测试环境所使用到的环境构建代码如下:
/>
/>
而若不使用DSL语法,而是通过XML配置文件来实现类似测试环境构建,则XML的配置内容如下:
/>
/>
通过对比本申请实施例提供的方案与现有技术中的两种方案可知,本申请实施例中所使用的DSL语法代码量更少,更加清晰简洁,资源与资源之间的关系更加直观,使资源种类、数量较多时也不易出错。并且,由于使用了DSL语法,可以使用IDE工具的代码自动补全、参数基础类型检验、语法检验等功能,因此构建测试环境的整体过程更加方便快捷,减少出错的可能性。
基于同一发明构思,本申请实施例中还提供了一种快速构建测试环境的设备,该设备对应的方法是前述实施例中的快速构建测试环境的方法,并且其解决问题的原理与该方法相似。
本申请实施例中还提供了一种快速构建测试环境的设备,该设备包括了资源获取模块、资源定义模块、代码获取模块和环境构建模块。其中,所述资源获取模块用于获取测试环境需要的资源、所述资源的属性信息和所述资源之间的关联关系。所述资源定义模块用于将每一种资源定义为一个Java类,将所述资源的的属性信息定义为对应Java类的成员变量,以及根据所述资源之间的关联关系,在对应的Java类中声明与其它Java类之间的关联关系。所述代码获取模块用于获取使用领域特定语言的环境构建代码。所述环境构建模块,用于根据所述环境构建代码调用所述资源对应的Java类构建测试环境。
此外,本申请实施例还提供了一种计算设备。该设备包括用于存储计算机程序指令的存储器和用于执行计算机程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发所述设备执行前述的实现前述快速构建测试环境的方法。
图2示出了适用于实现本申请实施例中的方法和/或技术方案的一种设备的结构,该设备200包括中央处理单元(CPU,Central Processing Unit)201,其可以根据存储在只读存储器(ROM,Read Only Memory)202中的程序或者从存储部分208加载到随机访问存储器(RAM,Random Access Memory)203中的程序而执行各种适当的动作和处理。在RAM 203中,还存储有***操作所需的各种程序和数据。CPU 201、ROM 202以及RAM203通过总线204彼此相连。输入/输出(I/O,Input/Output)接口205也连接至总线204。
以下部件连接至I/O接口205:包括键盘、鼠标、触摸屏、麦克风、红外传感器等的输入部分206;包括诸如阴极射线管(CRT,Cathode Ray Tube)、液晶显示器(LCD,LiquidCrystal Display)、LED显示器、OLED显示器等以及扬声器等的输出部分207;包括硬盘、光盘、磁盘、半导体存储器等一个或多个计算机可读介质的存储部分208;以及包括诸如LAN(局域网,Local Area Network)卡、调制解调器等的网络接口卡的通信部分209。通信部分209经由诸如因特网的网络执行通信处理。
特别地,本申请实施例中的方法和/或实施例可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在该计算机程序被中央处理单元(CPU)201执行时,执行本申请的方法中限定的上述功能。
需要说明的是,本申请所述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。
而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本申请的操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图或框图示出了按照本申请各种实施例的设备、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的针对硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
作为另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个计算机可读指令,所述计算机可读指令可被处理器执行以实现前述本申请的多个实施例的方法和/或技术方案。
需要注意的是,本申请可在软件和/或软件与硬件的组合体中被实施,例如,可采用专用集成电路(ASIC)、通用目的计算机或任何其他类似硬件设备来实现。在一些实施例中,本申请的软件程序可以通过处理器执行以实现上文步骤或功能。同样地,本申请的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,RAM存储器,磁或光驱动器或软磁盘及类似设备。另外,本申请的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。
对于本领域技术人员而言,显然本申请不限于上述示范性实施例的细节,而且在不背离本申请的精神或基本特征的情况下,能够以其他的具体形式实现本申请。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本申请的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本申请内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。装置权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
Claims (9)
1.一种快速构建测试环境的方法,其特征在于,该方法包括:
获取测试环境需要的资源、所述资源的属性信息和所述资源之间的关联关系;
将每一种资源定义为一个Java类,将所述资源的属性信息定义为对应Java类的成员变量;
根据所述资源之间的关联关系,在对应的Java类中声明与其它Java类之间的关联关系;
通过集成开发环境工具的自动补全功能获取使用领域特定语言的环境构建代码;
根据所述环境构建代码调用所述资源对应的Java类构建测试环境。
2.根据权利要求1所述的方法,其特征在于,所述关联关系包括包含关系和使用关系。
3.根据权利要求2所述的方法,其特征在于,所述关联关系为包含关系;
根据所述资源之间的关联关系,在对应的Java类中声明与其它Java类之间的关联关系,包括:
在上层资源的Java类中定义下层资源的Java类的引用,并在上层资源的Java类中加入对下层资源的Java类的添加函数,其中,所述上层资源包含下层资源。
4.根据权利要求2所述的方法,其特征在于,所述关联关系为使用关系;
根据所述资源之间的关联关系,在对应的Java类中声明与其它Java类之间的关联关系,包括:
在使用方资源的Java类中定义被使用方资源的Java类的引用,并在使用方资源的Java类中加入用于声明与被使用方资源的Java类之间的使用关系的资源关联函数。
5.根据权利要求1所述的方法,其特征在于,使用Groovy闭包语法实现用于构建测试环境的领域特定语言。
6.根据权利要求1所述的方法,其特征在于,所述关联关系为树状结构关系。
7.一种快速构建测试环境的设备,其特征在于,该设备包括:
资源获取模块,用于获取测试环境需要的资源、所述资源的属性信息和所述资源之间的关联关系;
资源定义模块,用于将每一种资源定义为一个Java类,将所述资源的属性信息定义为对应Java类的成员变量,以及根据所述资源之间的关联关系,在对应的Java类中声明与其它Java类之间的关联关系;
代码获取模块,用于通过集成开发环境工具的自动补全功能获取使用领域特定语言的环境构建代码;
环境构建模块,用于根据所述环境构建代码调用所述资源对应的Java类构建测试环境。
8.一种计算设备,该设备包括用于存储计算机程序指令的存储器和用于执行计算机程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发所述设备执行权利要求1至6中任一项所述的方法。
9.一种计算机可读介质,其上存储有计算机程序指令,所述计算机程序指令可被处理器执行以实现如权利要求1至6中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110177066.8A CN112799954B (zh) | 2021-02-09 | 2021-02-09 | 快速构建测试环境的方法、设备及计算机可读介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110177066.8A CN112799954B (zh) | 2021-02-09 | 2021-02-09 | 快速构建测试环境的方法、设备及计算机可读介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112799954A CN112799954A (zh) | 2021-05-14 |
CN112799954B true CN112799954B (zh) | 2024-04-16 |
Family
ID=75814960
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110177066.8A Active CN112799954B (zh) | 2021-02-09 | 2021-02-09 | 快速构建测试环境的方法、设备及计算机可读介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112799954B (zh) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108073511A (zh) * | 2016-11-14 | 2018-05-25 | 平安科技(深圳)有限公司 | 测试代码生成方法和装置 |
CN108108297A (zh) * | 2016-11-25 | 2018-06-01 | 腾讯科技(深圳)有限公司 | 自动化测试的方法和装置 |
CN109284222A (zh) * | 2017-07-20 | 2019-01-29 | 阿里巴巴集团控股有限公司 | 软件单元、数据处理***中的项目测试方法、装置及设备 |
CN110673827A (zh) * | 2019-08-27 | 2020-01-10 | 广州视源电子科技股份有限公司 | 基于安卓***的资源调用方法及装置、电子设备 |
CN110764748A (zh) * | 2019-10-23 | 2020-02-07 | 北京字节跳动网络技术有限公司 | 代码调用方法、装置、终端及存储介质 |
CN111258564A (zh) * | 2020-01-17 | 2020-06-09 | 通号万全信号设备有限公司 | 一种基于qt自动生成代码的方法及装置 |
CN111309752A (zh) * | 2019-11-26 | 2020-06-19 | 上海金融期货信息技术有限公司 | 面向业务流式数据处理的领域特定语言组件及其运作方法 |
CN111694553A (zh) * | 2020-06-11 | 2020-09-22 | 广州力挚网络科技有限公司 | 一种代码处理***及方法 |
CN111858330A (zh) * | 2020-07-16 | 2020-10-30 | 苏州浪潮智能科技有限公司 | 一种测试脚本的部署方法、装置、设备及可读介质 |
CN111949543A (zh) * | 2020-08-13 | 2020-11-17 | 中国工商银行股份有限公司 | 基于分布式平台的测试方法、装置、电子设备及存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9612947B2 (en) * | 2012-12-03 | 2017-04-04 | Ca, Inc. | Code-free testing framework |
US9405512B2 (en) * | 2014-04-29 | 2016-08-02 | Ca, Inc. | Rejuvenation of legacy code into resources-oriented architectures |
-
2021
- 2021-02-09 CN CN202110177066.8A patent/CN112799954B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108073511A (zh) * | 2016-11-14 | 2018-05-25 | 平安科技(深圳)有限公司 | 测试代码生成方法和装置 |
CN108108297A (zh) * | 2016-11-25 | 2018-06-01 | 腾讯科技(深圳)有限公司 | 自动化测试的方法和装置 |
CN109284222A (zh) * | 2017-07-20 | 2019-01-29 | 阿里巴巴集团控股有限公司 | 软件单元、数据处理***中的项目测试方法、装置及设备 |
CN110673827A (zh) * | 2019-08-27 | 2020-01-10 | 广州视源电子科技股份有限公司 | 基于安卓***的资源调用方法及装置、电子设备 |
CN110764748A (zh) * | 2019-10-23 | 2020-02-07 | 北京字节跳动网络技术有限公司 | 代码调用方法、装置、终端及存储介质 |
CN111309752A (zh) * | 2019-11-26 | 2020-06-19 | 上海金融期货信息技术有限公司 | 面向业务流式数据处理的领域特定语言组件及其运作方法 |
CN111258564A (zh) * | 2020-01-17 | 2020-06-09 | 通号万全信号设备有限公司 | 一种基于qt自动生成代码的方法及装置 |
CN111694553A (zh) * | 2020-06-11 | 2020-09-22 | 广州力挚网络科技有限公司 | 一种代码处理***及方法 |
CN111858330A (zh) * | 2020-07-16 | 2020-10-30 | 苏州浪潮智能科技有限公司 | 一种测试脚本的部署方法、装置、设备及可读介质 |
CN111949543A (zh) * | 2020-08-13 | 2020-11-17 | 中国工商银行股份有限公司 | 基于分布式平台的测试方法、装置、电子设备及存储介质 |
Non-Patent Citations (2)
Title |
---|
"POU-Oriented Unit Testing of IEC 61131-3 Control Software";Marcin Jamro;《IEEE Transactions on Industrial Informatics》;第11卷(第5期);第1119-1129页 * |
"模型驱动的快速业务构建平台的研究与设计";滕建发;《中国优秀硕士学位论文全文数据库 信息科技辑》(2017年第03期);第I138-2447页 * |
Also Published As
Publication number | Publication date |
---|---|
CN112799954A (zh) | 2021-05-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9372688B1 (en) | Automatic discovery of a JavaScript API | |
US8615750B1 (en) | Optimizing application compiling | |
US8954928B2 (en) | Version labeling in a version control system | |
US9836440B2 (en) | Semantic stack trace | |
CN110489323B (zh) | 可视化的rpc api调试方法、装置、介质和设备 | |
CN113126990B (zh) | 一种页面开发方法、装置、设备及存储介质 | |
US10572371B2 (en) | Generating valid use cases from a parsed configuration file describing use case options | |
JP2021193606A (ja) | 深層学習に基づく演算子の登録処理方法、装置及び電子機器 | |
US11200048B2 (en) | Modification of codified infrastructure for orchestration in a multi-cloud environment | |
CN112631590B (zh) | 组件库生成方法、装置、电子设备和计算机可读介质 | |
CN106411970A (zh) | 一种基于服务调用的故障处理方法、装置和*** | |
US20210173641A1 (en) | Generation of knowledge graphs based on repositories of code | |
CN110941655B (zh) | 一种数据格式转换方法及装置 | |
CN113419740A (zh) | 程序数据流的分析方法、装置、电子设备及可读存储介质 | |
US20110246967A1 (en) | Methods and systems for automation framework extensibility | |
US8607201B2 (en) | Augmenting visualization of a call stack | |
US9489179B2 (en) | Application programming interface tracing mechanism | |
CN112799954B (zh) | 快速构建测试环境的方法、设备及计算机可读介质 | |
US11182272B2 (en) | Application state monitoring | |
US20220365758A1 (en) | Tool for Introspection in Object-Oriented Source Code | |
CN114579466A (zh) | 构建测试用例和代码测试的方法、装置、设备及介质 | |
CN112068814A (zh) | 可执行文件的生成方法、装置、***及介质 | |
CN111581173A (zh) | 日志***分布式存储的方法、装置、服务器及存储介质 | |
CN113342633B (zh) | 一种性能测试方法和装置 | |
CN117118962B (zh) | 用于跨多个云平台部署用户方法的方法和*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |