diff --git a/lib/keycloak.js b/lib/keycloak.js index 22dc1da..e032e3e 100644 --- a/lib/keycloak.js +++ b/lib/keycloak.js @@ -28,7 +28,31 @@ const configEnvVars = { "name": "sessionCount", "type": "int", "mandatory": false, - "default": 100 + "default": 1000 + }, + "VU_COUNT": { + "name": "vuCount", + "type": "int", + "mandatory": false, + "default": 10 + }, + "TEST_DURATION": { + "name": "testDuration", + "type": "string", + "mandatory": false, + "default": "5m" + }, + "RAMPUP_DURATION": { + "name": "rampupDuration", + "type": "string", + "mandatory": false, + "default": "30s" + }, + "SETUP_TIMEOUT": { + "name": "setupTimeout", + "type": "string", + "mandatory": false, + "default": "1h" }, }; @@ -54,7 +78,7 @@ export function getTestConfig() { if (params.mandatory) { throw new Error(`Please set the ${env} environment variable`); } - if (params.default) { + if (params.default != null) { value = params.default; } } diff --git a/login.js b/login.js index 8d79e3a..4ca972c 100644 --- a/login.js +++ b/login.js @@ -2,16 +2,17 @@ import { check } from 'k6'; import { pickRealm, pickClient, pickUser, getTestConfig, wrapWithErrorCounting, Keycloak } from "./lib/keycloak.js"; import { randomSeed } from 'k6'; +const config = getTestConfig(); + export let options = { stages: [ - { duration: "20s", target: 5 }, - { duration: "2m", target: 300 } + { duration: config.rampupDuration, target: config.vuCount }, + { duration: config.testDuration, target: config.vuCount }, + { duration: config.rampupDuration, target: 0 }, ], noVUConnectionReuse: true, }; -const config = getTestConfig(); - randomSeed(__VU); const realm = pickRealm(config.realmCount); let keycloak = new Keycloak(config.keycloakURL, { offlineTokens: config.offlineTokens }); diff --git a/refresh-token.js b/refresh-token.js index e681cf2..6a29b02 100644 --- a/refresh-token.js +++ b/refresh-token.js @@ -2,15 +2,16 @@ import { check, sleep } from 'k6'; import { wrapWithErrorCounting, shuffleArray, getTestConfig, setupOpenSessions, Keycloak } from "./lib/keycloak.js"; import { randomSeed } from 'k6'; +const config = getTestConfig(); + export let options = { stages: [ - { duration: "20s", target: 5 }, - { duration: "2m", target: 300 } + { duration: config.rampupDuration, target: config.vuCount }, + { duration: config.testDuration, target: config.vuCount }, + { duration: config.rampupDuration, target: 0 }, ], }; -const config = getTestConfig(); - randomSeed(__VU); let keycloak = new Keycloak(config.keycloakURL, { offlineTokens: config.offlineTokens }); diff --git a/tokeninfo.js b/tokeninfo.js index 8a6b9bf..1e357a3 100644 --- a/tokeninfo.js +++ b/tokeninfo.js @@ -2,15 +2,16 @@ import { check } from 'k6'; import { wrapWithErrorCounting, Keycloak, getTestConfig, setupOpenSessions, pickRandom } from "./lib/keycloak.js"; import { randomSeed } from 'k6'; +const config = getTestConfig(); + export let options = { stages: [ - { duration: "20s", target: 5 }, - { duration: "2m", target: 300 } + { duration: config.rampupDuration, target: config.vuCount }, + { duration: config.testDuration, target: config.vuCount }, + { duration: config.rampupDuration, target: 0 }, ], }; -const config = getTestConfig(); - randomSeed(__VU); let keycloak = new Keycloak(config.keycloakURL, { offlineTokens: config.offlineTokens }); diff --git a/userinfo.js b/userinfo.js index 9928c79..b14d2fd 100644 --- a/userinfo.js +++ b/userinfo.js @@ -2,15 +2,17 @@ import { check } from 'k6'; import { wrapWithErrorCounting, Keycloak, getTestConfig, setupOpenSessions, pickRandom } from "./lib/keycloak.js"; import { randomSeed } from 'k6'; +const config = getTestConfig(); + export let options = { stages: [ - { duration: "20s", target: 5 }, - { duration: "2m", target: 300 } + { duration: config.rampupDuration, target: config.vuCount }, + { duration: config.testDuration, target: config.vuCount }, + { duration: config.rampupDuration, target: 0 }, ], + setupTimeout: config.setupTimeout, }; -const config = getTestConfig(); - randomSeed(__VU); let keycloak = new Keycloak(config.keycloakURL, { offlineTokens: config.offlineTokens });