配置基准测试
使用 Gatling 进行的基准测试可以使用各种参数进行配置。
本文档描述了传递给 kcb.sh
shell 脚本的命令行选项。要运行基准测试,请参考 从 CLI 运行基准测试。
配置概述
该配置允许针对一个或多个 Keycloak 服务器、领域、用户和客户端运行基准测试。所有这些实体都需要在测试运行之前存在。有关如何执行此操作,请参阅 准备 Keycloak 进行测试。
如果配置参数允许多个值(例如,Keycloak 服务器 URL)或解析为一系列值(例如,领域名称),则这些值将在场景内随机分配给每个执行。
常规参数
CLI 选项 | 默认值 | 备注 |
---|---|---|
|
(未设置) |
Keycloak 服务器的 URL。 使用空格分隔多个 URL 以针对多个服务器 URL 运行测试。
|
|
false |
启用在场景内并发用户之间共享连接。如果负载生成器主机无法处理所需的 TCP 连接数量,这将非常有用。请注意,使用此选项将比现实世界产生更少的目标系统负载。请注意,只有在步骤之间暂停的场景才允许共享连接。
|
|
false |
由于测试可能涉及从单个测试系统到服务器上的单个主机:端口的数万个连接,因此我们可能需要添加其他地址来增加我们可以建立的 TCP 连接数量,并且这将启用这些地址的使用。当目标是
|
|
ClientSecret 场景 |
要运行的场景的完整类名,例如 |
(未设置) |
用户可以提供增量值以运行增量基准测试,以找到给定系统在模拟中设置的断言下测试的极限。如果 CLI 选项设置没有参数,则默认为 |
|
|
(未设置) |
如果应为 Gatling 进程启用 Java 远程调试。如果 CLI 选项设置没有参数,则默认为端口 |
|
|
开放式工作负载模型:每秒要添加到模拟的用户数量。每个用户将执行模拟一次。 应指定 |
|
(未设置) |
封闭式工作负载模型:执行相同场景多次的用户数量。 应指定 |
|
|
达到全部负载的预热时间。 |
|
|
测试的测量时间(以秒为单位)。 |
|
|
某些场景中使用的用户思考时间(以秒为单位)。 |
|
(未设置) |
如果设置,将记录所有失败的 HTTP 请求到控制台。 在测试期间和分析问题时启用此选项。在负载测试期间切勿使用它,因为它会降低 Gatling 的速度。 |
|
(未设置) |
如果设置,将记录所有 HTTP 请求到控制台。 将记录大量信息。仅在开发期间使用它。在负载测试期间切勿使用它,因为它会降低 Gatling 的速度。 |
|
(未设置) |
如果设置,将代理所有 HTTP 请求到您选择的代理工具,当前默认代理主机和端口分别为 在负载测试期间切勿使用它,因为它会降低 Gatling 的速度,以便能够将请求代理到代理客户端,并且通常会带来我们必须谨慎的代理细微差别。 |
|
|
运行期间请求失败的最大百分比。 |
跨多个领域、用户和客户端运行
CLI 选项 | 默认值 | 备注 |
---|---|---|
|
|
可用的领域数量。运行使用从 0 到 使用默认值 |
|
|
每个领域中可用的用户数量。运行使用从 0 到 使用默认值 |
|
1 |
每个领域中可用的客户端数量。运行使用从 0 到 使用默认值 |
当使用以下示例参数运行 CLI 时
--realm=10 --users-per-realm=10 --client-per-realm=10
这将导致在场景中使用以下值
实体 | 值 |
---|---|
领域 |
|
用户名 |
|
用户密码 |
|
客户端 ID |
|
客户端密钥 |
|
客户端重定向 URL |
相应领域的帐户控制台
|
覆盖领域、用户和客户端的默认值
CLI 选项 | 默认值 | 备注 |
---|---|---|
|
设置领域名称的前缀。使用值 如果未在 CLI 上设置,则领域名称使用 |
|
|
(未设置) |
如果设置,则测试使用此参数中设置的单个领域运行。 如果未设置并且假设 |
|
(未设置) |
如果设置,则测试使用此参数中设置的单个用户名运行。 如果未设置,则用户名从 |
|
(未设置) |
如果设置,则测试使用此参数中设置的单个密码运行。 如果未设置,则密码从 |
|
(未设置) |
如果设置,则测试使用此参数中设置的单个客户端 ID 运行。 如果未设置,则客户端 ID 从 |
|
(未设置) |
如果设置,则测试使用此参数中设置的单个客户端密钥运行。 如果未设置,则客户端 ID 从 |
|
(未设置) |
如果设置,则测试将使用此参数中设置的单个客户端重定向 URI 运行。 如果未设置,则重定向 URL 是相应领域的帐户控制台。 |
(未设置) |
在进行身份验证请求时要设置的范围的逗号分隔列表。 如果未设置,则默认范围为 |
其他设置
这些设置仅在场景需要这些设置时才需要。请参阅 场景概述 以查看场景。
CLI 选项 | 默认值 | 备注 |
---|---|---|
|
(未设置) |
|
|
(未设置) |
|
|
在场景结束时要注销的用户百分比。用于 场景 AuthorizationCode。 |
|
|
在令牌刷新之间等待的时间段。用于 场景 AuthorizationCode。 |
|
|
登录后令牌刷新的次数。用于 场景 AuthorizationCode。 |
|
|
|
在令牌刷新后关闭 HTTP 连接。用于 场景 AuthorizationCode。 |
(未设置) |
要在 场景 Get 中调用的 URL。 |
进一步阅读
有关可用选项的完整列表,请参阅 Config.java。