首页
产品
CLup:PostgreSQL高可用集群平台 CMiner: PostgreSQL中的CDC CData高性能数据库云一体机 CBackup数据库备份恢复云平台 CPDA高性能双子星数据库机 CSYun超融合虚拟机产品 ZQPool数据库连接池 ConshGuard数据保护产品
解决方案
数据库专业技术服务全栈式PostgreSQL解决方案Oracle分布式存储化数据库云PolarDB一体化解决方案
文章
客户及伙伴
中启开源
关于我们
公司简介 联系我们
中启开源
修改标题
往前插入
往后插入
删除

ZQPool测试用例

1.测试概述

本测试用例适用于ZQPool产品测试。测试内容主要针对跨机房容灾高可用、数据库读写分离、收敛数据库连接等特性,以便根据实际业务需求对产品进行评估。

2.测试方法

本次测试采用黑盒测试手段进行功能性验证测试。

3.测试环境

3.1硬件环境

硬件类别 配置 数量 备注
ZQPool服务器 CPU:8核
内存:16GB
本地硬盘:20GB
网卡:至少一块网卡,建议1000M+。
2台

3.2.ZQPool和数据库环境

数据库版本为PostgreSQL11,一主两备数据库集群,其中一主一备在A机房,另一个备库在B机房。
ZQPool1和ZQPool2分别部署在A、B两个机房,每个ZQPool都配置了所有主备数据库实例。

4.测试用例

4.1.测试用例列表

编号 测试用例
ZQ001 同城跨机房容灾高可用切换测试用例-主备切换
ZQ002 同城跨机房容灾高可用切换测试用例-PG数据库发生脑裂
ZQ003 同城跨机房容灾高可用切换测试用例-ZQPool宕机
ZQ004 读写分离测试用例-配置SQL的readonly注释,jdbc关闭autocommit
ZQ005 读写分离测试用例-配置SQL的readonly注释,jdbc开启autocommit
ZQ006 读写分离测试用例-不配置SQL的readonly注释
ZQ007 读写分离测试用例-pgjdbc负载均衡-打开autocommit,添加readonly注释
ZQ008 读写分离测试用例-pgjdbc负载均衡-打开autocommit,不添加readonly注释
ZQ009 读写分离测试用例-pgjdbc负载均衡-关闭autocommit,添加readonly注释
ZQ010 读写分离测试用例-pgjdbc负载均衡-关闭autocommit,不添加readonly注释
ZQ011 数据库连接池测试用例-并发数超过前端连接数限制
ZQ012 数据库连接池测试用例-并发数超过后端读写连接数限制
ZQ013 数据库连接池测试用例-收敛数据库连接数
ZQ014 数据库连接池测试用例-数据库短暂断开,zqpool连接池重连
ZQ015 数据库连接池测试用例-添加了readonly注释的请求并发数大于be_rd_conns
ZQ016 两个应用使用同一个ZQPool,使用不同的连接池
ZQ017 ZQPool接口测试用例-获取连接池状态
ZQ018 ZQPool接口测试用例-获取连接池信息
ZQ019 ZQPool接口测试用例-添加节点
ZQ020 ZQPool接口测试用例-移除节点
ZQ021 ZQPool接口测试用例-修改前端连接信息
ZQ022 ZQPool接口测试用例-修改后端连接信息
ZQ023 ZQPool接口测试用例-添加一个连接池
ZQ024 ZQPool接口测试用例-移除一个连接池
ZQ025 ZQPool接口测试用例-修改连接数

4.2.同城跨机房容灾高可用切换测试用例

4.2.1.主备库切换

测试目标 验证ZQPool在主备数据库实例发生切换时,能否正确感知并自动将应用的新请求路由到最新主库实例上。
前置条件 1.ZQPool已配置连接到所有的主备PG数据库,并成功建立连接池。
2.主数据库和备用数据库均处于正常运行状态,并且已经设置好实时同步或主备切换机制。
3.应用已成功连接至ZQPool并正常发送数据库请求。
测试步骤 1.确保ZQPool正在从主数据库接收并处理来自数据库的请求。
2.模拟数据库出现故障,触发数据库的主备切换。
3.观察ZQPool是否可以感知主备切换,将请求发送到新的主库。
4.在备用数据库升级为主数据库后,模拟多个不同类型和复杂度的数据库请求,包括读写操作,验证请求是否都能正确执行且结果符合预期。
预期结果 1.当数据库发生主备切换后,ZQPool可以正确感知到主备切换,并将来自应用的新的SQL请求发送到主库。
2.备库升级为主库后,写请求能正确执行且结果符合预期。
测试过程 1.将主库从a1切换到a2。
2.使用psql连接zqpool,执行下面语句更新pgbench库的pgbench_accounts表。
UPDATE pgbench_accounts SET abalance=1 WHERE aid=1;

3.更新sql执行成功
测试结果
备注

4.2.2.PG数据库发生脑裂

测试目标 验证当数据库发生脑裂时,ZQPool会把请求发送到哪个主库
前置条件 1.两个ZQPool节点都配置了所有的主备库实例。
2.应用程序在jdbc连接串中配置了两个ZQPool的地址。
3.应用与两个ZQPool都正常连接,正常发送请求
测试步骤 1.模拟脑裂的场景,将一个备库提升为主库,这时集群中有两个主库。
2.观察应用发送到ZQPool的SQL请求被发送到了哪个主库。
预期结果 1.当出现脑裂情况时,应用发送的sql写请求会被ZQPool发送到timeline大或lsn大的主库。
测试过程 1.将备库1提升为主库

2.查询两个主库的lsn和timeline,可以看到备库1的timeline和lsn大于主库。

3.使用jdbc发送写请求到ZQPool,观察发现写请求会被发送到timeline或lsn更大的备库1。
测试结果
备注

4.2.3.ZQPool宕机

测试目标 验证当ZQPool发生宕机时,当两个ZQPool都配置了所有的数据库实例,jdbc是否会将sql请求发送到另一个ZQPool
前置条件 1.两个ZQPool都配置了全部的数据库实例。
2.应用程序在jdbc连接串中配置了两个ZQPool的地址。
3.应用与两个ZQPool都正常连接,正常发送请求。
4.jdbc配置targetServerType=any
测试步骤 1.使用jdbc持续的向ZQPool发送SQL请求。
2.将ZQPool1程序进程杀掉,模拟宕机情况。
3.观察jdbc会将sql请求发送到哪个ZQPool。
4.重启ZQPool1程序,模拟宕机恢复的情况。
5.观察jdbc会将sql请求发送到哪个ZQPool。
预期结果 1.jdbc在检测到ZQPool1无法正常响应后,将请求发送到ZQPool2。
2.ZQPool1重启后,jdbc在检测到ZQPool1恢复正常,会重新将请求发送到ZQPool1。
测试过程 1.使用jdbc持续的向ZQPool发送SQL请求.

2.将ZQPool1程序杀掉,模拟宕机的情况
在将ZQPool1程序杀掉后,jdbc旧的连接会报错然后程序关闭该连接。

3.观察发现jdbc新建立的连接会连接到ZQPool2,后续的SQL请求会发送到ZQPool2。

4.重启ZQPool1程序,模拟宕机恢复的情况。
5.观察发现jdbc会与ZQPool1建立新连接,后续的SQL请求都会发送到ZQPool1。
测试结果
备注

4.3.PG数据库读写分离测试用例

4.3.1.配置SQL readonly注释

4.3.1.1.jdbc关闭autocommit

测试目标 验证在jdbc关闭autocommit,sql添加readonly注释的情况下,ZQPool会如何发送读SQL。
前置条件 1.jdbc设置autocommit=false。
2.应用程序正确配置了ZQPool。
3.应用与ZQPool正常连接,可以正常发送请求。
4.数据库状态均正常。
测试步骤 1.将sql添加/readonly/注释后,发送到ZQPool。
2.观察ZQPool会将sql请求发送到哪个数据库。
预期结果 ZQPool会把添加了/readonly/注释的sql请求全部发送到主库
测试过程 1.将添加了/readonly/注释的SQL请求发送到ZQPool

./dfq_transaction.sh jdbc:postgresql://10.197.165.36:5436/sundb kuafu chase 1 10000

2.查看数据库发现ZQPool会把请求发送到主库
测试结果
备注

4.3.1.2.jdbc开启autocommit

测试目标 验证在jdbc打开autocommit,sql添加readonly注释的情况下,ZQPool会如何发送读SQL。
前置条件 1.jdbc设置autocommit=true。
2.应用程序正确配置了ZQPool。
3.应用与ZQPool正常连接,可以正常发送请求。
4.数据库状态均正常。
测试步骤 1.将sql添加/readonly/注释后,发送到ZQPool。
2.观察ZQPool会将sql请求发送到哪个数据库。
预期结果 ZQPool会把添加了/readonly/注释的sql请求随机发送到ZQPool配置的standby节点。
测试过程 1.将添加了/readonly/注释的SQL请求发送到ZQPool。
./dfq_transaction.sh jdbc:postgresql://10.197.165.36:5436/sundb kuafu chase 1 10000

2.查看数据库发现ZQPool会把请求随机的发送到某个备库
测试结果
备注

4.3.2.不配置SQL readonly注释

测试目标 验证在sql不添加readonly注释的情况下,ZQPool会如何发送读SQL。
前置条件 1.应用程序正确配置了ZQPool。
2.应用与ZQPool正常连接,可以正常发送请求。
3.数据库状态均正常。
4.jdbc打开autocommit
测试步骤 1.不在sql中添加/readonly/注释,发送到ZQPool。
2.观察ZQPool会将sql请求发送到哪个数据库。
预期结果 1.ZQPool会把没有添加/readonly/注释的sql请求全部发送到主库。
测试过程 1.将没有/readonly/注释的读SQL发送到ZQPool。
./dfq_transaction.sh jdbc:postgresql://10.197.165.36:5436/sundb kuafu chase 1 10000
2.观察发现,ZQPool会把该SQL请求全部发送到主库
测试结果
备注

4.3.3.pgjdbc负载均衡

4.3.3.1.打开autocommit,添加readonly注释

测试目标 验证在jdbc连接串增加loadBalanceHosts=true&targetServerType=any,打开autocommit,jdbc会把请求发送到哪个ZQPool,是否读写分离
前置条件 1.jdbc中在连接串增加loadBalanceHosts=true&targetServerType=any。
2.jdbc中设置autocommit=true。
3.应用程序正确配置了所有的ZQPool。
5.应用与所有ZQPool均正常连接,可以正常发送请求。
数据库状态均正常。
测试步骤 1.多次使用jdbc发送普通的读请求到ZQPool。
2.观察jdbc会将普通的读请求发送到哪个ZQPool。
3.多次使用jdbc发送添加有/readonly/注释的读请求到ZQPool。
4.观察jdbc会将添加有/readonly/注释的读请求发送到哪个ZQPool,观察ZQPool将请求发送到哪个数据库。
预期结果 1.jdbc会将普通的读写请求负载均衡到两个ZQPool。
2.读写分离,添加有/readonly/注释的请求会被ZQPool随机发送到某个备库。
测试过程 1.多次使用jdbc发送不添加/readonly/注释的请求到ZQPool
./zqpool_transaction.sh
“jdbc:postgresql://10.197.165.36:5436,10.197.165.37:5436/sundb?loadBalanceHosts=true&targetServerType=any” kuafu chase 10 10000

2.观察发现jdbc会将普通的读请求负载均衡到两个zqpool

3.多次使用jdbc发送添加/readonly/注释的请求到ZQPool
./zqpool_transaction.sh
“jdbc:postgresql://10.197.165.36:5436,10.197.165.37:5436/sundb?loadBalanceHosts=true&targetServerType=any” kuafu chase 10 10000

4.观察发现jdbc会将添加了/readonly/注释的请求负载均衡的发送到某个ZQPool,ZQPool会把请求随机的发送到某个备库节点
测试结果
备注

4.3.3.2.打开autocommit,不添加readonly注释

测试目标 验证在jdbc连接串增加loadBalanceHosts=true&targetServerType=any,打开autocommit,jdbc会把请求发送到哪个ZQPool,是否读写分离
前置条件 1.jdbc中在连接串增加loadBalanceHosts=true&targetServerType=any
2.jdbc中设置autocommit=true
3.应用程序正确配置了所有的ZQPool
4.应用与所有ZQPool均正常连接,可以正常发送请求。
5.数据库状态均正常。
测试步骤 1.多次使用jdbc发送不添加/readonly/注释的请求到ZQPool。
2.观察jdbc会将不添加/readonly/注释的请求发送到哪个ZQPool,观察ZQPool将请求发送到哪个数据库。
预期结果 1.jdbc会将普通的读写请求负载均衡到两个ZQPool。
2.不添加/readonly/注释的读请求会被ZQPool全部发送到主库。
测试过程 1.多次使用jdbc发送不添加/readonly/注释的读请求到ZQPool。

2.观察jdbc会将不添加/readonly/注释的读请求负载均衡的发送到某个ZQPool,ZQPool会把请求全部发送到主库。
测试结果
备注

4.3.3.3.关闭autocommit,添加readonly注释

测试目标 验证在jdbc连接串增加loadBalanceHosts=true&targetServerType=any,关闭autocommit,jdbc会把请求发送到哪个ZQPool,是否读写分离
前置条件 1.jdbc中在连接串增加loadBalanceHosts=true&targetServerType=any
2.jdbc中设置autocommit=true
3.应用程序正确配置了所有的ZQPool
4.应用与所有ZQPool均正常连接,可以正常发送请求。
5.数据库状态均正常。
测试步骤 1.多次使用jdbc发送普通的读写请求到ZQPool。
2.观察jdbc会将普通的读写请求发送到哪个ZQPool。
3.多次使用jdbc发送添加/readonly/注释的请求到ZQPool。
4.观察jdbc会将添加/readonly/注释的读请求发送到哪个ZQPool,观察ZQPool将请求发送到哪个数据库。
预期结果 1.jdbc会将普通的读写请求负载均衡到两个ZQPool。
2.读写不分离,添加/readonly/注释的读请求也会被ZQPool全部发送到主库。
测试过程 1.多次使用jdbc发送普通的读写请求到ZQPool

2.观察jdbc会将普通的读写请求负载均衡到两个ZQPool

3.多次使用jdbc发送添加了/readonly/注释的请求到ZQPool。
4.观察发现jdbc会将添加/readonly/注释的读请求负载均衡的发送到某个ZQPool,ZQPool会将请求全部发送到主库。
测试结果
备注

4.3.3.4.关闭autocommit,不添加readonly注释

测试目标 验证在jdbc连接串增加loadBalanceHosts=true&targetServerType=any,关闭autocommit,jdbc会把请求发送到哪个ZQPool,是否读写分离
前置条件 1.jdbc中在连接串增加loadBalanceHosts=true&targetServerType=any
2.jdbc中设置autocommit=true
3.应用程序正确配置了所有的ZQPool
4.应用与所有ZQPool均正常连接,可以正常发送请求。
5.数据库状态均正常。
测试步骤 1.多次使用jdbc发送不添加/readonly/注释的请求到ZQPool。
2.观察jdbc会将不添加/readonly/注释的读请求发送到哪个ZQPool,观察ZQPool将请求发送到哪个数据库。
预期结果 1.jdbc会将普通的读写请求负载均衡到两个ZQPool。
2.读写不分离,不添加/readonly/注释的读请求会被ZQPool全部发送到主库。
测试过程 1.多次使用jdbc发送不添加/readonly/注释的读请求到ZQPool。

2.观察jdbc会将不添加/readonly/注释的读请求负载均衡的发送到某个ZQPool,ZQPool会把请求全部发送到主库。
测试结果
备注

4.4.数据库连接池测试用例

4.4.1.并发数超过前端连接数

测试目标 验证当应用连接到ZQPool的并发数超过ZQPool前端连接数的限制,是否会报错
前置条件 1.工具正确配置了ZQPool
2.数据库状态均正常。
3.ZQPool状态正常
测试步骤 1.设置ZQPool的fe_max_conns参数为100。
2.使用工具尝试与ZQPool建立200个连接。
3.观察在超过前端连接数限制后,新建连接是否会报错
预期结果 1.在达到100个前端连接限制后,新建立的连接都会返回FATAL: sorry, too many clients already的错误
测试过程 1.配置ZQPool的fe_max_conns参数为100。
2.使用jdbc尝试与ZQPool建立200个连接
./dfq_transaction.sh jdbc:postgresql://10.197.165.36:5436/sundb kuafu chase 200 10000

3.超过100个连接后,返回FATAL: sorry, too many clients already的错误
测试结果
备注

4.4.2.并发数超过后端读写连接数限制

测试目标 验证当应用连接到ZQPool的并发数超过ZQPool后端读写连接数的限制,是否会报错
前置条件 1.工具正确配置了ZQPool。
2.数据库状态均正常。
3.ZQPool状态正常
测试步骤 1.设置ZQPool的be_rw_conns参数为100,fe_max_conns=200。
2.使用工具尝试与ZQPool建立150个活动连接,每个连接都会向ZQPool发送多个请求。
3.观察在超过后端连接数限制后,新建活动连接是否会报错
预期结果 1.在达到100个后端读写连接限制后,新建立的连接都会返回FATAL: sorry, too many clients already(backend)的错误
测试过程 1.设置ZQPool的be_rw_conns参数为100,fe_max_conns=200。

2.使用jdbc尝试与zqpool建立150个连接

./dfq_transaction.sh jdbc:postgresql://10.197.165.36:5436/sundb kuafu chase 150 10000
3.超过100个后端读写连接数限制后,返回FATAL: sorry, too many clients already(backend)的错误
测试结果
备注

4.4.3.收敛数据库连接数

测试目标 验证数据库连接是否收敛
前置条件 1.应用正确配置了ZQPool
2.数据库状态均正常
3.ZQPool状态正常
测试步骤 1.设置ZQPool前端连接数(fe_max_conns)限制为2000,ZQPool后端连接数限制(be_rw_conns=500)
2.与ZQPool建立1000个空闲连接
3.观察数据库的连接数
预期结果 1.数据库主库实例的连接数量为500
测试过程 1.设置ZQPool前端连接数(fe_max_conns)限制为2000,ZQPool后端连接数限制(be_rw_conns=500)

2.使用jdbc与ZQPool建立1000个连接
./dfq_transaction.sh
jdbc:postgresql://10.197.165.36:5436/sundb kuafu chase 1000 10000


3.查看数据库的实际连接数,可以看到数据库的实际连接数只有500左右。
SELECT COUNT(*) FROM pg_stat_activity;
测试结果
备注

4.4.4.数据库短暂断开,连接池重连

测试目标 验证ZQPool和数据库之间发生闪断,ZQPool是否会重连
前置条件 1.jdbc正确配置了ZQPool
2.jdbc与ZQPool可以建立正常的连接
3.数据库状态正常
4.ZQPool状态正常
测试步骤 1.使用jdbc向ZQPool发送sql请求
2.观察请求是否可以被正常执行
3.将ZQPool连接的主数据库重启,模拟中断的情况
4.数据库重启成功后,再次使用jdbc向ZQPool发送sql请求
5.观察请求是否执行成功
预期结果 1.在数据库重启后,再次使用jdbc向ZQPool发送sql请求,请求在短时间内无法执行成功,会报An I/O error occurred while sending to the backend.错误。
2.等待ZQPool重新刷新后端连接池后,写请求执行成功。
测试过程 1.使用jdbc向ZQPool发送写sql,写测试数据
./dfq_transaction.sh
jdbc:postgresql://10.197.165.36:5436/sundb kuafu chase 10 1

2.请求可以被正常执行,数据库可以查到刚刚插入的数据

3.重启主库
4.立刻使用jdbc向ZQPool发送写SQL请求,请求执行失败
5.等待一会,当ZQPool重新刷新后端连接池后,请求执行成功。
测试结果
备注

4.4.5.添加了readonly注释的请求并发数大于be_rd_conns

测试目标 验证当应用连接到ZQPool,发送只带readonly注释的请求的并发数大于be_rd_conns时是否报错。
前置条件 1.工具正确配置了ZQPool,仅配置了一个ZQPool
2.数据库状态均正常。
3.ZQPool状态正常
测试步骤 1.设置ZQPool中两个备库的be_rd_conns参数为10。
2.发起30个带有/readonly/注释的并发
3.观察超过102=20个并发连接的限制后是否报错
4.发起15个带有/readonly/注释的并发
5.观察超过10个限制,但是小于102=20个总限制后是否报错
预期结果 1.在超过20个后端并发读连接限制后报错
测试过程 1.设置ZQPool中的be_rd_conns参数为10

2.使用jdbc与ZQPool建立30个带有/readonly/注释的连接
./dfq_transaction.sh
jdbc:postgresql://10.197.165.36:5436/sundb kuafu chase 30 10000

3.可以观察到,有10个连接报错FATAL: sorry, too many clients already (backend)

4.使用jdbc与ZQPool建立15个带有/readonly/注释的连接
./dfq_transaction.sh
jdbc:postgresql://10.197.165.36:5436/sundb kuafu chase
15 10000

5.可以观察到,连接不报错正常执行
测试结果
备注

4.4.6.两个应用使用同一个ZQPool,使用不同连接池

测试目标 验证两个应用使用同一个ZQPool,但使用不同的连接池,是否会互相影响
前置条件 1.ZQPool配置了两个连接池
2.两个应用分别配置了同一个ZQPool的不同连接池
3.数据库状态正常
4.ZQPool状态正常
测试步骤 1.将ZQPool中两个连接池的be_rw_conns参数均设为20。
2.两个应用分别发起15个并发写连接
观察连接是否会报错
预期结果 1.连接不会报错,请求返回正确结果
测试过程 1.在ZQPool中两个连接池的be_rw_conns均设为20。

2.使用jdbc同时连接ZQPool的两个连接池,和每个连接池建立15个连接
./dfq_transaction.sh
jdbc:postgresql://10.197.165.36:5436/sundb kuafu chase 15 10000
./dfq_transaction.sh jdbc:postgresql://10.197.165.36:5436/sundb kuafu1 chase 15 10000


3.可以看到,虽然应用连接到ZQPool的总连接数为30,但每个连接池是单独计算,互不影响,所以每个连接池连接15个连接时(小于连接池20个后端连接的限制)不会报错。
测试结果
备注

4.5.ZQPool接口测试用例

4.5.1.获取连接池状态

测试目标 验证是否可以通过接口获取连接池状态
前置条件 1.ZQPool状态正常。
2.防火墙放通对应端口和IP
测试步骤 1.使用api工具访问ZQPool获取连接池状态接口
2.观察接口是否调用成功并返回正确的结果
预期结果 1.接口调用成功并返回正确的连接池状态
测试过程 1.使用API工具访问ZQPool获取连接池状态接口
2.接口调用成功,返回了对应的连接池状态信息
测试结果
备注

4.5.2.获取连接池信息

测试目标 验证是否可以通过接口获取连接池状态
前置条件 1.ZQPool状态正常。
2.防火墙放通对应端口和IP
测试步骤 1.使用api工具访问ZQPool的获取连接池信息接口
2.观察接口是否调用成功并返回正确的结果
预期结果 1.接口调用成功并返回正确的连接池信息
测试过程 1.使用api工具访问ZQPool的获取连接池信息接口
2.接口调用成功,返回了连接池信息
测试结果
备注

4.5.3.添加节点

测试目标 验证是否可以通过接口添加节点到连接池
前置条件 1.ZQPool状态正常。
2.防火墙放通对应端口和IP
测试步骤 1.使用api工具访问ZQPool的添加节点接口
2.观察接口是否调用成功并返回正确的结果
3.查询连接池信息,查看后端数据库节点是否被添加到连接池
预期结果 1.接口调用成功并成功添加节点到连接池。
测试过程 1.使用api工具访问ZQPool的添加节点接口
2.接口调用成功

3.查询连接池信息,后端节点已经添加到连接池
测试结果
备注

4.5.4.移除节点

测试目标 验证是否可以通过接口移除连接池中的某个节点
前置条件 1.ZQPool状态正常。
2.防火墙放通对应端口和IP
测试步骤 1.使用api工具访问ZQPool的移除节点接口
2.观察接口是否调用成功并返回正确的结果
3.查询连接池信息,查看后端数据库节点是否被添加到连接池
预期结果 1.接口调用成功并成功的移除连接池中的某个节点
测试过程 1.使用api工具访问ZQPool的移除节点接口
2.接口调用成功
3.查询连接池信息,后端节点已经成功从连接池移除
测试结果
备注

4.5.5.修改前端连接信息

测试目标 验证是否可以通过接口修改连接池的前端连接信息
前置条件 1.ZQPool状态正常。
2.防火墙放通对应端口和IP
测试步骤 1.使用api工具访问ZQPool的修改前端连接信息接口
2.观察接口是否调用成功并返回正确的结果
预期结果 1.接口调用成功并成功的修改连接池的前端连接信息
测试过程 1.使用api工具访问ZQPool的修改前端连接信息接口
2.接口调用成功
3.查询连接池信息,前端连接信息已经被正确修改
测试结果
备注

4.5.6.修改后端连接信息

测试目标 验证是否可以通过接口修改连接池的后端连接信息
前置条件 1.ZQPool状态正常。
2.防火墙放通对应端口和IP
测试步骤 1.使用api工具访问ZQPool的修改后端连接信息接口
2.观察接口是否调用成功并返回正确的结果
预期结果 1.接口调用成功并成功修改连接池的后端连接信息
测试过程 1.使用api工具访问ZQPool的修改后端连接信息接口
2.接口调用成功
3.查询连接池信息,后端连接信息已经被正确修改
测试结果
备注

4.5.8.移除一个连接池

测试目标 验证是否可以通过接口添加一个连接池到ZQPool
前置条件 1.ZQPool状态正常。
2.防火墙放通对应端口和IP
测试步骤 1.使用api工具访问ZQPool的添加连接池接口
2.观察接口是否调用成功并返回正确的结果
预期结果 1.接口调用成功并成功添加一个连接池到ZQPool
测试过程 1.修改配置文件,增加一个连接池配置
2.使用api工具访问ZQPool的添加连接池接口
3.接口调用成功
4.查询连接池信息,新的连接池已经添加成功
测试结果
备注

4.5.8.移除一个连接池

测试目标 验证是否可以通过接口移除一个连接池
前置条件 1.ZQPool状态正常。
2.防火墙放通对应端口和IP
测试步骤 1.使用api工具访问ZQPool的移除连接池接口
2.观察接口是否调用成功并返回正确的结果
预期结果 1.接口调用成功并成功从ZQPool中移除一个连接池
测试过程 1.使用api工具访问ZQPool的移除连接池接口
2.接口调用成功
3.查询连接池信息,该连接池已经被成功移除
测试结果
备注

4.5.9.修改连接数

测试目标 验证是否可以通过接口修改连接池前后端连接数配置
前置条件 1.ZQPool状态正常。
2.防火墙放通对应端口和IP
3.已经通过查询获取连接池信息接口获取了前后端连接数信息
测试步骤 1.调用接口,传入pool_name和fe_max_conns参数来修改前端连接数,将fe_max_conns设置成小于当前实际前端连接数量的值。
2.观察接口是否调用成功,使用jdbc发送新的连接到ZQPool,使总前端连接数量大于新的fe_max_conns,观察是否报错。
3.调用接口,传入pool_name和be_rw_conns参数来修改后端读写连接数限制,将be_rw_conns设置成大于当前实际后端读写连接数量的值。
4.观察接口是否调用成功,使用jdbc发送新的读写连接到ZQPool,使总读写连接数大于旧的be_rw_conns限制,小于新的be_rw_conns,观察是否报错。
5.调用接口,传入pool_name和be_rd_conns参数来修改后端只读连接数限制,将be_rd_conns设置成大于当前实际后端只读连接数量的值。
6.观察接口是否调用成功,使用jdbc发送新的添加了readonly注释的请求连接到ZQPool,使总只读连接数大于旧的be_rd_conns,小于新的be_rd_conns,观察是否报错。
预期结果 1.修改前端连接数限制小于当前实际前端连接数后,建立新的前端连接会报错
2.修改后端读写连接数限制后,建立的读写连接数可以超过旧的后端读写连接数限制
3.修改后端只读连接数限制后,建立的添加了readonly注释的连接数可以超过旧的后端只读连接数限制,不会报错。
测试过程 1.调用接口,传入pool_name和fe_max_conns参数来修改前端连接数,将fe_max_conns设置成小于当前实际前端连接数量的值。
2.接口调用成功

3.观察发现,使用jdbc发送新的连接到ZQPool,使总前端连接数量大于新的fe_max_conns,超过数量的连接会报错

4.调用接口,传入pool_name和be_rw_conns参数来修改后端读写连接数限制,将be_rw_conns设置成大于当前实际后端读写连接数量的值。

5.接口调用成功
6.观察发现,使用jdbc发送新的读写连接到ZQPool,使总读写连接数大于旧的be_rw_conns限制,小于新的be_rw_conns不会报错

7.调用接口,传入pool_name和be_rd_conns参数来修改后端只读连接数限制,将be_rd_conns设置成大于当前实际后端只读连接数量的值。8.接口调用成功
9.观察发现,使用jdbc发送新的添加了readonly注释的请求连接到ZQPool,使总只读连接数大于旧的be_rd_conns,小于新的be_rd_conns,不会报错。
测试结果
备注
目录
img