Balance serverless test groups

This commit is contained in:
Charis Kalpakis 2024-11-27 17:00:05 +02:00 committed by GitHub
parent 1f4bfa9c4b
commit 68ca81e9a9
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
15 changed files with 291 additions and 9 deletions

View file

@ -24,6 +24,8 @@ enabled:
- x-pack/test_serverless/functional/test_suites/observability/common_configs/config.group4.ts
- x-pack/test_serverless/functional/test_suites/observability/common_configs/config.group5.ts
- x-pack/test_serverless/functional/test_suites/observability/common_configs/config.group6.ts
- x-pack/test_serverless/functional/test_suites/observability/common_configs/config.group7.ts
- x-pack/test_serverless/functional/test_suites/observability/common_configs/config.group8.ts
- x-pack/test_serverless/functional/test_suites/observability/config.screenshots.ts
# serverless config files that run deployment-agnostic tests
- x-pack/test/api_integration/deployment_agnostic/configs/serverless/oblt.serverless.config.ts

View file

@ -18,5 +18,7 @@ enabled:
- x-pack/test_serverless/functional/test_suites/search/common_configs/config.group4.ts
- x-pack/test_serverless/functional/test_suites/search/common_configs/config.group5.ts
- x-pack/test_serverless/functional/test_suites/search/common_configs/config.group6.ts
- x-pack/test_serverless/functional/test_suites/search/common_configs/config.group7.ts
- x-pack/test_serverless/functional/test_suites/search/common_configs/config.group8.ts
# serverless config files that run deployment-agnostic tests
- x-pack/test/api_integration/deployment_agnostic/configs/serverless/search.serverless.config.ts

View file

@ -41,6 +41,8 @@ enabled:
- x-pack/test_serverless/functional/test_suites/security/common_configs/config.group4.ts
- x-pack/test_serverless/functional/test_suites/security/common_configs/config.group5.ts
- x-pack/test_serverless/functional/test_suites/security/common_configs/config.group6.ts
- x-pack/test_serverless/functional/test_suites/security/common_configs/config.group7.ts
- x-pack/test_serverless/functional/test_suites/security/common_configs/config.group8.ts
- x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/actions/trial_license_complete_tier/configs/serverless.config.ts
- x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/alerts/basic_license_essentials_tier/configs/serverless.config.ts
- x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/alerts/trial_license_complete_tier/configs/serverless.config.ts

View file

@ -17,7 +17,7 @@ export default ({ getService, loadTestFile, getPageObjects }: FtrProviderContext
const config = getService('config');
let remoteEsArchiver;
describe('lens serverless - group 1', function () {
describe('lens serverless - group 1 - subgroup 1', function () {
this.tags(['esGate']);
const esArchive = 'x-pack/test/functional/es_archives/logstash_functional';
@ -73,9 +73,7 @@ export default ({ getService, loadTestFile, getPageObjects }: FtrProviderContext
await kibanaServer.savedObjects.cleanStandardList();
});
loadTestFile(require.resolve('./smokescreen.ts'));
loadTestFile(require.resolve('./tsdb.ts'));
loadTestFile(require.resolve('./logsdb.ts'));
loadTestFile(require.resolve('./vega_chart.ts'));
loadTestFile(require.resolve('./smokescreen.ts')); // 14m 25s
loadTestFile(require.resolve('./vega_chart.ts')); // 3m
});
};

View file

@ -0,0 +1,78 @@
/*
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
* or more contributor license agreements. Licensed under the Elastic License
* 2.0; you may not use this file except in compliance with the Elastic License
* 2.0.
*/
import type { EsArchiver } from '@kbn/es-archiver';
import { FtrProviderContext } from '../../../../ftr_provider_context';
export default ({ getService, loadTestFile, getPageObjects }: FtrProviderContext) => {
const browser = getService('browser');
const log = getService('log');
const esArchiver = getService('esArchiver');
const kibanaServer = getService('kibanaServer');
const PageObjects = getPageObjects(['timePicker', 'svlCommonPage']);
const config = getService('config');
let remoteEsArchiver;
describe('lens serverless - group 1 - subgroup 5', function () {
this.tags(['esGate']);
const esArchive = 'x-pack/test/functional/es_archives/logstash_functional';
const localIndexPatternString = 'logstash-*';
const remoteIndexPatternString = 'ftr-remote:logstash-*';
const localFixtures = {
lensBasic: 'x-pack/test/functional/fixtures/kbn_archiver/lens/lens_basic.json',
lensDefault: 'x-pack/test/functional/fixtures/kbn_archiver/lens/default',
};
const remoteFixtures = {
lensBasic: 'x-pack/test/functional/fixtures/kbn_archiver/lens/ccs/lens_basic.json',
lensDefault: 'x-pack/test/functional/fixtures/kbn_archiver/lens/ccs/default',
};
let esNode: EsArchiver;
let fixtureDirs: {
lensBasic: string;
lensDefault: string;
};
let indexPatternString: string;
before(async () => {
log.debug('Starting lens before method');
await browser.setWindowSize(1280, 1200);
await kibanaServer.savedObjects.cleanStandardList();
try {
config.get('esTestCluster.ccs');
remoteEsArchiver = getService('remoteEsArchiver' as 'esArchiver');
esNode = remoteEsArchiver;
fixtureDirs = remoteFixtures;
indexPatternString = remoteIndexPatternString;
} catch (error) {
esNode = esArchiver;
fixtureDirs = localFixtures;
indexPatternString = localIndexPatternString;
}
await esNode.load(esArchive);
await kibanaServer.uiSettings.update({
defaultIndex: indexPatternString,
'dateFormat:tz': 'UTC',
});
await kibanaServer.importExport.load(fixtureDirs.lensBasic);
await kibanaServer.importExport.load(fixtureDirs.lensDefault);
// changing the timepicker default here saves us from having to set it in Discover (~8s)
await PageObjects.timePicker.setDefaultAbsoluteRangeViaUiSettings();
});
after(async () => {
await esArchiver.unload(esArchive);
await PageObjects.timePicker.resetDefaultAbsoluteRangeViaUiSettings();
await kibanaServer.importExport.unload(fixtureDirs.lensBasic);
await kibanaServer.importExport.unload(fixtureDirs.lensDefault);
await kibanaServer.savedObjects.cleanStandardList();
});
loadTestFile(require.resolve('./tsdb.ts')); // 14m 25s
});
};

View file

@ -17,7 +17,7 @@ import {
getDocsGenerator,
setupScenarioRunner,
sumFirstNValues,
} from './tsdb_logsdb_helpers';
} from '../tsdb_logsdb_helpers';
export default function ({ getService, getPageObjects }: FtrProviderContext) {
const { common, lens, dashboard, svlCommonPage } = getPageObjects([

View file

@ -0,0 +1,78 @@
/*
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
* or more contributor license agreements. Licensed under the Elastic License
* 2.0; you may not use this file except in compliance with the Elastic License
* 2.0.
*/
import type { EsArchiver } from '@kbn/es-archiver';
import { FtrProviderContext } from '../../../../ftr_provider_context';
export default ({ getService, loadTestFile, getPageObjects }: FtrProviderContext) => {
const browser = getService('browser');
const log = getService('log');
const esArchiver = getService('esArchiver');
const kibanaServer = getService('kibanaServer');
const PageObjects = getPageObjects(['timePicker', 'svlCommonPage']);
const config = getService('config');
let remoteEsArchiver;
describe('lens serverless - group 1 - subgroup 6', function () {
this.tags(['esGate']);
const esArchive = 'x-pack/test/functional/es_archives/logstash_functional';
const localIndexPatternString = 'logstash-*';
const remoteIndexPatternString = 'ftr-remote:logstash-*';
const localFixtures = {
lensBasic: 'x-pack/test/functional/fixtures/kbn_archiver/lens/lens_basic.json',
lensDefault: 'x-pack/test/functional/fixtures/kbn_archiver/lens/default',
};
const remoteFixtures = {
lensBasic: 'x-pack/test/functional/fixtures/kbn_archiver/lens/ccs/lens_basic.json',
lensDefault: 'x-pack/test/functional/fixtures/kbn_archiver/lens/ccs/default',
};
let esNode: EsArchiver;
let fixtureDirs: {
lensBasic: string;
lensDefault: string;
};
let indexPatternString: string;
before(async () => {
log.debug('Starting lens before method');
await browser.setWindowSize(1280, 1200);
await kibanaServer.savedObjects.cleanStandardList();
try {
config.get('esTestCluster.ccs');
remoteEsArchiver = getService('remoteEsArchiver' as 'esArchiver');
esNode = remoteEsArchiver;
fixtureDirs = remoteFixtures;
indexPatternString = remoteIndexPatternString;
} catch (error) {
esNode = esArchiver;
fixtureDirs = localFixtures;
indexPatternString = localIndexPatternString;
}
await esNode.load(esArchive);
await kibanaServer.uiSettings.update({
defaultIndex: indexPatternString,
'dateFormat:tz': 'UTC',
});
await kibanaServer.importExport.load(fixtureDirs.lensBasic);
await kibanaServer.importExport.load(fixtureDirs.lensDefault);
// changing the timepicker default here saves us from having to set it in Discover (~8s)
await PageObjects.timePicker.setDefaultAbsoluteRangeViaUiSettings();
});
after(async () => {
await esArchiver.unload(esArchive);
await PageObjects.timePicker.resetDefaultAbsoluteRangeViaUiSettings();
await kibanaServer.importExport.unload(fixtureDirs.lensBasic);
await kibanaServer.importExport.unload(fixtureDirs.lensDefault);
await kibanaServer.savedObjects.cleanStandardList();
});
loadTestFile(require.resolve('./logsdb.ts')); // 28m
});
};

View file

@ -14,14 +14,15 @@ import {
getDocsGenerator,
setupScenarioRunner,
TIME_PICKER_FORMAT,
} from './tsdb_logsdb_helpers';
} from '../tsdb_logsdb_helpers';
export default function ({ getService, getPageObjects }: FtrProviderContext) {
const { common, lens, discover, header } = getPageObjects([
const { common, lens, discover, header, svlCommonPage } = getPageObjects([
'common',
'lens',
'discover',
'header',
'svlCommonPage',
]);
const testSubjects = getService('testSubjects');
const find = getService('find');
@ -46,6 +47,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
const toTime = 'Jun 16, 2023 @ 00:00:00.000';
before(async () => {
await svlCommonPage.loginAsAdmin();
log.info(`loading ${logsdbIndex} index...`);
await esArchiver.loadIfNeeded(logsdbEsArchive);
log.info(`creating a data view for "${logsdbDataView}"...`);

View file

@ -9,7 +9,7 @@ import { Client } from '@elastic/elasticsearch';
import { MappingProperty } from '@elastic/elasticsearch/lib/api/types';
import { ToolingLog } from '@kbn/tooling-log';
import moment from 'moment';
import { FtrProviderContext } from '../../../../ftr_provider_context';
import { FtrProviderContext } from '../../../ftr_provider_context';
export const TEST_DOC_COUNT = 100;
export const TIME_PICKER_FORMAT = 'MMM D, YYYY [@] HH:mm:ss.SSS';

View file

@ -0,0 +1,20 @@
/*
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
* or more contributor license agreements. Licensed under the Elastic License
* 2.0; you may not use this file except in compliance with the Elastic License
* 2.0.
*/
import { FtrConfigProviderContext } from '@kbn/test';
export default async function ({ readConfigFile }: FtrConfigProviderContext) {
const baseTestConfig = await readConfigFile(require.resolve('../config.ts'));
return {
...baseTestConfig.getAll(),
testFiles: [require.resolve('../../common/visualizations/group5')],
junit: {
reportName: 'Serverless Observability Functional Tests - Common Group 7',
},
};
}

View file

@ -0,0 +1,20 @@
/*
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
* or more contributor license agreements. Licensed under the Elastic License
* 2.0; you may not use this file except in compliance with the Elastic License
* 2.0.
*/
import { FtrConfigProviderContext } from '@kbn/test';
export default async function ({ readConfigFile }: FtrConfigProviderContext) {
const baseTestConfig = await readConfigFile(require.resolve('../config.ts'));
return {
...baseTestConfig.getAll(),
testFiles: [require.resolve('../../common/visualizations/group6')],
junit: {
reportName: 'Serverless Observability Functional Tests - Common Group 8',
},
};
}

View file

@ -0,0 +1,20 @@
/*
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
* or more contributor license agreements. Licensed under the Elastic License
* 2.0; you may not use this file except in compliance with the Elastic License
* 2.0.
*/
import { FtrConfigProviderContext } from '@kbn/test';
export default async function ({ readConfigFile }: FtrConfigProviderContext) {
const baseTestConfig = await readConfigFile(require.resolve('../config.ts'));
return {
...baseTestConfig.getAll(),
testFiles: [require.resolve('../../common/visualizations/group5')],
junit: {
reportName: 'Serverless Search Functional Tests - Common Group 7',
},
};
}

View file

@ -0,0 +1,20 @@
/*
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
* or more contributor license agreements. Licensed under the Elastic License
* 2.0; you may not use this file except in compliance with the Elastic License
* 2.0.
*/
import { FtrConfigProviderContext } from '@kbn/test';
export default async function ({ readConfigFile }: FtrConfigProviderContext) {
const baseTestConfig = await readConfigFile(require.resolve('../config.ts'));
return {
...baseTestConfig.getAll(),
testFiles: [require.resolve('../../common/visualizations/group6')],
junit: {
reportName: 'Serverless Search Functional Tests - Common Group 8',
},
};
}

View file

@ -0,0 +1,20 @@
/*
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
* or more contributor license agreements. Licensed under the Elastic License
* 2.0; you may not use this file except in compliance with the Elastic License
* 2.0.
*/
import { FtrConfigProviderContext } from '@kbn/test';
export default async function ({ readConfigFile }: FtrConfigProviderContext) {
const baseTestConfig = await readConfigFile(require.resolve('../config.ts'));
return {
...baseTestConfig.getAll(),
testFiles: [require.resolve('../../common/visualizations/group5')],
junit: {
reportName: 'Serverless Security Functional Tests - Common Group 7',
},
};
}

View file

@ -0,0 +1,20 @@
/*
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
* or more contributor license agreements. Licensed under the Elastic License
* 2.0; you may not use this file except in compliance with the Elastic License
* 2.0.
*/
import { FtrConfigProviderContext } from '@kbn/test';
export default async function ({ readConfigFile }: FtrConfigProviderContext) {
const baseTestConfig = await readConfigFile(require.resolve('../config.ts'));
return {
...baseTestConfig.getAll(),
testFiles: [require.resolve('../../common/visualizations/group6')],
junit: {
reportName: 'Serverless Security Functional Tests - Common Group 8',
},
};
}