43 lines
1.6 KiB
TypeScript
43 lines
1.6 KiB
TypeScript
/**
|
|
* @license
|
|
* Copyright Google Inc. All Rights Reserved.
|
|
*
|
|
* Use of this source code is governed by an MIT-style license that can be
|
|
* found in the LICENSE file at https://angular.io/license
|
|
*/
|
|
|
|
import {$, browser} from 'protractor';
|
|
|
|
const benchpress = require('../../index.js');
|
|
const runner = new benchpress.Runner([
|
|
// use protractor as Webdriver client
|
|
benchpress.SeleniumWebDriverAdapter.PROTRACTOR_PROVIDERS,
|
|
// use RegressionSlopeValidator to validate samples
|
|
benchpress.Validator.bindTo(benchpress.RegressionSlopeValidator),
|
|
// use 10 samples to calculate slope regression
|
|
benchpress.bind(benchpress.RegressionSlopeValidator.SAMPLE_SIZE).toValue(20),
|
|
// use the script metric to calculate slope regression
|
|
benchpress.bind(benchpress.RegressionSlopeValidator.METRIC).toValue('scriptTime'),
|
|
benchpress.bind(benchpress.Options.FORCE_GC).toValue(true)
|
|
]);
|
|
|
|
describe('deep tree baseline', function() {
|
|
it('should be fast!', function(done) {
|
|
browser.ignoreSynchronization = true;
|
|
browser.get('http://localhost:8001/playground/src/benchpress/');
|
|
|
|
/*
|
|
* Tell benchpress to click the buttons to destroy and re-create the tree for each sample.
|
|
* Benchpress will log the collected metrics after each sample is collected, and will stop
|
|
* sampling as soon as the calculated regression slope for last 20 samples is stable.
|
|
*/
|
|
runner
|
|
.sample({
|
|
id: 'baseline',
|
|
execute: function() { $('button').click(); },
|
|
providers: [benchpress.bind(benchpress.Options.SAMPLE_DESCRIPTION).toValue({depth: 9})]
|
|
})
|
|
.then(done, done.fail);
|
|
});
|
|
});
|