[ML] Functional tests - stabilize and re-enable feature importance tests (#117503) (#117625)

This PR re-activates and stabilizes the data frame analytics feature importance tests by reducing the job run time. It also scrolls the feature importance section into view during validation so in case of a failure the screenshot shows the relevant part of the screen.

Co-authored-by: Robert Oskamp <robert.oskamp@elastic.co>
This commit is contained in:
Kibana Machine 2021-11-05 07:34:20 -04:00 committed by GitHub
parent 234d8c8555
commit cfcae8b6ee
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 33 additions and 2 deletions

View file

@ -14,8 +14,7 @@ export default function ({ getService }: FtrProviderContext) {
const esArchiver = getService('esArchiver');
const ml = getService('ml');
// FLAKY: https://github.com/elastic/kibana/issues/116078
describe.skip('total feature importance panel and decision path popover', function () {
describe('total feature importance panel and decision path popover', function () {
const testDataList: Array<{
suiteTitle: string;
archive: string;
@ -64,6 +63,7 @@ export default function ({ getService }: FtrProviderContext) {
training_percent: 35,
prediction_field_name: 'CentralAir_prediction',
num_top_classes: -1,
max_trees: 10,
},
},
model_memory_limit: '60mb',
@ -109,6 +109,7 @@ export default function ({ getService }: FtrProviderContext) {
training_percent: 35,
prediction_field_name: 'heatingqc',
num_top_classes: -1,
max_trees: 10,
},
},
model_memory_limit: '60mb',
@ -140,6 +141,7 @@ export default function ({ getService }: FtrProviderContext) {
dependent_variable: 'stab',
num_top_feature_importance_values: 5,
training_percent: 35,
max_trees: 10,
},
},
analyzed_fields: {

View file

@ -73,6 +73,7 @@ export function MachineLearningDataFrameAnalyticsResultsProvider(
async assertTotalFeatureImportanceEvaluatePanelExists() {
await testSubjects.existOrFail('mlDFExpandableSection-FeatureImportanceSummary');
await this.scrollFeatureImportanceIntoView();
await testSubjects.existOrFail('mlTotalFeatureImportanceChart', { timeout: 30 * 1000 });
},
@ -213,5 +214,33 @@ export function MachineLearningDataFrameAnalyticsResultsProvider(
expect(buttonVisible).to.equal(true, 'Expected data grid cell button to be visible');
});
},
async scrollContentSectionIntoView(sectionId: string) {
await testSubjects.scrollIntoView(`mlDFExpandableSection-${sectionId}`);
},
async scrollAnalysisIntoView() {
await this.scrollContentSectionIntoView('analysis');
},
async scrollRegressionEvaluationIntoView() {
await this.scrollContentSectionIntoView('RegressionEvaluation');
},
async scrollClassificationEvaluationIntoView() {
await this.scrollContentSectionIntoView('ClassificationEvaluation');
},
async scrollFeatureImportanceIntoView() {
await this.scrollContentSectionIntoView('FeatureImportanceSummary');
},
async scrollScatterplotMatrixIntoView() {
await this.scrollContentSectionIntoView('splom');
},
async scrollResultsIntoView() {
await this.scrollContentSectionIntoView('results');
},
};
}