[发明专利]数据库的事务一致性测试方法、装置、存储介质及设备有效
申请号: | 201810124776.2 | 申请日: | 2018-02-07 |
公开(公告)号: | CN108319711B | 公开(公告)日: | 2021-07-27 |
发明(设计)人: | 刘威;王德宝;倪欣;张丹 | 申请(专利权)人: | 腾讯科技(深圳)有限公司 |
主分类号: | G06F16/23 | 分类号: | G06F16/23 |
代理公司: | 北京三高永信知识产权代理有限责任公司 11138 | 代理人: | 刘映东 |
地址: | 518057 广东省深圳*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 数据库 事务 一致性 测试 方法 装置 存储 介质 设备 | ||
本发明公开了一种数据库的事务一致性测试方法、装置、存储介质及设备,属于数据库技术领域。方法包括:获取待测试数据库存在的异常现象;获取待测试数据库的SQL测试脚本文件的注释内容;根据注释内容,确定SQL测试脚本文件中与异常现象对应的至少一个事务包含的SQL语句;获取每一条SQL语句的执行顺序,按照每一条SQL语句的执行顺序,启动预设数目线程并发执行至少一个事务的SQL语句;获取至少一个事务的SQL语句的执行结果,并根据执行结果对待测试数据库进行事务一致性测试。由于对数据库的事务一致性测试是基于注释解析自动完成,无需人工实现,所以测试效率较高、节省了大量的人力物力、测试成本较低、且准确性较高,该种方法的效果较佳、且智能化。
技术领域
本发明涉及数据库技术领域,特别涉及一种数据库的事务一致性测试方法、装置、存储介质及设备。
背景技术
事务(Transaction)又称为数据库事务,是指访问并可能更新数据库中各种数据项的一个执行单元,通常一个事务中包含对数据库进行读或写的一个操作序列。而事务一致性则是指:事务应确保数据库的状态从一个一致状态转变为另一个一致状态。其中,一致状态的含义是数据库中的数据应满足完整性约束。以转账为例,假设用户A和用户B的存款加起来一共是5000,则无论用户A和用户B之间如何转账,转账结束后总的存款数目加起来应该还是5000,这即为事务一致性。
相关技术在对数据库进行事务一致性测试时是基于人工实现,大体过程为:对于待测试数据库,由测试人员人工确定进行测试需要执行的事务,并人工确定这些事务包含的SQL(Structured Query Language,结构化查询语言)语句以及每一条SQL语句的执行顺序,最终再由测试人员人工根据SQL语句的执行结果来判断待测试数据库是否通过事务一致性测试。
在实现本发明的过程中,发明人发现相关技术至少存在以下问题:
由于对数据库的事务一致性测试是基于人工实现,所以会存在测试效率低、耗时耗力、测试成本较高等一系列问题,所以该种测试方法的效果不佳、不够智能化。
发明内容
本发明实施例提供了一种数据库的事务一致性测试方法、装置、存储介质及设备,解决了相关技术测试效率低、耗时耗力、测试成本较高等一系列的问题。所述技术方案如下:
一方面,提供了一种数据库的事务一致性测试方法,所述方法包括:
获取待测试数据库存在的异常现象;
获取所述待测试数据库的SQL测试脚本文件的注释内容;
根据所述注释内容,确定所述SQL测试脚本文件中与所述异常现象对应的至少一个事务包含的SQL语句;
获取每一条SQL语句的执行顺序,按照所述每一条SQL语句的执行顺序,启动预设数目线程并发执行所述至少一个事务的SQL语句;
获取所述至少一个事务的SQL语句的执行结果,并根据所述执行结果对所述待测试数据库进行事务一致性测试。
另一方面,提供了一种数据库的事务一致性测试装置,所述装置包括:
第一获取模块,用于获取待测试数据库存在的异常现象;
所述第一获取模块,还用于获取所述待测试数据库的SQL测试脚本文件的注释内容;
确定模块,用于根据所述注释内容,确定所述SQL测试脚本文件中与所述异常现象对应的至少一个事务包含的SQL语句;
第二获取模块,用于获取每一条SQL语句的执行顺序;
处理模块,用于按照所述每一条SQL语句的执行顺序,启动预设数目线程并发执行所述至少一个事务的SQL语句;
所述第二获取模块,还用于获取所述至少一个事务的SQL语句的执行结果;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810124776.2/2.html,转载请声明来源钻瓜专利网。