Keycloak のテスト準備
負荷テストを実行するには、いくつかの設定とエンティティが存在する必要があります。
minikube を使用して Keycloak をインストールした場合、セットアップはインストールの一部として自動的に実行されます。
設定
負荷テスト用のレルムを設定するには、手動またはスクリプトによる設定から選択してください。多数のレルム、クライアント、およびユーザーを設定するには、データセットプロバイダーの使用を検討してください。
手動設定
一部のシナリオでは、「ユーザー登録」設定を有効にする必要があります。
-
テストに使用するレルムを選択します。
-
「レルム設定」で、「ログイン」タブを選択し、ログイン画面のカスタマイズ「ユーザー登録」を有効にします。
一部のシナリオでは、パスワードを持つユーザーが必要です
-
ユーザーを作成します。
-
「資格情報」タブで、パスワードを設定します。Keycloak はそれ以外の場合パスワードを要求するため、パスワードを一時的でないものにしてください。
一部のシナリオでは、clientId が gatling
のサービスアカウントが必要です
-
テストに使用するレルムを選択します。
-
名前が
gatling
のクライアントを作成します。 -
アクセスタイプを
confidential
に設定します。 -
「サービスアカウントを有効にする」をチェックします。
-
有効なリダイレクト URI (例:
https://
) を入力します。 -
保存をクリックします。
-
「サービスアカウントロール」タブに切り替えます。
-
「クライアントロール」リストボックスで
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
-
必要なレルム、クライアント、およびユーザーを作成するために、次のコマンドを実行します。
./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