-
Notifications
You must be signed in to change notification settings - Fork 6
开源代码的自动化测试探秘
kunlundb edited this page Oct 9, 2021
·
1 revision
公司内部使用Jenkins系统来对产品进行自动化测试,该系统可以被外网访问,外网用户可以通过访问 http://zettatech.tpddns.cn:18080 来获取产品测试的最新情况。
公司代码已经开源,我们针对开源代码在Jenkins中部署了一些列自动化测试,并每天检查测试结果,及时修复问题,来保证产品质量。
后续,我们还将针对开源代码部署更多的测试,更全面的保证产品代码质量。
编译测试
当前,在Jenkins系统中,我们主要部署了如下开源代码的编译测试任务:
- open_source_build_centos : 该任务在CentOS 8.3上,进行开源代码拉取,并使用默认的C/C++编译器(当前是gcc/g++)来编译代码。
- open_source_build_centos_clang: 该任务在CentOS 8.3上,进行开源代码拉取,并使用clang/clang++来编译代码。
- open_source_build_suse: 该任务在OpenSuse 15.2, 进行开源代码拉取,并使用默认的C/C++编译器(当前是gcc/g++)来编译代码。
综合测试
除了编译代码测试任务外,我们在Ubuntu 20.04上,部署了一个综合性的测试(open_source_build_ubuntu),主要包含如下内容:
- 编译: 代码拉取,并使用默认的C/C++编译器(当前是gcc/g++)来编译代码,并安装代码到指定位置。
- 打包: 将编译好的代码进行打包, 产生二进制代码包。
- 制作docker镜像: 利用二进制代码包,生成docker多合一镜像,存储节点镜像,计算节点镜像和集群管理镜像。
- 冒烟测试: 用docker多合一镜像,创建出一个集群,并对该集群执行冒烟测试, 下面详细说明。
- 集群安装测试:利用二进制包和docker镜像来创建集群,并对集群进行测试, 下面详细说明。
冒烟测试
冒烟测试使用docker多合一镜像,创建一个container, 该container内包含一个完整的集群,该集群具有如下配置:
- 一个元数据集群
- 两个存储集群
- 一个集群管理节点
当前冒烟测试针对该集群进行,主要测试如下操作:
- 连接:使用各种Driver来连接集群
- 数据操作,包含:
- 创建表
- 插入若干条数据
- 更新某些数据
- 查询表内容
- 删除某些行 我们将各种Driver的连接测试放在了冒烟测试中,主要包含如下的Driver:
- psql,使用Psql执行sql脚本
- JDBC Driver
- PHP Driver
- C Driver(libpq)
- Python Driver(psycopg2)
- Go Driver
- Javascript Driver
- C# Driver
近期还将增加如下Driver的冒烟测试:
- C++ Driver
- Rust Driver
集群安装测试
在该测试中,我们利用二进制包和各种节点镜像来创建集群。不仅测试产品代码,也测试集群的一键脚本(已开源)。
该测试主要包含以下两部分
- 创建集群:在若干台虚拟机上分别使用二进制包和docker节点镜像各部署一个数据库集群,并运行psql冒烟测试。该集群主要包含:
- 一个元数据集群
- 两个存储集群
- 一个集群管理节点
- 一键脚本操作,分别测试针对二进制包的一键脚本和针对docker节点镜像的一键脚本,主要包含的操作有:
- install: 安装集群
- stop: 停止整个集群
- start: 启动整个集群
- clean: 清理集群,包含停止集群,并删除集群的各种数据