分布式关系数据库测试

引言

分布式数据库拥有多个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  ...