Browse Source

add test params

main
Nicolas Massé 5 years ago
parent
commit
1bde360c17
  1. 28
      lib/keycloak.js
  2. 9
      login.js
  3. 9
      refresh-token.js
  4. 9
      tokeninfo.js
  5. 10
      userinfo.js

28
lib/keycloak.js

@ -28,7 +28,31 @@ const configEnvVars = {
"name": "sessionCount", "name": "sessionCount",
"type": "int", "type": "int",
"mandatory": false, "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) { if (params.mandatory) {
throw new Error(`Please set the ${env} environment variable`); throw new Error(`Please set the ${env} environment variable`);
} }
if (params.default) { if (params.default != null) {
value = params.default; value = params.default;
} }
} }

9
login.js

@ -2,16 +2,17 @@ import { check } from 'k6';
import { pickRealm, pickClient, pickUser, getTestConfig, wrapWithErrorCounting, Keycloak } from "./lib/keycloak.js"; import { pickRealm, pickClient, pickUser, getTestConfig, wrapWithErrorCounting, Keycloak } from "./lib/keycloak.js";
import { randomSeed } from 'k6'; import { randomSeed } from 'k6';
const config = getTestConfig();
export let options = { export let options = {
stages: [ stages: [
{ duration: "20s", target: 5 }, { duration: config.rampupDuration, target: config.vuCount },
{ duration: "2m", target: 300 } { duration: config.testDuration, target: config.vuCount },
{ duration: config.rampupDuration, target: 0 },
], ],
noVUConnectionReuse: true, noVUConnectionReuse: true,
}; };
const config = getTestConfig();
randomSeed(__VU); randomSeed(__VU);
const realm = pickRealm(config.realmCount); const realm = pickRealm(config.realmCount);
let keycloak = new Keycloak(config.keycloakURL, { offlineTokens: config.offlineTokens }); let keycloak = new Keycloak(config.keycloakURL, { offlineTokens: config.offlineTokens });

9
refresh-token.js

@ -2,15 +2,16 @@ import { check, sleep } from 'k6';
import { wrapWithErrorCounting, shuffleArray, getTestConfig, setupOpenSessions, Keycloak } from "./lib/keycloak.js"; import { wrapWithErrorCounting, shuffleArray, getTestConfig, setupOpenSessions, Keycloak } from "./lib/keycloak.js";
import { randomSeed } from 'k6'; import { randomSeed } from 'k6';
const config = getTestConfig();
export let options = { export let options = {
stages: [ stages: [
{ duration: "20s", target: 5 }, { duration: config.rampupDuration, target: config.vuCount },
{ duration: "2m", target: 300 } { duration: config.testDuration, target: config.vuCount },
{ duration: config.rampupDuration, target: 0 },
], ],
}; };
const config = getTestConfig();
randomSeed(__VU); randomSeed(__VU);
let keycloak = new Keycloak(config.keycloakURL, { offlineTokens: config.offlineTokens }); let keycloak = new Keycloak(config.keycloakURL, { offlineTokens: config.offlineTokens });

9
tokeninfo.js

@ -2,15 +2,16 @@ import { check } from 'k6';
import { wrapWithErrorCounting, Keycloak, getTestConfig, setupOpenSessions, pickRandom } from "./lib/keycloak.js"; import { wrapWithErrorCounting, Keycloak, getTestConfig, setupOpenSessions, pickRandom } from "./lib/keycloak.js";
import { randomSeed } from 'k6'; import { randomSeed } from 'k6';
const config = getTestConfig();
export let options = { export let options = {
stages: [ stages: [
{ duration: "20s", target: 5 }, { duration: config.rampupDuration, target: config.vuCount },
{ duration: "2m", target: 300 } { duration: config.testDuration, target: config.vuCount },
{ duration: config.rampupDuration, target: 0 },
], ],
}; };
const config = getTestConfig();
randomSeed(__VU); randomSeed(__VU);
let keycloak = new Keycloak(config.keycloakURL, { offlineTokens: config.offlineTokens }); let keycloak = new Keycloak(config.keycloakURL, { offlineTokens: config.offlineTokens });

10
userinfo.js

@ -2,15 +2,17 @@ import { check } from 'k6';
import { wrapWithErrorCounting, Keycloak, getTestConfig, setupOpenSessions, pickRandom } from "./lib/keycloak.js"; import { wrapWithErrorCounting, Keycloak, getTestConfig, setupOpenSessions, pickRandom } from "./lib/keycloak.js";
import { randomSeed } from 'k6'; import { randomSeed } from 'k6';
const config = getTestConfig();
export let options = { export let options = {
stages: [ stages: [
{ duration: "20s", target: 5 }, { duration: config.rampupDuration, target: config.vuCount },
{ duration: "2m", target: 300 } { duration: config.testDuration, target: config.vuCount },
{ duration: config.rampupDuration, target: 0 },
], ],
setupTimeout: config.setupTimeout,
}; };
const config = getTestConfig();
randomSeed(__VU); randomSeed(__VU);
let keycloak = new Keycloak(config.keycloakURL, { offlineTokens: config.offlineTokens }); let keycloak = new Keycloak(config.keycloakURL, { offlineTokens: config.offlineTokens });

Loading…
Cancel
Save