Keycloak のテスト準備

負荷テストを実行するには、いくつかの設定とエンティティが存在する必要があります。

minikube を使用して Keycloak をインストールした場合、セットアップはインストールの一部として自動的に実行されます。

前提条件

  1. 実行中の Keycloak インストール。

設定

負荷テスト用のレルムを設定するには、手動またはスクリプトによる設定から選択してください。多数のレルム、クライアント、およびユーザーを設定するには、データセットプロバイダーの使用を検討してください。

手動設定

一部のシナリオでは、「ユーザー登録」設定を有効にする必要があります。

  1. テストに使用するレルムを選択します。

  2. 「レルム設定」で、「ログイン」タブを選択し、ログイン画面のカスタマイズ「ユーザー登録」を有効にします。

一部のシナリオでは、パスワードを持つユーザーが必要です

  1. ユーザーを作成します。

  2. 「資格情報」タブで、パスワードを設定します。Keycloak はそれ以外の場合パスワードを要求するため、パスワードを一時的でないものにしてください。

一部のシナリオでは、clientId が gatling のサービスアカウントが必要です

  1. テストに使用するレルムを選択します。

  2. 名前が gatling のクライアントを作成します。

  3. アクセスタイプを confidential に設定します。

  4. 「サービスアカウントを有効にする」をチェックします。

  5. 有効なリダイレクト URI (例: https://) を入力します。

  6. 保存をクリックします。

  7. 「サービスアカウントロール」タブに切り替えます。

  8. 「クライアントロール」リストボックスで realm-management を選択します。

  9. それぞれの負荷シミュレーションシナリオのロールマッピングテーブルに基づいて、ロールを割り当てます。

  10. テストに渡されるクライアントシークレットは、「資格情報」タブからコピーできます。

シナリオ名 割り当てられたロール

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 スクリプトを使用してセットアップを実行できます。

  1. ダウンロードした Keycloak ベンチマークモジュールを抽出します。スクリプト initialize-benchmark-entities.sh は、このモジュールの bin フォルダにあります。

  2. Keycloak ディストリビューションディレクトリへのパスを環境変数 KEYCLOAK_HOME として指定します。

  3. 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
  4. 必要なレルム、クライアント、およびユーザーを作成するために、次のコマンドを実行します。

    ./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