DBProxy工程中包含了大量的测试用例,用来对DBProxy进行自动化测试。测试用例所在的文件路径为:
./dbproxy/tests/suite
该路径下的各个文件夹测试内容与DBProxy功能模块的对应关系:
文件夹名称 | 测试内容 |
---|---|
mysql-test | 兼容的SQL语句的测例 |
trx-test | 事务相关的测例 |
basic_manager | DBProxy基本操作模块的测例 |
user_manager | 用户管理模块的测例 |
connection_manager | 连接管理模块的测例 |
sharding_manager | 分表管理模块的测例 |
backend_manager | backend管理模块的测例 |
log_manager | 日志管理模块的测例 |
flowcontrol_manager | 流量管理模块的测例 |
statistics_manager | 统计信息管理模块的测例 |
monitor_manager | 监控管理模块的测例 |
mutable_test | 其他测例 |
- 配置
修改./dbproxy/tests/suits/test.configure文件中的对应配置,该文件的配置信息会生成DBProxy的配置文件
- 运行 进入某个测例文件夹(以basic_manager为例),然后执行语句:
cd ./dbproxy/tests/suits/basic_manager
LUA_CPATH=/usr/local/mysql-proxy/lib/mysql-proxy/lua/?.so lua ./../run-tests.lua ./
您可以仿照如下方法进行添加新的测例:
connect (conn0, 127.0.0.1, dbproxy_test, '123456', 'test', 6018); #建立连接
connection conn0; #使用该连接
#编写测试语句
show databases;
use dbproxy_test;
select * from test;
-
每个测例文件夹中都会有r文件夹和t文件夹。r文件夹放置运行结果;t文件夹放置测试用例。
-
当运行测例时选择“normal”模式时,是将DBProxy运行的结果与result文件进行对比。目前github上提供的result文件内容可能与您实际运行的结果不一致,您需要对result文件进行相应的修改,请主要关注result文件中以下内容,根据您实际情况修改:
select * from backends 执行后的结果
show variables 执行后的结果
select version 执行后的结果