ベンチマークの設定
Gatling を使用したベンチマークテストは、さまざまなパラメーターで設定できます。
これは、kcb.sh
シェルスクリプトに渡されるコマンドラインオプションについて説明しています。ベンチマークを実行するには、「CLI からのベンチマークの実行」を参照してください。
設定の概要
この設定により、1つまたは複数の Keycloak サーバー、レルム、ユーザー、およびクライアントに対してベンチマークを実行できます。これらのエンティティはすべて、テストを実行する前に存在する必要があります。その方法については、「テストのための Keycloak の準備」を参照してください。
設定パラメーターが複数の値(たとえば、Keycloak サーバー URL など)を許可する場合、または値の範囲(たとえば、レルム名など)に解決される場合、これらの値はシナリオ内の各実行にランダムに割り当てられます。
一般的なパラメーター
CLI オプション | デフォルト | 注 |
---|---|---|
|
(未設定) |
Keycloak サーバーの URL。 複数のサーバー URL に対してテストを実行するには、空白で区切って複数の URL を指定します
|
|
false |
シナリオ内の同時ユーザー間で接続を共有できるようにします。これは、負荷生成ホストが必要な数の TCP 接続を処理できない場合に役立ちます。注意:このオプションを使用すると、実際の環境よりもターゲットシステムへの負荷が少なくなります。注意:ステップ間に一時停止があるシナリオのみが接続の共有を許可します。
|
|
false |
テストでは、単一のテストシステムからサーバー上の単一のホスト:ポートへの数万の接続が必要になる場合があるため、作成できる TCP 接続の数を増やすために追加のアドレスを追加する必要がある場合があり、これによりそれらの使用が可能になります。ターゲットが
|
|
ClientSecret シナリオ |
実行するシナリオの完全なクラス名。たとえば、 |
(未設定) |
ユーザーは、インクリメンタルベンチマークを実行して、シミュレーション内で設定されたアサーションについて、テスト対象システムの制限を見つけるためのインクリメント値を指定できます。CLI オプションがパラメーターなしで設定されている場合、デフォルトのインクリメント値は |
|
|
(未設定) |
Gatling プロセスで Java リモートデバッグを有効にする必要がある場合。CLI オプションがパラメーターなしで設定されている場合、デフォルトのポートは |
|
|
オープンワークロードモデル:シミュレーションに追加される秒あたりのユーザー数。各ユーザーはシミュレーションを 1 回実行します。
|
|
(未設定) |
クローズドワークロードモデル:同じシナリオを複数回実行するユーザー数。
|
|
|
フルロードに達するまでのランプアップ時間。 |
|
|
テストの測定時間(秒単位)。 |
|
|
一部のシナリオで使用されるユーザーの思考時間(秒単位)。 |
|
(未設定) |
設定すると、失敗したすべての 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 には |
|
(未設定) |
設定すると、このパラメーターで設定された単一の client-redirect-URI を使用してテストが実行されます。 設定されていない場合、リダイレクト URL は各レルムのアカウントコンソールです。 |
(未設定) |
認証リクエストを行うときに設定されるスコープのコンマ区切りリスト。 設定されていない場合、デフォルトのスコープは |
追加設定
これらの設定は、シナリオが設定を必要とする場合にのみ必要です。シナリオを確認するには、「シナリオの概要」を参照してください。
CLI オプション | デフォルト | 注 |
---|---|---|
|
(未設定) |
|
|
(未設定) |
|
|
シナリオの最後にログアウトするユーザーの割合。「シナリオ AuthorizationCode」で使用されます。 |
|
|
トークン更新の間隔。「シナリオ AuthorizationCode」で使用されます。 |
|
|
ログイン後のトークン更新回数。「シナリオ AuthorizationCode」で使用されます。 |
|
|
|
トークン更新後に HTTP 接続を閉じます。「シナリオ AuthorizationCode」で使用されます。 |
(未設定) |
「シナリオ Get」で呼び出される URL。 |
参考文献
利用可能なオプションの完全なリストについては、「Config.java」を参照してください。