[发明专利]基于业务模型进行数据库性能测试的方法有效
申请号: | 201210447972.6 | 申请日: | 2012-11-09 |
公开(公告)号: | CN103810196B | 公开(公告)日: | 2017-09-22 |
发明(设计)人: | 刘谋俊;楼方鑫 | 申请(专利权)人: | 阿里巴巴集团控股有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30;G06F11/36 |
代理公司: | 北京国昊天诚知识产权代理有限公司11315 | 代理人: | 许志勇 |
地址: | 英属开曼群岛大开*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 业务 模型 进行 数据库 性能 测试 方法 | ||
技术领域
本申请涉及数据库测试,尤其涉及一种基于业务模型进行数据库性能测试的方法。
背景技术
随着数据业务的不断发展,数据库性能在很大程度上成了一个企业效率的体现。而对数据库性能的了解,我们只能通过一些测试软件来完成。
目前数据库性能测试的软件存在着两个方面的问题,一是、不能根据特定的业务进行量身的定制。二是、不能全面复杂的测试数据的性能。现有的技术中一种是只有固定的事务模型进行测试的软件,它可以测试一些特定的业务功能,例如订单下发,而像一些比较特别的业务就不能很好的进行测试。而另外有一种就只能简单的数据库查询、添加等测试,并不能达到好的效果。
比如我们经常使用通用的测试工具如tpcc,sysbench,业务模型相对比较简单。tpcc模拟的是银行用户转账模型,而我们的应用系统模型跟tpcc用户转账模型相差较大,如果采用tpcc来测试我们的数据库,由于本身的模型的差别较大,测试的结果精确度不够,可信度不高。而sysbench本身的结果更加简单,只能配置简单的sql进行测试,数据库各个表和字段无法按照真实的业务进行模拟,表和表之间的关系也没有办法表示,测试的结果相差也是很大。
目前能够真实模拟业务的方式就是在线运行真实的应用,通过真实应用测试数据的压力,而完全从业务角度进行测试,需要使用大量的应用服务器进行测试,线上数据库和应用服务器的比例是1:50左右,想模拟真实的业务测试具体数据库的瓶颈需要使用大量的测试资源,灵活性也受到限制,并不能测试到最后数据库的瓶颈。
发明内容
针对上述缺陷,本申请提供一种数据库性能测试的方法,解决在满足业务要求的情况下优化当前数据库性能测试的问题。
本申请的基于业务模型进行数据库性能测试的方法,包括:基于业务建立所述业务的业务模型;根据所述业务模型配置与所述业务模型对应的测试信息,将配置好的测试信息保存在文件中形成测试文件;依据所述业务模型和对所述测试文件进行读取所获得的所述配置信息,测试与目标业务相关联的数据库的性能;以及将所述数据库的性能的结果作为测试结果输出。
根据本申请的实施例,在该方法中,所述配置与所述业务模型对应的测试信息还包括:配置连接数据库信息,配置创建表和定义字段信息,以及配置建立业务模型信息。
根据本申请的实施例,在该方法中,所述配置连接数据库信息还包括:配置连接不同类型的数据库,通过变更数据库的类型信息,在不同类型的数据库之间切换。
根据本申请的实施例,在该方法中,所述配置创建表和定义字段信息,还包括:根据被测试数据库中的表创建业务表;配置创建的业务表的表名和字段;定义所述字段,包括定义字段名称、字段类型、字段描述,并且,采用“;”区分字段;所述字段名称与数据库中表的字段名称一致;以及各个创建的业务表中的字段类型为随机生成的不同的数据类型,字段的数值则根据业务规则来随机生成。
根据本申请的实施例,在该方法中,所述业务模型建立还包括:把业务模型中所使用到的关系数据抽象成一个公用的集合,所述业务表中的数据从这个公用集合中取得,保证表和表之间的关系。
根据本申请的实施例,在该方法中,所述配置创建表和定义字段信息,还包括:对创建的业务表和字段的顺序进行定制,创建的业务表中的信息跟目标业务的信息保持一致,并对各个业务表的字段长度、取值范围进行配置。
根据本申请的实施例,在该方法中,所述配置建立业务模型信息,还包括:根据目标业务复杂度和/或目标业务执行逻辑,来配置所建立的业务模型的执行的方式。
根据本申请的实施例,在该方法中,所述配置建立业务模型信息,还包括:在配置好的测试文件中添加事务模型。
根据本申请的实施例,在该方法中,所述配置测试文件,还包括:测试文件中设定有不同的标签;以及对测试文件中不同的标签进行配置,定义每个标签中的信息,从而能对不同的信息加以标识,以便测试数据库性能时对测试文件的读取。
根据本申请的实施例,在该方法中,所述测试文件进行读取,还包括:根据读取的测试文件中标签的标识,解析出用于测试所述与目标业务相关联的数据库的性能的指令,模拟所述实际业务的流程以执行处理。
根据本申请的实施例,在该方法中,所述模拟所述实际业务的流程执行处理,还包括:读取出的所述业务模型中的各个事务的信息,并使用结构体链表保存;以及依据各个事务的信息,执行解析出的指令。
根据本申请的实施例,在该方法中,所述业务模型建立之前,还包括:对各种数据库进行抽象,对数据库表中字段类型及字段长度进行统一。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴集团控股有限公司,未经阿里巴巴集团控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210447972.6/2.html,转载请声明来源钻瓜专利网。