本发明涉及一种高可用测试优化方法,更具体的说,本发明主要涉及一种基于集合枚举树和剪枝策略的分布式数据库测试方法。
背景技术:
1、高可用(high availability,即ha)的主要是目的是为保障业务连续性,即在客户的眼中,即使系统出现了某些故障,系统在短暂的恢复后仍能正常提供服务。分布式数据库高可用测试,即在业务运行在数据库的过程中,通过模拟数据库相关组件故障,观察业务连续性或者说在故障的情况下数据库是否能继续提供服务。在分布式数据库领域,会有各种技术手段来保障业务连续性,那么针对高可用的测试验证对于每一家数据库服务提供厂商来说都至关重要。对比单机版数据库,分布式数据库产品架构复杂且涉及到数据库内核组件更多,针对高可用测试的故障场景是呈现爆炸性的增加。如果采用常规的测试步骤,由于分布式数据库高可用测试设计也很复杂,很容易出现设计出重复测试场景、丢失测试场景等情况。因而有必要针对此类测试方法的优化设计进行研究。
技术实现思路
1、本发明的目的之一在于针对上述不足,提供一种基于集合枚举树和剪枝策略的分布式数据库测试方法,以期望解决现有技术中同类测试方法容易出现重复测试场景、丢失测试场景等技术问题。
2、为解决上述的技术问题,本发明采用以下技术方案:
3、本发明所提供的一种基于集合枚举树和剪枝策略的分布式数据库高可用测试方法,其特征在于所述的方法包括如下步骤:
4、步骤a、细化测试组件,根据分布式数据库的技术架构,列出并细化需要测试的数据库相关组件。
5、步骤b、根据所述数据库相关组件,生成树形的根测试场景,并由根测试场景开始生成子树节点,根据设定规则分别生成所有子树节点的测试场景;然后判断当前的子树节点的测试场景中是否存在未生成测试场景的子树节点;如判断结果为是,则重复步骤b;如判断结果为否,则默认当前所有子树节点的测试场景为全部测试场景,得到集合枚举树;
6、步骤c、根据集合枚举树中的子树节点,依次生成对应的测试场景,然后判断当前生成的测试场景在集合枚举树中是否存在重复测试场景;如判断结果为是,则删除当前生成的测试场景;如判断结果为否,则进一步判断当前生成的测试场景是否违反数据约束;如判断结果为是,则删除当前生成的测试场景;如判断结果为否,则将当前生成的子树测试场景加入至所述集合枚举树中。
7、作为优选,进一步的技术方案是:所述的方法还包括步骤d、通过述集合枚举树中的测试场景对测试场景进行测试验证,并统计测试结果。
8、更进一步的技术方案是:所述步骤d中,在子树节点的测试场景生成后,与对应的子树节点一同存储在列表中,通过集合枚举树的层次遍历所述列表,即可得到子树节点以及与之对应测试场景。
9、更进一步的技术方案是:所述设定规则由测试策略得到。
10、更进一步的技术方案是:所述步骤b中,继续由根测试场景开始生成子树节点,根据设定规则分别生成所有子树节点的测试场景,为继续生成当前的子树节点的测试场景的下一层的所有子树节点的测试场景。
11、更进一步的技术方案是:所述将当前生成的子树测试场景加入至所述集合枚举树中后,还进一步判断集合枚举树中的子树节点中是否存在未生成的子树测试场景;如判断结果为否,则步骤结束,得到剪枝后的集合枚举树;如判断结果为是,则继续生成对应的测试场景,然后判断当前生成的测试场景在集合枚举树中是否存在重复测试场景。如判断结果为是,则删除当前生成的测试场景;如判断结果为否,则进一步判断当前生成的测试场景是否违反数据约束;如判断结果为是,则删除当前生成的测试场景。如判断结果为否,则将当前生成的测试场景加入至所述集合枚举树中。
12、与现有技术相比,本发明的有益效果是:
13、通过集合枚举树来结构化描述分布式数据库的高可用测试场景,将测试场景构建成一棵枚举树,通过不断生成子树测试场景,最后生成的整棵集合枚举树代表所有测试场景。
14、结合自身数据库组件特点,在构造整棵集合枚举树的过程中可以针对这棵集合枚举树中无效节点或者重复节点进行剪枝处理,从而达到优化测试场景目的。利用集合枚举树的树形结构来展示和构建分布式数据库高可用测试场景,不但能更加直观的统计测试场景,而且结合数据库产品自身架构可以对整个集合枚举树进行剪枝,更加方便优化无效测试场景和重复测试场景,同时基于集合枚举树的树形结构,测试场景自动化也更加直观和容易实现。
1.一种基于集合枚举树和剪枝策略的分布式数据库测试方法,其特征在于所述的方法包括如下步骤:
2.根据权利要求1所述的基于集合枚举树和剪枝策略的分布式数据库测试方法,其特征在于所述的方法还包括如下步骤:
3.根据权利要求2所述的基于集合枚举树和剪枝策略的分布式数据库测试方法,其特征在于:所述子树节点的测试场景生成后,与对应的子树节点一同存储在列表中,通过集合枚举树的层次遍历所述列表,即可得到子树节点以及与之对应测试场景,从而进行测试验证。
4.根据权利要求1所述的基于集合枚举树和剪枝策略的分布式数据库测试方法,其特征在于:所述设定规则由测试策略得到。
5.根据权利要求1所述的基于集合枚举树和剪枝策略的分布式数据库测试方法,其特征在于:所述继续由根测试场景开始生成子树节点,根据设定规则分别生成所有子树节点的测试场景,为继续生成当前的子树节点的测试场景的下一层的所有子树节点的测试场景。
6.根据权利要求1所述的基于集合枚举树和剪枝策略的分布式数据库测试方法,其特征在于:所述将当前生成的子树测试场景加入至所述集合枚举树中后,还进一步判断集合枚举树中的子树节点中是否存在未生成的子树测试场景;