This repository was archived by the owner on Aug 18, 2020. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 75
Zeppelin 测试
Kang Wang edited this page Oct 13, 2017
·
10 revisions
| 主测试项 | 子测试项 | 预期结果 |
|---|---|---|
| 创建表 | 新表 | 正常增加表,同一个Parition的不同副本在不同机器 |
| 已存在表 | 返回已经存在 | |
| 删除表 | 正常删除表,表的数据删除到回收站 | |
| Node节点异常 | Slave宕机 | 集群epoch不增加,对应Master一直重复尝试发送Binlog |
| Slave 恢复 | 正常恢复主从关系 | |
| Slave快速重启 | epoch不增加,正常恢复主从关系 | |
| Master宕机 | 集群epoch增加,重新选出新主提供服务,其他节点正常主从关系 | |
| Master恢复 | epoch不变化,旧主重新加入恢复主从关系 | |
| Master快速重启 | epoch不增加,启动后旧Slave主动重新发起连接 | |
| 多节点宕机 | epoch增加,切主,存活的Master一直尝试发送 | |
| 多节点宕机恢复 | 恢复 | |
| Meta节点异常 | Slave宕机 | 集群正常,Node连接重新连接 |
| Slave恢复 | 恢复 | |
| Master宕机 | 重新选主,元信息恢复 | |
| Master恢复 | 以Slave的角色重新加入 | |
| 过半数Meta宕机 | Meta集群停止服务,已连接Node的请求不受影响 | |
| 集群恢复 | Node重新连接,不引起epoch变化 | |
| Node节点Meta节点同时异常 | 部分Meta宕机,Meta集群正常 | 同Node节点异常 |
| 过半数Meta宕机,Meta集群停止服务 | 宕机Node无法正常摘掉,可能仍然作为Master存在 | |
| Meta集群先恢复,Node再回复 | 宕机Node被正常摘掉 | |
| Node集群先恢复,Meta再回复 | Node无法加入,知道Meta恢复 | |
| 选主 | Master Down, 多个slave | binlog最长slave选成新主 |
| 主测试项 | 子测试项 | 预期结果 |
|---|---|---|
| 部分同步 | 正常写入,停止 | 不同副本间偏移量一致 |
| 写入中,Slave宕机 | Master合理时间间隔不断重试发送 | |
| 写入中,Slave恢复 | 一段时间后恢复,停写后偏移量一致 | |
| 写入中,Master宕机 | 发生切主 | |
| 写入中,旧Master恢复,旧Master偏移量小于新Master | 旧主偏移量被新主fallback, 重新trysync后一段时间恢复,停写后偏移量一致,replinfo中能看到正确的fallback信息,binlog目录不会有多余历史binlog | |
| 写入中,旧Master恢复,旧Master偏移量大于新Master | 旧主偏移量被新主fallback, 重新trysync后一段时间恢复,停写后偏移量一致,replinfo中能看到正确的fallback信息, binlog目录不会有多余历史binlog | |
| 写入中,Master快速重启 | 不引起epoch变化,一段时间后Slave由于lease超时,发起重连,一段时间后恢复,停写后偏移量一致 | |
| 写入中,多节点接连宕机后恢复 | 一段时间后恢复 | |
| 全同步 | addslave增加新副本,binlog位置已经不在 | 正常dump,dbsync,建立主从关系, slave的binlog文件正确删除 |
| rsync不成功 | 一段时间后Slave超时重试, 重新建立全同步 | |
| Fallback | Master宕机,epoch变化后很快重启 | offset被新主reset,统计信息可以看到fallback相关 |
| 主测试项 | 子测试项 | 预期结果 |
|---|---|---|
| 回收站 | Delete Slave | 该节点对应Partition的数据移入对应回收站 |
| Slave完成全同步 | 旧DB被移入回收站obsolete | |
| FlushDB | 对应Partition数据移入回收站 obsolete | |
| 删除表 | 对应Partition数据移入回收站 | |
| Purge Log | 持续写入数据 | 超过配置数量的binlog被删除 |
| 超过配置时间的binlog被删除 | ||
| 被Slave占用的binlog不会被删除 |
| 主测试项 | 子测试项 | 预期结果 |
|---|---|---|
| SetMaster | 设置节点是从 | 则提升为主,不影响其他表,正常建立主从关系 |
| 设置节点是Master或Single | 返回错误 | |
| AddSlave | 增加是新节点切不在该parititon中 | 增加副本,同步数据,不影响其他表 |
| 增加节点不存在 | 阻止,返回错误 | |
| 增加节点已经是主 | 阻止,返回错误 | |
| 增加节点已经是从 | 阻止,返回错误 | |
| DeleteSlave | 删除是Slave | 删除副本,不影响其他表 |
| 删除是Master | 阻止并返回错误 | |
| 已有Migrate任务 | 阻止并返回错误 | |
| Migrate | 通过Expand或Shrink开始Migrate任务 | 正常开始,运行,按预期完成迁移后结束,通过MetaStatus可以看到状态 |
| 已有在运行的Migrate任务 | 阻止并返回错误 | |
| 已经存在的node | 阻止并返回错误 | |
| 源节点不负责对应partition | skip diff | |
| 目的节点已经负责对应的parititon | skip diff | |
| CacleMigrate | 有Migrate任务 | migrate任务退出 |
| 没有Migrate任务 | 阻止并返回错误 |
| 测试项 | 测试方法 | 预期结果 |
|---|---|---|
| 同步接口测试 | zeppelin-client/tools/zp_parade | 五种同步接口在合理时间内正常完成 |
| 异步接口测试 | zeppelin-client/libzp/libzp/example/zp_async | 结果正常 |
| 接口超时测试 | zeppelin-client/libzp/libzp/example/zp_timeout | 给出不同timeout,正常反应 |
| 链接数测试 | zeppelin-client/libzp/libzp/example/zp_mget | 过程中观察与node建立的链接,被node超时断开后应该能正常销毁并重建 |
| 内存溢出测试 | valgrind 执行zp_parade | 无溢出 |
| 测试项 | 测试方法 | 预期结果 |
|---|---|---|
| 暴力测试 | zeppelin-client/libzp/libzp/example/zp_parallel | |
| 压力测试 | zeppelin-client/libzp/libzp/tool/zp_benchmark |