为测试准备 Keycloak

为了运行负载测试,需要存在一些配置和实体。

如果您已使用 minikube 安装了 Keycloak,则设置会自动作为安装的一部分执行。

先决条件

  1. 正在运行的 Keycloak 安装。

配置

从手动或脚本配置中选择以设置用于负载测试的 realm。要设置大量的 realm、客户端和用户,请考虑使用数据集提供程序

手动配置

某些场景需要启用 用户注册 设置。

  1. 选择用于测试的 realm。

  2. Realm 设置 中,选择 登录 选项卡并启用登录屏幕自定义 用户注册

某些场景需要带密码的用户

  1. 创建一个用户。

  2. 凭据 选项卡中,设置密码。使密码为非临时密码,否则 Keycloak 会提示输入密码。

某些场景需要 clientId 为 gatling 的服务帐户

  1. 选择用于测试的 realm。

  2. 创建一个名为 gatling 的客户端。

  3. 将访问类型设置为 confidential

  4. 选中 服务帐户已启用

  5. 输入有效的重定向 URI (例如 https://#)。

  6. 单击保存。

  7. 切换到 服务帐户角色 选项卡。

  8. 客户端角色 列表框中选择 realm-management

  9. 根据下面针对各个负载模拟场景的角色映射表分配角色。

  10. 要传递给测试的客户端密钥可以从 凭据 选项卡复制。

场景名称 分配的角色

CreateClient

manage-clients, view-users

CreateDeleteClient

manage-clients, view-users

CrawlUsers

manage-clients, view-users

CreateRole

manage-realm

CreateDeleteRole

manage-realm

CreateClientScope

manage-clients, view-users

CreateDeleteClientScope

manage-clients, view-users

CreateGroup

manage-users

CreateDeleteGroup

manage-users

CreateUsers

manage-users

CreateDeleteUsers

manage-users

脚本配置

您可以不按照上述手动步骤操作,而是使用此 initialize-benchmark-entities.sh 脚本为您进行设置。

  1. 提取下载的 Keycloak 基准测试模块。脚本 initialize-benchmark-entities.sh 位于此模块的 bin 文件夹中。

  2. 将 Keycloak 发行目录的路径指定为环境变量 KEYCLOAK_HOME

  3. 使用 Keycloak 发行版附带的 kcadm.sh CLI 脚本登录到 Keycloak 服务器。

    $KEYCLOAK_HOME/bin/kcadm.sh config credentials --server https://keycloak-keycloak.192.168.12.345.nip.io --realm master --user admin --password admin
  4. 运行以下命令以创建所需的 realm、客户端和用户。

    ./initialize-benchmark-entities.sh -r test-realm -c gatling -u user-0

    使用 -d 标志,从头开始重新创建实体以应对任何原因。

    ./initialize-benchmark-entities.sh -r test-realm -c gatling -u user-0 -d