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);
 | |
|   });
 | |
| });
 |