Pipeline E2E 测试 :: ShardingSphere

您所在的位置:网站首页 怎么做e2e测试 Pipeline E2E 测试 :: ShardingSphere

Pipeline E2E 测试 :: ShardingSphere

2024-06-12 00:59| 来源: 网络整理| 查看: 265

Pipeline E2E 测试 测试目的

验证 pipeline 各个场景的功能正确性。

测试环境类型

目前支持 NATIVE 和 DOCKER。

NATIVE:运行在开发者本机环境。需要在本机启动 ShardingSphere-Proxy 实例和数据库实例。一般用于本机调试。 DOCKER:运行在 Maven 插件拉起的 docker 环境。一般用于 GitHub Action,也可以在本机运行。

支持的数据库: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 的方式传入,优先级高于配置文件。

NATIVE 环境启动 在本地启动 ShardingSphere-Proxy(使用 3307 端口):参考 proxy 启动手册,或者修改 proxy/bootstrap/src/main/resources/conf/global.yaml 之后在 IDE 运行 org.apache.shardingsphere.proxy.Bootstrap。

Proxy 配置可以参考:

test/e2e/operation/pipeline/src/test/resources/env/mysql/server-8.yaml test/e2e/operation/pipeline/src/test/resources/env/postgresql/global.yaml test/e2e/operation/pipeline/src/test/resources/env/opengauss/global.yaml

启动注册中心(如 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 找到对应的测试类,在 IDE 启动运行。 DOCKER 环境启动

参考 .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 通过 Maven 运行测试用例。以 MySQL 为例: ./mvnw -nsu -B install -f test/e2e/operation/pipeline/pom.xml -Dpipeline.it.env.type=docker -Dpipeline.it.docker.mysql.version=mysql:5.7


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3