为测试准备 Keycloak
为了运行负载测试,需要存在一些配置和实体。
如果您已使用 minikube 安装了 Keycloak,则设置会自动作为安装的一部分执行。
配置
从手动或脚本配置中选择以设置用于负载测试的 realm。要设置大量的 realm、客户端和用户,请考虑使用数据集提供程序。
手动配置
某些场景需要启用 用户注册
设置。
-
选择用于测试的 realm。
-
在
Realm 设置
中,选择登录
选项卡并启用登录屏幕自定义用户注册
。
某些场景需要带密码的用户
-
创建一个用户。
-
在 凭据 选项卡中,设置密码。使密码为非临时密码,否则 Keycloak 会提示输入密码。
某些场景需要 clientId 为 gatling
的服务帐户
-
选择用于测试的 realm。
-
创建一个名为
gatling
的客户端。 -
将访问类型设置为
confidential
。 -
选中
服务帐户已启用
。 -
输入有效的重定向 URI (例如
https://#
)。 -
单击保存。
-
切换到
服务帐户角色
选项卡。 -
在
客户端角色
列表框中选择realm-management
。 -
根据下面针对各个负载模拟场景的角色映射表分配角色。
-
要传递给测试的客户端密钥可以从
凭据
选项卡复制。
场景名称 | 分配的角色 |
---|---|
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 脚本为您进行设置。
-
提取下载的 Keycloak 基准测试模块。脚本
initialize-benchmark-entities.sh
位于此模块的bin
文件夹中。 -
将 Keycloak 发行目录的路径指定为环境变量
KEYCLOAK_HOME
。 -
使用 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
-
运行以下命令以创建所需的 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