从 CLI 运行基准测试

通用的命令行,用于从任何主机针对已配置的 Keycloak 实例运行基准测试。

使用此命令针对本地运行的 Keycloak 实例运行 Keycloak 基准测试。当针对远程 Keycloak 实例以每秒超过 300 个新用户的速度运行时,由于大量处于 TIME_WAIT 模式的网络连接,负载生成可能会停滞。在这些情况下,请使用通过 Ansible 和 EC2 运行基准测试或类似的机制,将负载生成分散到多个节点上。

先决条件

  1. 来自准备 Keycloak 以进行测试的 Keycloak URL

  2. 或者下载基准测试模块,或者在本地构建它

    要按原样运行测试而无需本地修改,建议选择下载。

  3. 已安装 Java 21,并且 java 可执行文件在路径中可用。

从 CLI 运行测试

准备工作

运行测试

要开始运行测试,请执行

./kcb.sh

默认情况下,测试期望 Keycloak 在 http://0.0.0.0:8080 上运行,默认场景是 keycloak.scenarion.authentication.ClientSecret

要使用不同的服务器 URL、Realm 和场景

./kcb.sh --scenario=keycloak.scenario.authentication.AuthorizationCode --server-url=https://keycloak-keycloak.192.168.12.345.nip.io --realm-name=test-realm

有关所有可用场景及其配置选项的概述,请参阅场景概览

有关设置不同参数的信息,请参阅配置基准测试

单次运行模式 vs. 增量运行模式

在单次运行模式(默认模式)中,脚本执行一次运行并在控制台上打印结果。

在增量模式(由 CLI 选项 --increment 触发)中,脚本先运行一次基准测试作为预热,然后再次运行,如果成功,则使用参数中给出的不断增加的工作负载重复运行。一旦基准测试在其中一个增量后失败,脚本将执行更多次运行,使用较小的增量来找到最大可能的成功工作负载,并将此信息打印在控制台上。

报告

对于默认的 Gatling 生成的报告,请查看 result 目录下的报告。对于其他报告,请参阅Keycloak 基准测试的报告