准备 Keycloak 进行测试

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

如果您使用 minikube 安装了 keycloak,则设置将在安装过程中自动执行。

先决条件

  1. 正在运行的 Keycloak 安装。

配置

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

手动配置

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

  1. 选择用于测试的 realm。

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

某些场景需要具有密码的用户

  1. 创建一个用户。

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

某些场景需要具有 clientId 为“gatling”的服务帐户

  1. 选择用于测试的 realm。

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

  3. 将访问类型设置为“机密”。

  4. 选中“服务帐户已启用”。

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

  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