准备 Keycloak 进行测试
为了运行负载测试,需要存在一些配置和实体。
如果您使用 minikube 安装了 keycloak,则设置将在安装过程中自动执行。
配置
从手动配置和脚本配置中选择,以设置用于负载测试的 realm。 要设置大量 realm、客户端和用户,请考虑使用 数据集提供程序。
手动配置
某些场景需要启用“用户注册”设置。
-
选择用于测试的 realm。
-
在“Realm 设置”中,选择“登录”选项卡,并启用登录屏幕自定义“用户注册”。
某些场景需要具有密码的用户
-
创建一个用户。
-
在 凭据 选项卡中,设置密码。 将密码设置为非临时密码,否则 Keycloak 会提示输入密码。
某些场景需要具有 clientId 为“gatling”的服务帐户
-
选择用于测试的 realm。
-
创建一个名为“gatling”的客户端。
-
将访问类型设置为“机密”。
-
选中“服务帐户已启用”。
-
输入有效的重定向 URI(例如:
http://127.0.0.1
)。 -
单击保存。
-
切换到“服务帐户角色”选项卡。
-
在“客户端角色”列表框中选择“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