## Choose implementation of KeycloakSessionFactory # keycloak.model.provider=jpa keycloak.model.provider=mongo ## Configure JPA (just hbm2ddl schema configurable here. Rest of the stuff in META-INF/persistence.xml) keycloak.jpa.hbm2ddl.auto=create # keycloak.jpa.hbm2ddl.auto=update ## Configure MongoDB (Useful just when keycloak.sessionFactory=mongo) keycloak.model.mongo.host=localhost keycloak.model.mongo.port=27017 keycloak.model.mongo.db=keycloakPerfTest # Should be DB dropped at startup of the test? keycloak.model.mongo.clearOnStartup=false ## Specify Keycloak worker class keycloak.perf.workerClass=org.keycloak.testsuite.performance.CreateRealmsWorker # keycloak.perf.workerClass=org.keycloak.testsuite.performance.CreateUsersWorker # keycloak.perf.workerClass=org.keycloak.testsuite.performance.ReadUsersWorker # keycloak.perf.workerClass=org.keycloak.testsuite.performance.RemoveUsersWorker ## Properties for CreateRealms test. This test is used to create some realms. # Each iteration of single worker thread will add one realm and it will add some roles, defaultRoles, credentials and applications to it # Offset where to start creating realms. Count (total number of realms to create) is configurable as number of JMeter threads*loopCount # For example: if offset==1 and in JMeter properties we have LoopController.loops=10 and num_threads=2 then we will create 20 realms in total and we will create realms "realm1" - "realm10" # NOTE: Count (total number of realms to create) is configurable as number of JMeter threads*loopCount keycloak.perf.createRealms.realms.offset=1 # Count of apps per each realm (For example if count=5, we will create apps like "realm1app1" - "realm1app5" for realm "realm1" # and similarly for all other created realms) keycloak.perf.createRealms.appsPerRealm=5 # Count of roles per each realm (For example if count=5, we will create roles like "realm1role1" - "realm1role5" for realm "realm1" # and similarly for all other created realms) keycloak.perf.createRealms.rolesPerRealm=5 # Count of default roles per each realm (For example if count=2, we will create roles like "realm1defrole1" and "realm1defrole2" # for realm "realm1" and similarly for all other created realms) keycloak.perf.createRealms.defaultRolesPerRealm=2 # Count of roles per each application (For example if count=3 we will have roles "realm1app1role1" - "realm1app1role3" for realm=1 and application=1 # (if realmsCount=10, appsPerRealm=5 it will be 150 application roles totally) keycloak.perf.createRealms.rolesPerApp=3 # Whether to create required credentials in each realm (If true, we will create "password", "totp" and client-certificate) keycloak.perf.createRealms.createRequiredCredentials=true ## Properties for CreateUsers test. This test is used to create some users # Each iteration of single worker thread will add one user and it will add some default roles, passwords and bind him with some social accounts # Each worker will use separate realm dedicated just for him, so each worker will create user1, user2, ... , userN . N (number of users to create per realm) # is configurable in JMeter configuration as loopCount. Total number of created users for whole test will be threads*loopCount # NOTE: For each thread, the corresponding realm must already exists # Realm where to start creating users keycloak.perf.createUsers.realms.offset=1 # Whether to add basic attributes like firstName/lastName/email to each user keycloak.perf.createUsers.addBasicUserAttributes=true # Whether to add all default roles of realm to this user keycloak.perf.createUsers.addDefaultRoles=true # Whether to add password to this user keycloak.perf.createUsers.addPassword=true # Number of social links to create for each user. Possible values are 0, 1, 2, 3 (For 3 it will create Facebook, Twitter and Google) keycloak.perf.createUsers.socialLinksPerUserCount=0 ## Properties for ReadUsers test. This test is used to read some users from DB and alternatively read some of his properties (passwords, roles, scopes, socialLinks) keycloak.perf.readUsers.realms.offset=1 # Number of read users in each iteration keycloak.perf.readUsers.readUsersPerIteration=5 # Number of users to read in each realm. After reading all 2000 users, reading will start again from user1 keycloak.perf.readUsers.countOfUsersPerRealm=2000 keycloak.perf.readUsers.readRoles=true keycloak.perf.readUsers.readScopes=true keycloak.perf.readUsers.readPassword=true keycloak.perf.readUsers.readSocialLinks=false keycloak.perf.readUsers.searchBySocialLinks=false ## Properties for RemoveUsers worker. This test is used to remove some users from DB (and all their stuff actually) # Similarly like in CreateUsers test, each worker works just with one realm. Number of removed users depends on JMeter property loopCount keycloak.perf.removeUsers.realms.offset=1