跨数据中心功能测试

验证 Keycloak 应用在实际跨数据中心设置中的跨数据中心功能。作为其中的一部分,我们创建了一个测试套件,目前托管在 keycloak-benchmark-crossdc-tests

CrossDC 测试框架

当前框架由以下组件组成

测试套件根目录

keycloak-benchmark/provision/rosa-cross-dc

测试运行器

JUnit5.

测试数据

使用 数据集提供程序

缓存指标

ISPN Http REST 客户端用于访问外部 ISPN 服务器的缓存统计信息。对于嵌入式 Infinispan 缓存,我们依赖于 数据集提供程序

执行目标

一个 CrossDC 集群,可以访问两个 Keycloak 和 Infinispan 数据中心 URL。

在开发期间,我们将使用现有的基于 ROSA OCP 集群的部署来启动跨数据中心集群。

如何运行

从测试套件根目录运行以下命令来运行测试

mvn clean install -DcrossDCTests \
  -Dmain.password=<PASSWORD> \(1)
  -Ddeployment.type=active-active|active-passive \(2)
  -Ddeployment.namespace=runner-keycloak \(3)
  -Dkubernetes.1.context=<CONTEXT_1> \(4)
  -Dkubernetes.2.context=<CONTEXT_1> (5)
1 Keycloak 部署的主密码
2 要测试的部署类型,可以是 "active-active" 或 "active-passive"。如果省略,则默认为 "active-passive"。
3 包含 Keycloak 部署的命名空间,在第 4 和第 5 项中指定的 Kubernetes 集群中。
4 集群 1 的 Kubeconfig 上下文
5 集群 2 的 Kubeconfig 上下文

或者,当使用 ROSA 风格的配置设置来动态获取 MAIN_PASSWORD 时,您可以使用 run-crossdc-tests.sh(位于测试套件根目录中)目录来执行测试。

使用示例

ACTIVE_ACTIVE=true|false \
DEPLOYMENT_NAMESPACE=runner-keycloak \
KUBERNETES_1_CONTEXT=<CONTEXT_1> \
KUBERNETES_2_CONTEXT=<CONTEXT_2> \
./run-crossdc-tests.sh