From c42a4c8ec3b9c36dec32dfb90524c227214b8817 Mon Sep 17 00:00:00 2001 From: Florian Schade Date: Mon, 30 Nov 2020 10:54:41 +0100 Subject: [PATCH] cleanup defaults update README.md --- tests/k6/README.md | 2 +- tests/k6/src/lib/api/dav.ts | 6 ++-- tests/k6/src/lib/api/users.ts | 2 +- tests/k6/src/lib/auth.ts | 15 ++++---- tests/k6/src/lib/defaults.ts | 38 ++++++++++++-------- tests/k6/src/test/benchmark/file-download.ts | 17 ++++----- tests/k6/src/test/benchmark/file-upload.ts | 14 ++++---- 7 files changed, 48 insertions(+), 46 deletions(-) diff --git a/tests/k6/README.md b/tests/k6/README.md index f11c98c67..d50c553d4 100644 --- a/tests/k6/README.md +++ b/tests/k6/README.md @@ -19,6 +19,6 @@ k6 run ./dist/test/NAME_OF_TEST.js $ OC_LOGIN=USERNAME OC_PASSWORD=PASSWORD k6 run ... $ OC_HOST=URL k6 run ... $ OC_OIDC_HOST=URL k6 run ... -$ OC_OIDC=BOOL k6 run ... +$ OC_OIDC_ENABLED=BOOL k6 run ... $ OC_TEST_FILE=STRING k6 run ... ``` \ No newline at end of file diff --git a/tests/k6/src/lib/api/dav.ts b/tests/k6/src/lib/api/dav.ts index 2d7407cff..bfac07300 100644 --- a/tests/k6/src/lib/api/dav.ts +++ b/tests/k6/src/lib/api/dav.ts @@ -7,7 +7,7 @@ export const fileUpload = ( {credential, userName, asset}: { credential: types.Credential; userName: string; asset: types.Asset } ): RefinedResponse => { return http.put( - `${defaults.OC_HOST}/remote.php/dav/files/${userName}/${asset.fileName}`, + `${defaults.ENV.HOST}/remote.php/dav/files/${userName}/${asset.fileName}`, asset.bytes as any, { headers: { @@ -21,7 +21,7 @@ export const fileDownload = ( {credential, userName, fileName}: { credential: types.Credential; userName: string; fileName: string } ): RefinedResponse => { return http.get( - `${defaults.OC_HOST}/remote.php/dav/files/${userName}/${fileName}`, + `${defaults.ENV.HOST}/remote.php/dav/files/${userName}/${fileName}`, { headers: { ...api.headersDefault({credential}) @@ -34,7 +34,7 @@ export const fileDelete = ( {credential, userName, fileName}: { credential: types.Credential; userName: string; fileName: string } ): RefinedResponse => { return http.del( - `${defaults.OC_HOST}/remote.php/dav/files/${userName}/${fileName}`, + `${defaults.ENV.HOST}/remote.php/dav/files/${userName}/${fileName}`, {}, { headers: { diff --git a/tests/k6/src/lib/api/users.ts b/tests/k6/src/lib/api/users.ts index 84f3a7e8e..5be51a7f3 100644 --- a/tests/k6/src/lib/api/users.ts +++ b/tests/k6/src/lib/api/users.ts @@ -7,7 +7,7 @@ export const userInfo = ( {credential, userName}: { credential: types.Credential; userName: string; } ): RefinedResponse => { return http.get( - `${defaults.OC_HOST}/ocs/v1.php/cloud/users/${userName}`, + `${defaults.ENV.HOST}/ocs/v1.php/cloud/users/${userName}`, { headers: { ...api.headersDefault({credential}) diff --git a/tests/k6/src/lib/auth.ts b/tests/k6/src/lib/auth.ts index 13dc3602f..760abab99 100644 --- a/tests/k6/src/lib/auth.ts +++ b/tests/k6/src/lib/auth.ts @@ -13,13 +13,12 @@ export default class Factory { constructor(account: types.Account) { this.account = account; - if (defaults.OC_OIDC) { + if (defaults.ENV.OIDC_ENABLED) { this.provider = new OIDCProvider(account); + return } - if (!defaults.OC_OIDC) { - this.provider = new AccountProvider(account); - } + this.provider = new AccountProvider(account); } public get credential(): types.Credential { @@ -41,9 +40,9 @@ class AccountProvider implements types.AuthProvider { class OIDCProvider implements types.AuthProvider { private account: types.Account; - private redirectUri = `${defaults.OC_OIDC_HOST}/oidc-callback.html`; - private logonUri = `${defaults.OC_OIDC_HOST}/signin/v1/identifier/_/logon`; - private tokenUrl = `${defaults.OC_OIDC_HOST}/konnect/v1/token`; + private redirectUri = `${defaults.ENV.OIDC_HOST}/oidc-callback.html`; + private logonUri = `${defaults.ENV.OIDC_HOST}/signin/v1/identifier/_/logon`; + private tokenUrl = `${defaults.ENV.OIDC_HOST}/konnect/v1/token`; private cache!: { validTo: Date; token: types.Token; @@ -93,7 +92,7 @@ class OIDCProvider implements types.AuthProvider { { headers: { 'Kopano-Konnect-XSRF': '1', - Referer: defaults.OC_OIDC_HOST, + Referer: defaults.ENV.OIDC_HOST, 'Content-Type': 'application/json', }, }, diff --git a/tests/k6/src/lib/defaults.ts b/tests/k6/src/lib/defaults.ts index 3798b1dcf..17e79611c 100644 --- a/tests/k6/src/lib/defaults.ts +++ b/tests/k6/src/lib/defaults.ts @@ -1,21 +1,29 @@ import * as types from './types'; import {Options} from "k6/options"; -const ocTestFile = '../_files/' + (__ENV.OC_TEST_FILE || 'kb_50.jpg').split('/').pop() -export const OC_HOST = __ENV.OC_HOST || 'https://localhost:9200' -export const OC_LOGIN = __ENV.OC_LOGIN -export const OC_PASSWORD = __ENV.OC_PASSWORD -export const OC_OIDC_HOST = __ENV.OC_OIDC_HOST || OC_HOST -export const OC_OIDC = __ENV.OC_OIDC === 'true' || false -export const OC_TEST_FILE = { - fileName: ocTestFile, - bytes: open(ocTestFile, 'b'), +export class K6 { + public static readonly OPTIONS: Options = { + insecureSkipTLSVerify: true, + iterations: 1, + vus: 1, + }; } -export const K6_OPTION_DEFAULTS: Options = { - insecureSkipTLSVerify: true, + +export class ENV { + public static readonly HOST = __ENV.OC_HOST || 'https://localhost:9200'; + public static readonly LOGIN = __ENV.OC_LOGIN; + public static readonly PASSWORD = __ENV.OC_PASSWORD; + public static readonly OIDC_HOST = __ENV.OC_OIDC_HOST || ENV.HOST; + public static readonly OIDC_ENABLED = __ENV.OC_OIDC_ENABLED === 'true' || false; + public static readonly FILE_NAME = '../_files/' + (__ENV.OC_TEST_FILE || 'kb_50.jpg').split('/').pop(); +} + +export const FILE = { + fileName: ENV.FILE_NAME, + bytes: open(ENV.FILE_NAME, 'b'), }; -export class ACCOUNTS { +export class ACCOUNT { public static readonly EINSTEIN = 'einstein'; public static readonly RICHARD = 'richard'; private static readonly list: { [key: string]: types.Account; } = { @@ -30,10 +38,10 @@ export class ACCOUNTS { } public static for(key: string): types.Account { - if (OC_LOGIN && OC_PASSWORD) { + if (ENV.LOGIN && ENV.PASSWORD) { return { - login: OC_LOGIN, - password: OC_PASSWORD, + login: ENV.LOGIN, + password: ENV.PASSWORD, } } diff --git a/tests/k6/src/test/benchmark/file-download.ts b/tests/k6/src/test/benchmark/file-download.ts index 0e8ff5f23..06ed8bfb8 100644 --- a/tests/k6/src/test/benchmark/file-download.ts +++ b/tests/k6/src/test/benchmark/file-download.ts @@ -4,28 +4,25 @@ import {sleep} from "k6"; import auth from "../../lib/auth"; export const options: Options = { - ...defaults.K6_OPTION_DEFAULTS, - iterations: 1, - vus: 1, + ...defaults.K6.OPTIONS, }; -const authFactory = new auth(defaults.ACCOUNTS.for(defaults.ACCOUNTS.EINSTEIN)); -const playbooks = { +const authFactory = new auth(defaults.ACCOUNT.for(defaults.ACCOUNT.EINSTEIN)); +const plays = { fileUpload: playbook.dav.fileUpload(), fileDownload: playbook.dav.fileDownload(), fileDelete: playbook.dav.fileDelete(), } - export default () => { const {login: userName} = authFactory.account; - const fileName = playbooks.fileUpload({ + const fileName = plays.fileUpload({ credential: authFactory.credential, userName, - asset: defaults.OC_TEST_FILE + asset: defaults.FILE, }); sleep(1) - playbooks.fileDownload({ + plays.fileDownload({ credential: authFactory.credential, userName, fileName, @@ -33,7 +30,7 @@ export default () => { sleep(1) - playbooks.fileDelete({ + plays.fileDelete({ credential: authFactory.credential, userName, fileName, diff --git a/tests/k6/src/test/benchmark/file-upload.ts b/tests/k6/src/test/benchmark/file-upload.ts index 0d068e951..2a7042174 100644 --- a/tests/k6/src/test/benchmark/file-upload.ts +++ b/tests/k6/src/test/benchmark/file-upload.ts @@ -4,26 +4,24 @@ import {sleep} from "k6"; import auth from "../../lib/auth"; export const options: Options = { - ...defaults.K6_OPTION_DEFAULTS, - iterations: 1, - vus: 1, + ...defaults.K6.OPTIONS, }; -const authFactory = new auth(defaults.ACCOUNTS.for(defaults.ACCOUNTS.EINSTEIN)); -const playbooks = { +const authFactory = new auth(defaults.ACCOUNT.for(defaults.ACCOUNT.EINSTEIN)); +const plays = { fileUpload: playbook.dav.fileUpload(), fileDelete: playbook.dav.fileDelete(), } export default () => { const {login: userName} = authFactory.account; - const fileName = playbooks.fileUpload({ + const fileName = plays.fileUpload({ credential: authFactory.credential, userName, - asset: defaults.OC_TEST_FILE + asset: defaults.FILE, }); sleep(1) - playbooks.fileDelete({ + plays.fileDelete({ credential: authFactory.credential, userName, fileName,