1.一种分布式数据库测试方法,其特征在于,包括:
制定数据测试模型;
生成测试数据;
执行异常模拟,产生异常环境;
在异常环境下根据所述数据测试模型和测试数据同时对分布式数据库的多个数据库实例进行相应的操作;以及对服务可用性和数据正确性进行验证;
其中所述测试数据的形式为(id,k,c),所述id字段值为正整数,所述k=id*n,其中n为常量;所述c的字段值为字母A-Z中第m位对应的值,其中m=id%26,表示id的数值除以26后取余数;
所述在异常环境下根据所述数据测试模型和测试数据同时对分布式数据库的多个数据库实例进行相应的操作的步骤中,包括:通过最大Id值日志文件记录当前最大id值;
读取最大Id值日志文件中的最大id值,向多个数据库实例节点执行id加1插入操作,将插入操作的执行结果记录到i.log文件中,并对最大Id值日志文件中的最大id值进行更新;
以及
在1到最大id值的范围内对多个数据库实例节点同时执行查询、修改和删除操作,并分别将执行结果记录到查询日志文件、更新日志文件和删除日志文件。
2.根据权利要求1所述分布式数据库测试方法,其特征在于,所述数据测试模型为:同一ID的数据只能执行一次插入操作,并且查询、修改和删除的操作发生在插入操作之后。
3.根据权利要求1所述分布式数据库测试方法,其特征在于,所述异常模拟包括:实例异常模拟、链路异常模拟和机器异常模拟。
4.根据权利要求1所述分布式数据库测试方法,其特征在于,所述对服务可用性和数据正确性进行验证的步骤中,包括:判断SQL的操作log文件中是否有操作失败的记录,若有则表明验证结果为失败;
当没有操作失败记录,再判断其中一个id值是否在删除日志文件中出现,若有,判断该id值的查询预期结果是否为空;
当该id没有出现在删除日志文件中,再判断该id值是否在更新日志文件中出现,若有,以该id值在更新日志文件中出现次数表示其被更新的次数t,并预设每次更新时k值增加1,判断该id值的查询预期结果是否为:k=id*n+t、c值不变;以及当该id没有出现在删除日志文件和更新日志文件中,判断该id的查询预期结果是否与初始测试数据相同。
5.一种分布式数据库测试装置,其特征在于,包括:
测试模型制定模块,用于制定数据测试模型;
测试数据生成模块,用于生成测试数据;
异常模拟模块,用于执行异常模拟,产生异常环境;
操作模块,用于在异常环境下根据所述数据测试模型和测试数据同时对分布式数据库的多个数据库实例进行相应的操作;以及验证模块,用于对服务可用性和数据正确性进行验证;
其中所述测试数据的形式为(id,k,c),所述id字段值为正整数,所述k=id*n,其中n为常量;所述c的字段值为字母A-Z中第m位对应的值,其中m=id%26,表示id的数值除以26后取余数;
所述操作模块中包括:
记录子模块,用于通过最大Id值日志文件记录当前最大id值;
读取子模块,用于读取最大Id值日志文件中的最大id值,向多个数据库实例节点执行id加1插入操作,将插入操作的执行结果记录到i.log文件中,并对最大Id值日志文件中的最大id值进行更新;以及执行子模块,用于在1到最大id值的范围内对多个数据库实例节点同时执行查询、修改和删除操作,并分别将执行结果记录到查询日志文件、更新日志文件和删除日志文件。
6.根据权利要求5所述分布式数据库测试装置,其特征在于,所述数据测试模型为:同一ID的数据只能执行一次插入操作,并且查询、修改和删除的操作发生在插入操作之后。
7.根据权利要求5所述分布式数据库测试装置,其特征在于,所述异常模拟包括:实例异常模拟、链路异常模拟和机器异常模拟。
8.根据权利要求5所述分布式数据库测试装置,其特征在于,所述验证模块包括:第一验证子模块,用于判断SQL的操作log文件中是否有操作失败的记录,若有则表明验证结果为失败;
第二验证子模块,用于当没有操作失败记录,再判断其中一个id值是否在删除日志文件中出现,若有,判断该id值的查询预期结果是否为空;
第三验证子模块,用于当该id没有出现在删除日志文件中,再判断该id值是否在更新日志文件中出现,若有,以该id值在更新日志文件中出现次数表示其被更新的次数m,并预设每次更新时k值增加1,判断该id值的查询预期结果是否为k=id*n+m、c值不变;以及第四验证子模块,用于当该id没有出现在删除日志文件和更新日志文件中,判断该id的查询预期结果是否与初始测试数据相同。
9.一种分布式数据库测试设备,其特征在于,所述设备包括:一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求1-4中任一所述的分布式数据库测试方法。
10.一种计算机可读介质,其存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-4中任一所述的分布式数据库测试方法。