2016-08-03 18:00:07 -04:00
|
|
|
/**
|
|
|
|
* @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
|
|
|
|
*/
|
|
|
|
|
2016-11-10 21:13:11 -05:00
|
|
|
import {$, browser} from 'protractor';
|
|
|
|
|
2015-06-08 16:51:10 -04:00
|
|
|
var benchpress = require('../../index.js');
|
|
|
|
var runner = new benchpress.Runner([
|
|
|
|
// use protractor as Webdriver client
|
2016-08-26 19:34:08 -04:00
|
|
|
benchpress.SeleniumWebDriverAdapter.PROTRACTOR_PROVIDERS,
|
2015-06-08 16:51:10 -04:00
|
|
|
// 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;
|
2015-10-09 18:25:17 -04:00
|
|
|
browser.get('http://localhost:8001/playground/src/benchpress/');
|
2015-06-08 16:51:10 -04:00
|
|
|
|
|
|
|
/*
|
|
|
|
* 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.
|
|
|
|
*/
|
2016-08-03 18:00:07 -04:00
|
|
|
runner
|
|
|
|
.sample({
|
|
|
|
id: 'baseline',
|
|
|
|
execute: function() { $('button').click(); },
|
|
|
|
providers: [benchpress.bind(benchpress.Options.SAMPLE_DESCRIPTION).toValue({depth: 9})]
|
|
|
|
})
|
2015-06-08 16:51:10 -04:00
|
|
|
.then(done, done.fail);
|
|
|
|
});
|
|
|
|
});
|