設定基準測試

可以使用各種參數設定使用 Gatling 進行的基準測試。

這說明傳遞給 kcb.sh shell 腳本的命令列選項。若要執行基準測試,請參閱從 CLI 執行基準測試

設定概觀

此設定允許針對一個或多個 Keycloak 伺服器、領域、使用者和用戶端執行基準測試。所有這些實體都需要在測試執行之前存在。請參閱準備 Keycloak 進行測試以瞭解如何執行此操作。

如果設定參數允許多個值(例如,Keycloak 伺服器 URL)或解析為一系列值(例如,領域名稱),則這些值會隨機分配給情境內的每次執行。

一般參數

CLI 選項 預設值 注意事項

--server-url

(未設定)

Keycloak 伺服器的 URL。

指定多個以空格分隔的 URL,以針對多個伺服器 URL 執行測試

--server-url="http://host1:8080/ http://host2:8080/"

--share-connections

false

啟用在情境中並行使用者之間共用連線。如果負載產生器主機無法處理所需的 TCP 連線數量,這會很有用。請注意,使用此選項會對目標系統產生比現實世界更少的負載。請注意,只有在步驟之間暫停的情境才允許共用連線。

--share-connections=true

--use-all-local-addresses

false

由於測試可能涉及從單一測試系統到伺服器上的單一主機:連接埠的數萬個連線,我們可能需要新增其他位址以增加我們可以建立的 TCP 連線數量,這會啟用這些位址的使用。當目標是 localhost 時,不應使用此選項,因為使用外部 IP 位址無法與本機位址良好搭配。

--use-all-local-addresses=true

--scenario

ClientSecret 情境

要執行的情境的完整類別名稱,例如 keycloak.scenario.authentication.AuthorizationCode。如需所有情境的清單,請參閱情境概述

--increment

(未設定)

使用者可以提供增量值來執行增量基準測試,以找出給定受測系統在模擬中設定的判斷提示下的限制。如果 CLI 選項在沒有參數的情況下設定,則預設增量值為 32。如需深入瞭解增量擴充性基準測試的運作方式,請參閱單次執行與增量執行模式

--debug

(未設定)

是否應為 Gatling 流程啟用 Java 遠端偵錯。如果 CLI 選項在沒有參數的情況下設定,則預設連接埠為 8787。新增不同的連接埠號碼做為此 CLI 參數的引數,以變更預設連接埠。

--users-per-sec

1

開放式工作負載模型:每秒要新增至模擬的使用者數量。每個使用者都會執行模擬一次。

應指定 --users-per-sec--concurrent-users。如果未指定任何一個,則預設為將 --users-per-sec 設定為 1

--concurrent-users

(未設定)

封閉式工作負載模型:多次執行相同情境的使用者數量。

應指定 --users-per-sec--concurrent-users。如果未指定任何一個,則預設為將 --users-per-sec 設定為 1

--ramp-up

5

達到完整負載的加速時間。

--measurement

30

測試的測量時間(以秒為單位)。

--user-think-time

0

某些情境中使用的使用者思考時間(以秒為單位)。

--log-http-on-failure

(未設定)

如果設定,則會將所有失敗的 HTTP 要求記錄到主控台。

在測試期間以及分析問題時啟用此選項。切勿在負載測試期間使用此選項,因為它會降低 Gatling 的速度。

--log-http-always

(未設定)

如果設定,則會將所有 HTTP 要求記錄到主控台。

將記錄大量資訊。僅在開發期間使用此選項。切勿在負載測試期間使用此選項,因為它會降低 Gatling 的速度。

--http-proxy

(未設定)

如果設定,則會將所有 HTTP 要求 Proxy 至您選擇的 Proxy 工具,而目前預設的 Proxy 主機和連接埠分別為 127.0.0.18888。目前無法設定這些值。

切勿在負載測試期間使用此選項,因為它會降低 Gatling 的速度,才能夠將要求 Proxy 至 Proxy 用戶端,並且通常需要我們注意的 Proxy 細微差異。

--sla-error-percentage

0

執行期間失敗的要求最大百分比。

跨多個領域、使用者和用戶端執行

CLI 選項 預設值 注意事項

--realms

1

可用的領域數量。使用從 0 到 --realms 減 1 的領域執行測試情境。

使用預設值 1 且未設定--realm-prefix,這只會導致使用 realm-0

--users-per-realm

1

每個領域中可用的使用者數量。使用從 0 到 --users-per-realm 減 1 的使用者執行測試情境。

使用預設值 1,這只會導致使用 user-0

--clients-per-realm

1

每個領域中可用的用戶端數量。使用從 0 到 --users-per-realm 減 1 的用戶端執行測試情境。

使用預設值 1,這只會導致使用 client-0

當使用下列範例參數執行 CLI 時

--realm=10 --users-per-realm=10 --client-per-realm=10

這會導致在情境中使用下列值

實體

領域

realm-0 ... realm-9

使用者名稱

user-0 ... user-9

使用者密碼

user-0-password ... user-9-password

用戶端 ID

client-0 ... client-9

用戶端密碼

client-0-secret ... client-9-secret

用戶端重新導向 URL

各個領域的帳戶主控台

https://127.0.0.1:8080/realms/realm-0/account ... https://127.0.0.1:8080/realms/realm-9/account

覆寫領域、使用者和用戶端的預設值

CLI 選項 預設值 注意事項

--realm-prefix

realm-

設定領域名稱的前置詞。使用 myrealm 的值,它會使用 myrealm-0myrealm-1、…。

如果未在 CLI 上設定,領域名稱會使用 realm- 前置詞。例如:realm-0realm-1 …。

--realm-name

(未設定)

如果設定,測試會使用此參數中設定的單一領域執行。

如果未設定,並假設未設定--realm-prefix,則領域名稱會從 realm-0 開始編號。

--username

(未設定)

如果設定,測試會使用此參數中設定的單一使用者名稱執行。

如果未設定,使用者名稱會從 user-0 開始編號。

--user-password

(未設定)

如果設定,測試會使用此參數中設定的單一密碼執行。

如果未設定,密碼會從 user-0-password 開始編號。

--client-id

(未設定)

如果設定,測試會使用此參數中設定的單一用戶端 ID 執行。

如果未設定,用戶端 ID 會從 client-0 開始編號。

--client-secret

(未設定)

如果設定,測試會使用此參數中設定的單一用戶端密碼執行。

如果未設定,用戶端 ID 會從 client-0-secret 開始編號。

--client-redirect-uri

(未設定)

如果設定,測試會使用此參數中設定的單一用戶端重新導向 URI 執行。

如果未設定,重新導向 URL 會是各個領域的帳戶主控台。

--scope

(未設定)

以逗號分隔的範圍清單,在發出驗證要求時設定。

如果未設定,則預設範圍為 openid profile

其他設定

只有在情境需要這些設定時,才需要這些設定。請參閱情境概述以檢閱情境。

CLI 選項 預設值 注意事項

--admin-username

(未設定)

master 領域中管理使用者的使用者名稱。

--admin-password

(未設定)

master 領域中管理使用者的密碼。

--logout-percentage

100

在情境結束時登出的使用者百分比。用於情境 AuthorizationCode

--refresh-token-period

0

權杖重新整理之間的等待時間。用於情境 AuthorizationCode

--refresh-token-count

0

登入後權杖重新整理的次數。用於情境 AuthorizationCode

--refresh-close-http-connection

true

在權杖重新整理後關閉 HTTP 連線。用於情境 AuthorizationCode

--basic-url

(未設定)

情境 Get中呼叫的 URL。

延伸閱讀

如需可用選項的完整清單,請參閱Config.java