(19)中华人民共和国国家知识产权局
(12)发明专利申请
(10)申请公布号 CN 112685323 A(43)申请公布日 2021.04.20
(21)申请号 202110079387.4(22)申请日 2021.01.21
(71)申请人 浪潮云信息技术股份公司
地址 250100 山东省济南市高新区浪潮路
1036号浪潮科技园S01号楼(72)发明人 高广泽 石光银 蔡卫卫 高传集
孙思清 张晖 江燕 (74)专利代理机构 济南信达专利事务所有限公
司 37100
代理人 阚恭勇(51)Int.Cl.
G06F 11/36(2006.01)
权利要求书2页 说明书5页 附图1页
(54)发明名称
一种实现自定义端到端测试用例编写的方法
(57)摘要
本发明提供一种实现自定义端到端测试用例编写的方法,属于云计算技术领域,本发明包括:a)规划Gitlab进行端到端测试用例版本管理;b)规划Sonobuoy生成端到端测试插件;c)规
d)规划Golang包管划Sonobuoy执行端到端测试;
理不同组件的测试用例;e)规划Docker构建端到端测试镜像。提高了测试工程师的工作效率,还有利于测试工程师更好的了解被测试项目及提高自身技术水平。
CN 112685323 ACN 112685323 A
权 利 要 求 书
1/2页
1.一种实现自定义端到端测试用例编写的方法,其特征在于,包括:
a)规划Gitlab进行端到端测试用例版本管理b)规划Sonobuoy生成端到端测试插件c)规划Sonobuoy执行端到端测试
d)规划Golang包管理不同组件的测试用例e)规划Docker构建端到端测试镜像。2.根据权利要求1所述的方法,其特征在于,a)用户在项目下新建对应测试组件的文件夹,然后在文件夹下新建*.go文件并在其中编写测试用例,编写完成后提交代码到gitlab仓库;
b)使用go test编译端到端测试项目生成测试的二进制文件;c)使用docker将上一步生成的测试的二进制文件制作成镜像,并将需要的组件打包进去;
d)创建Sonobuoy插件,运行上一步创建出来的镜像。测试人员编写的端到端测试用例会被执行,执行结果按相应格式输出。
3.根据权利要求2所述的方法,其特征在于,Gitlab配置
a)创建一个代码仓库作为端到端测试的项目仓库b)按照测试需要编写端到端测试用例,并提交代码到镜像仓库。4.根据权利要求2所述的方法,其特征在于,Docker配置
a)编写Dockerfile
b)将二进制测试文件,配置文件及相应组件打包到镜像中c)制作镜像并打相应标签,并且可以根据需要选择是否需要推送到镜像仓库。5.根据权利要求2所述的方法,其特征在于,Sonobuoy配置a)使用sonobuoy gen plugin命令生成插件定义文件;b)使用插件定义文件和docker镜像运行端到端测试;c)生成测试结果并保存到本地。6.根据权利要求2所述的方法,其特征在于,端到端测试项目使用Go语言编写;各文件夹及文件作用如下:1)go.mod和go.sum文件为记录项目依赖组件所需文件;2)e2e_test.go和e2e.go为端到端测试主文件;3)api文件夹用于存放需要测试组件的api;
4)components文件夹用于放置不同组件的测试用例;5)utils用于存放执行测试用例所需工具;6)vendor下存放端到端测试项目依赖。7.根据权利要求6所述的方法,其特征在于,测试用例模板的主要函数的功能如下:
2
CN 112685323 A
权 利 要 求 书
2/2页
1)Describe:将一个及以上的测试用例归类,描述一种行为或者一个方法;2)Context:增加条件语句,尽可能全地覆盖各种条件;3)It:包含的代码为一个测试用例。8.根据权利要求5所述的方法,其特征在于,Sonobuoy各命令作用如下:1)sonobuoy gen plugin用于生成拉起端到端测试插件的yaml文件;‑‑name为插件名,‑‑image为执行插件的镜像;
2)sonobuoy run用于执行插件以进行端到端测试;‑p为插件名‑‑image‑pull‑policy为镜像拉取策略。
3
CN 112685323 A
说 明 书
一种实现自定义端到端测试用例编写的方法
1/5页
技术领域
[0001]本发明涉及云计算技术领域,尤其涉及一种实现自定义端到端测试用例编写的方法。
背景技术
[0002]近年来,云计算及相关各种技术蓬勃发展,云计算领域日新月异。得力于云计算平台的安全,可靠及高效性,越来越多的、企业以及其他的各种机构选择将自己的应用部署到云平台上。随着云计算技术的蓬勃发展,云计算相关软件的验证及测试在云计算软件的开发及部署过程中对软件的可靠性及安全性起到了越来越重要的作用。由于云计算软件复杂度高,并且多为分布式架构,其测试的难度相对于其他软件也较高。尤其是云计算领域的端到端测试,传统测试所采取的方法仍为手动测试,自动化水平比较低,耗费时间长,并且无法实现复用。
[0003]云计算平台是一个分布式系统,并且需要在各种环境中与其他系统一起工作,端到端测试在这种分布式系统中起着重要的作用。在这种情况下,需要对其进行全方面的检查,以确保不同平台和环境之间的精确交互。端到端测试是指测试时将应用程序与其依赖系统一起进行测试,确保程序的前后端或上下游能顺畅交互,从而保证业务上实现闭环,确保满足客户的使用需求。
[0004]Gitlab是一个开源的Git仓库管理软件,与Git结合使用能够实现软件项目的版本管理。
[0005]Kubernetes是一个开源的,用于管理云平台中多个主机上的容器的应用。Kubernetes的目标是让部署容器化的应用简单并且高效,Kubernetes提供了应用部署,规划,更新,维护的一种机制。
[0006]Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的Linux或Windows机器上。容器时完全使用沙箱机制的,相互之间不会有任何接口。
[0007]Sonobuoy是一种Kubernetes集群诊断工具。通过以可访问和非破坏性的方式运行一系列配置测试,Sonobuoy可以更容易地了解Kubernetes集群的状态。[0008]go test命令是一个按照一定的约定和组织来测试代码的程序。在包目录内,所有以_test.go为后缀名的源文件在执行go build时不会被构建成包的一部分,它们是go test测试的一部分。go test命令会遍历所有的*_test.go文件中符合命名规则的函数,生成一个临时的main包用于调用相应的测试函数,接着构建并运行、报告测试结果,最后清理测试中生成的临时文件。
发明内容
[0009]为了解决以上技术问题,本发明提供了一种实现自定义端到端测试用例编写的方法,能够简化测试人员的操作,通过代码方式实现端到端测试的自动化和复用,节省时间和
4
CN 112685323 A
说 明 书
2/5页
人力成本,提高工作效率。
[0010]本发明的技术方案是:
[0011]一种实现自定义端到端测试用例编写的方法,[0012]包括:
[0013]a)规划Gitlab进行端到端测试用例版本管理[0014]b)规划Sonobuoy生成端到端测试插件[0015]c)规划Sonobuoy执行端到端测试
[0016]d)规划Golang包管理不同组件的测试用例[0017]e)规划Docker构建端到端测试镜像。[0018]进一步的,
[0019]a)用户在项目下新建对应测试组件的文件夹,然后在文件夹下新建*.go文件并在其中编写测试用例,编写完成后提交代码到gitlab仓库;[0020]b)使用go test编译端到端测试项目生成测试的二进制文件;[0021]c)使用docker将上一步生成的测试的二进制文件制作成镜像,并将需要的组件打包进去;
[0022]d)创建Sonobuoy插件,运行上一步创建出来的镜像。测试人员编写的端到端测试用例会被执行,执行结果按相应格式输出。[0023]进一步的,[0024]Gitlab配置
[0025]c)创建一个代码仓库作为端到端测试的项目仓库[0026]d)按照测试需要编写端到端测试用例,并提交代码到镜像仓库。[0027]Docker配置
[0028]d)编写Dockerfile
[0029]e)将二进制测试文件,配置文件及相应组件打包到镜像中[0030]f)制作镜像并打相应标签,并且可以根据需要选择是否需要推送到镜像仓库[0031]Sonobuoy配置[0032]a)使用sonobuoy gen plugin命令生成插件定义文件;[0033]b)使用插件定义文件和docker镜像运行端到端测试;[0034]c)生成测试结果并保存到本地。[0035]进一步的,
[0036]端到端测试项目使用Go语言编写;各文件夹及文件作用如下:[0037]1)go.mod和go.sum文件为记录项目依赖组件所需文件;[0038]2)e2e_test.go和e2e.go为端到端测试主文件;[0039]3)api文件夹用于存放需要测试组件的api;
[0040]4)components文件夹用于放置不同组件的测试用例;[0041]5)utils用于存放执行测试用例所需工具;[0042]6)vendor下存放端到端测试项目依赖。[0043]测试用例模板的主要函数的功能如下:[0044]1)Describe:将一个及以上的测试用例归类,描述一种行为或者一个方法;
5
CN 112685323 A[0045]
说 明 书
3/5页
2)Context:增加条件语句,尽可能全地覆盖各种条件;
[0046]3)It:包含的代码为一个测试用例。[0047]Sonobuoy各命令作用如下:[0048]1)sonobuoy gen plugin用于生成拉起端到端测试插件的yaml文件;[0049]‑‑name为插件名,‑‑image为执行插件的镜像;[0050]2)sonobuoy run用于执行插件以进行端到端测试;‑p为插件名[0051]‑‑image‑pull‑policy为镜像拉取策略。[0052]本发明的有益效果是
[0053]本发明实现了一种kubernetes上自定义端到端测试用例编写的方法,为端到端测试提供了一整套解决方案。端到端测试由以往的手动测试变为了现在的自动化测试,实现
不仅提高了测试工程师的工作效率,还有利于测试工程师更好的了解被测了测试的复用,
试项目及提高自身技术水平。
附图说明
[0054]图1是本发明的工作流程示意图;[0055]图2是文件结构示意图。
具体实施方式
[0056]为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是
而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员本发明一部分实施例,
在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。[0057]本发明基于sonobuoy和golang test提供端到端测试的一体化解决方法。[0058]工作流程如图1所示。自定义端到端测试用例编写方法的流程如下:[0059]a)用户在项目下新建对应测试组件的文件夹,然后在文件夹下新建*.go文件并在其中编写测试用例,编写完成后提交代码到gitlab仓库。文件结构如图2所示。[0060]b)使用go test编译端到端测试项目生成测试的二进制文件[0061]c)使用docker将上一步生成的测试的二进制文件制作成镜像,并将需要的组件打包进去
[0062]d)创建Sonobuoy插件,运行上一步创建出来的镜像。测试人员编写的端到端测试用例会被执行,执行结果按相应格式输出。[0063](一)Gitlab配置
[00]e)创建一个代码仓库作为端到端测试的项目仓库[0065]f)按照测试需要编写端到端测试用例,并提交代码到镜像仓库[0066](二)Docker配置[0067]g)编写Dockerfile
[0068]h)将二进制测试文件,配置文件及相应组件打包到镜像中[0069]i)制作镜像并打相应标签,并且可以根据需要选择是否需要推送到镜像仓库[0070](三)Sonobuoy配置
6
CN 112685323 A[0071][0072][0073][0074][0075]
说 明 书
4/5页
a)使用sonobuoy gen plugin命令生成插件定义文件b)使用插件定义文件和docker镜像运行端到端测试。c)生成测试结果并保存到本地。端到端测试项目结构
端到端测试项目使用Go语言编写,项目结构如图2所示。各文件夹及文件作用如1.go.mod和go.sum文件为记录项目依赖组件所需文件。2.e2e_test.go和e2e.go为端到端测试主文件3.api文件夹用于存放需要测试组件的api
4.components文件夹用于放置不同组件的测试用例。5.utils用于存放执行测试用例所需工具6.vendor下存放端到端测试项目依赖(一)端到端测试用例模板样例
下:
[0076][0077][0078][0079][0080][0081][0082]
[0083]
[0084][0085][0086][0087][0088]
测试用例模板如上所示,主要函数的功能如下:1.Describe:将一个或多个测试用例归类,描述一种行为或者一个方法2.Context:增加条件语句,尽可能全地覆盖各种条件3.It:包含的代码为一个测试用例Sonobuoy制作及启动插件示例
[00]
7
CN 112685323 A[0090]
说 明 书
5/5页
Sonobuoy各命令作用如下:
[0091]1.sonobuoy gen plugin用于生成拉起端到端测试插件的yaml文件。‑‑name[0092]为插件名,‑‑image为执行插件的镜像。[0093]2.sonobuoy run用于执行插件以进行端到端测试。‑p为插件名[0094]‑‑image‑pull‑policy为镜像拉取策略。[0095]以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
8
说 明 书 附 图
图1
图2
9
1/1页
CN 112685323 A