分布式关系数据库测试
引言
分布式数据库拥有多个server组件,不同server的功能也不一样,除了DML和DDL,集群的容灾测试也非常重要。本文介绍一种适用于分布式关系数据库的测试工具,测试用例可以实现对集群及各个server组件的管理、DDL、DML、连接管理、条件控制等等功能。
原理介绍
- 构成测试的角色:多集群、集群、各个server、TestClient
- 每一种角色都有自己的属性和行为
这些角色及它们之间的关系可以描述成一棵倒立的树,它们的属性和行为是树的叶子节点。通过访问叶子节点的路径可以得到或调用任何一个角色的属性值、行为、行为的结果。
使用技术
- 反射
- 字符串模板
CASE文法
SYNTAX:
CLUSTER_NAME.method DML DDL CLUSTER_NAME.SERVER_NAME.method CLUSTER_NAME.TESTCLIENT.method CLUSTER_NAME.connect CONN_NAME connection CONN_NAME let $var=VALUE let $result=CLUSTER_NAME.method let $result=CLUSTER_NAME.SERVER_NAME.method if(CONDITION) { # do sth. } while(CONDITION) { # do sth. } # it's a comment --error DML or DDL --exit --replace_column --affect_rows eval DDL eval DML exec SHELL_COMMAND ...