跨数据中心功能测试
验证 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