验证 pipeline 各个场景的功能正确性。
目前支持 NATIVE 和 DOCKER。
支持的数据库:MySQL、PostgreSQL、openGauss。
模块路径 test/e2e/operation/pipeline
。
${DOCKER-IMAGE}
表示 docker 镜像名称,如 mysql:5.7
。 ${DATABASE-TYPE}
表示数据库类型。
目录:src/test/resources/env/
it-env.properties
:环境配置文件。${DATABASE-TYPE}/global.yaml
:ShardingSphere-Proxy 配置文件。${DATABASE-TYPE}/initdb.sql
:数据库初始化 SQL 文件。${DATABASE-TYPE}/*.cnf,*.conf
:数据库配置文件。common/*.xml
:测试用到的 DistSQL 文件。scenario/
:各个测试场景的 SQL 文件。用例示例:MySQLMigrationGeneralE2EIT。 覆盖的功能点如下:
it-env.properties
所有属性都可以通过 Maven 命令行 -D
的方式传入,优先级高于配置文件。
proxy/bootstrap/src/main/resources/conf/global.yaml
之后在 IDE 运行 org.apache.shardingsphere.proxy.Bootstrap
。Proxy 配置可以参考:
启动注册中心(如 ZooKeeper)和数据库。
以 MySQL 为例,it-env.properties
可以配置如下:
pipeline.it.env.type=NATIVE
pipeline.it.native.database=mysql
pipeline.it.native.mysql.username=root
pipeline.it.native.mysql.password=root
pipeline.it.native.mysql.port=3306
参考 .github/workflows/e2e-pipeline.yml
。
./mvnw -B clean install -am -pl test/e2e/operation/pipeline -Pit.env.docker -DskipTests
运行以上命令会构建出一个用于 E2E 测试的 docker 镜像 apache/shardingsphere-proxy-test:latest
。
该镜像设置了远程调试的端口,默认是 3308
。
如果仅修改了测试代码,可以复用已有的测试镜像。
it-env.properties
配置pipeline.it.env.type=DOCKER
pipeline.it.docker.mysql.version=mysql:5.7
./mvnw -nsu -B install -f test/e2e/operation/pipeline/pom.xml -Dpipeline.it.env.type=docker -Dpipeline.it.docker.mysql.version=mysql:5.7