您好!
欢迎来到京东云开发者社区
登录
首页
博文
课程
大赛
工具
用户中心
开源
首页
博文
课程
大赛
工具
开源
更多
用户中心
开发者社区
>
博文
>
测试引擎——序章
分享
打开微信扫码分享
点击前往QQ分享
点击前往微博分享
点击复制链接
测试引擎——序章
Apache ShardingSphere
2021-01-19
IP归属:未知
24200浏览
# 概述 ShardingSphere提供了完善的测试引擎。它以XML方式定义SQL,每条SQL由SQL解析单元测试引擎和整合测试引擎驱动,每个引擎分别为H2、MySQL、PostgreSQL、SQLServer和Oracle数据库运行测试用例。 为了使测试更容易上手,shardingsphere 中的测试引擎不必修改任何 **Java** 代码,只需要修改相应的配置文件即可运行断言。 SQL解析单元测试全面覆盖SQL占位符和字面量维度。整合测试进一步拆分为策略和JDBC两个维度,策略维度包括分库分表、仅分表、仅分库、读写分离等策略,JDBC维度包括Statement、PreparedStatement。 因此,1条SQL会驱动5种数据库的解析 * 2种参数传递类型 + 5种数据库 * 5种分片策略 * 2 种 JDBC 运行方式 = 60个测试用例,以达到ShardingSphere对于高质量的追求。 > 鉴于表述路径时,子路径可能不止一个,名称为某一类术语的集合,这里用 SQL-TYPE 以及 SHARDING-TYPE 表述如下: > >SQL-TYPE : 是 DAL,DCL,DDL,DML,DQL,TCL 中的某一个或者集合 > >SHARDING-TYPE : 是 db,dbtbl_with_replica_query,replica_query,tbl 中的某一个或者集合 # SQL测试用例 ## 目标 SQL测试用例的代码位于 `sharding-sql-test` 模块下。该测试用例的作用主要有两个: 1. 通过单元测试,测试通配符的替换以及 `SQLCasesLoader` 的稳定性。 2. 将SQL测试用例中 `resources` 下定义的所有 SQL 共享给其他项目。 待测试的 SQL 存放在 `/sharding-sql-test/src/main/resources/sql/sharding/SQL-TYPE/*.xml`文件中。例如: ```xml <sql-cases> <sql-case id="select_constant_without_table" value="SELECT 1 as a" /> <sql-case id="select_with_same_table_name_and_alias" value="SELECT t_order.* FROM t_order t_order WHERE user_id = ? AND order_id = ?" /> <sql-case id="select_with_same_table_name_and_alias_column_with_owner" value="SELECT t_order.order_id,t_order.user_id,status FROM t_order t_order WHERE t_order.user_id = ? AND order_id = ?" db-types="MySQL,H2"/> </sql-cases> ``` 开发者通过该文件指定待断言的 SQL 以及该 SQL 所适配的数据库类型。将 `sharding-sql-test` 提取为单独的模块,以保证每个 SQL 用例可以在不同模块的测试引擎共享。 ### 流程 如下图为 SQL 测试用例的数据流程: ![](//img1.jcloudcs.com/developer.jdcloud.com/2cb5ca51-254a-4139-8233-de63eb14daeb20210119104803.jpg)
原创文章,需联系作者,授权转载
上一篇:测试引擎——整合测试引擎
下一篇:影子库压测
Apache ShardingSphere
文章数
96
阅读量
231327
作者其他文章
01
突破关系型数据库桎梏:云原生数据库中间件核心剖析
数据库技术的发展与变革方兴未艾,NewSQL的出现,只是将各种所需技术组合在一起,而这些技术组合在一起所实现的核心功能,推动着云原生数据库的发展。 NewSQL的三种分类中,新架构和云数据库涉及了太多与数据库相关的底层实现,为了保证本文的范围不至太过发散,我们重点介绍透明化分片数据库中间件的核心功能与实现原理,另外两种类型的NewSQL在核心功能上类似,但实现原理会有所差别。
01
Apache ShardingSphere数据脱敏全解决方案详解(上)
Apache ShardingSphere针对新业务上线、旧业务改造分别提供了相应的全套脱敏解决方案。
01
Shardingsphere整合Narayana对XA分布式事务的支持(4)
ShardingSphere对于XA方案,提供了一套SPI解决方案,对Narayana进行了整合,Narayana初始化流程,开始事务流程,获取连接流程,提交事务流程,回滚事务流程。
01
从中间件到分布式数据库生态,ShardingSphere 5.x革新变旧
5.x 是 Apache ShardingSphere从分库分表中间件向分布式数据库生态转化的里程碑,从 4.x 版本后期开始打磨的可插拔架构在 5.x 版本已逐渐成型,项目的设计理念和 API 都进行了大幅提升。欢迎大家测试使用!
最新回复
丨
点赞排行
共0条评论
Apache ShardingSphere
文章数
96
阅读量
231327
作者其他文章
01
突破关系型数据库桎梏:云原生数据库中间件核心剖析
01
Apache ShardingSphere数据脱敏全解决方案详解(上)
01
Shardingsphere整合Narayana对XA分布式事务的支持(4)
01
从中间件到分布式数据库生态,ShardingSphere 5.x革新变旧
添加企业微信
获取1V1专业服务
扫码关注
京东云开发者公众号