UNPKG

benchpress

Version:

Benchpress - a framework for e2e performance tests

52 lines 7.58 kB
import { PromiseWrapper } from 'angular2/src/facade/async'; import { bind } from 'angular2/src/core/di'; import { WebDriverAdapter } from '../web_driver_adapter'; import * as webdriver from 'selenium-webdriver'; /** * Adapter for the selenium-webdriver. */ export class SeleniumWebDriverAdapter extends WebDriverAdapter { constructor(_driver) { super(); this._driver = _driver; } static get PROTRACTOR_BINDINGS() { return _PROTRACTOR_BINDINGS; } _convertPromise(thenable) { var completer = PromiseWrapper.completer(); thenable.then( // selenium-webdriver uses an own Node.js context, // so we need to convert data into objects of this context. // Previously needed for rtts_asserts. (data) => completer.resolve(convertToLocalProcess(data)), completer.reject); return completer.promise; } waitFor(callback) { return this._convertPromise(this._driver.controlFlow().execute(callback)); } executeScript(script) { return this._convertPromise(this._driver.executeScript(script)); } executeAsyncScript(script) { return this._convertPromise(this._driver.executeAsyncScript(script)); } capabilities() { return this._convertPromise(this._driver.getCapabilities().then((capsObject) => capsObject.serialize())); } logs(type) { // Needed as selenium-webdriver does not forward // performance logs in the correct way via manage().logs return this._convertPromise(this._driver.schedule(new webdriver.Command(webdriver.CommandName.GET_LOG).setParameter('type', type), 'WebDriver.manage().logs().get(' + type + ')')); } } function convertToLocalProcess(data) { var serialized = JSON.stringify(data); if ('' + serialized === 'undefined') { return undefined; } return JSON.parse(serialized); } var _PROTRACTOR_BINDINGS = [ bind(WebDriverAdapter) .toFactory(() => new SeleniumWebDriverAdapter(global.browser), []) ]; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZW5pdW1fd2ViZHJpdmVyX2FkYXB0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJkaWZmaW5nX3BsdWdpbl93cmFwcGVyLW91dHB1dF9wYXRoLXhCTElCclZSLnRtcC9iZW5jaHByZXNzL3NyYy93ZWJkcml2ZXIvc2VsZW5pdW1fd2ViZHJpdmVyX2FkYXB0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ik9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSwyQkFBMkI7T0FDakQsRUFBQyxJQUFJLEVBQW9CLE1BQU0sc0JBQXNCO09BQ3JELEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSx1QkFBdUI7T0FFL0MsS0FBSyxTQUFTLE1BQU0sb0JBQW9CO0FBRS9DOztHQUVHO0FBQ0gsOENBQThDLGdCQUFnQjtJQUc1RCxZQUFvQixPQUFZO1FBQUksT0FBTyxDQUFDO1FBQXhCLFlBQU8sR0FBUCxPQUFPLENBQUs7SUFBYSxDQUFDO0lBRjlDLFdBQVcsbUJBQW1CLEtBQWlCLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUM7SUFJN0UsZUFBZSxDQUFDLFFBQVE7UUFDdEIsSUFBSSxTQUFTLEdBQUcsY0FBYyxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQzNDLFFBQVEsQ0FBQyxJQUFJO1FBQ1Qsa0RBQWtEO1FBQ2xELDJEQUEyRDtRQUMzRCxzQ0FBc0M7UUFDdEMsS0FBQyxJQUFJLEtBQUssU0FBUyxDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNoRixNQUFNLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQztJQUMzQixDQUFDO0lBRUQsT0FBTyxDQUFDLFFBQVE7UUFDZCxNQUFNLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBQzVFLENBQUM7SUFFRCxhQUFhLENBQUMsTUFBYztRQUMxQixNQUFNLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxNQUFjO1FBQy9CLE1BQU0sQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUN2RSxDQUFDO0lBRUQsWUFBWTtRQUNWLE1BQU0sQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUN2QixJQUFJLENBQUMsT0FBTyxDQUFDLGVBQWUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLFVBQVUsS0FBSyxVQUFVLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ25GLENBQUM7SUFFRCxJQUFJLENBQUMsSUFBWTtRQUNmLGdEQUFnRDtRQUNoRCx3REFBd0Q7UUFDeEQsTUFBTSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQzdDLElBQUksU0FBUyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLEVBQy9FLGdDQUFnQyxHQUFHLElBQUksR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ3RELENBQUM7QUFDSCxDQUFDO0FBRUQsK0JBQStCLElBQUk7SUFDakMsSUFBSSxVQUFVLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN0QyxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsVUFBVSxLQUFLLFdBQVcsQ0FBQyxDQUFDLENBQUM7UUFDcEMsTUFBTSxDQUFDLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBQ0QsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7QUFDaEMsQ0FBQztBQUVELElBQUksb0JBQW9CLEdBQUc7SUFDekIsSUFBSSxDQUFDLGdCQUFnQixDQUFDO1NBQ2pCLFNBQVMsQ0FBQyxNQUFNLElBQUksd0JBQXdCLENBQU8sTUFBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUUsQ0FBQztDQUM5RSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtQcm9taXNlV3JhcHBlcn0gZnJvbSAnYW5ndWxhcjIvc3JjL2ZhY2FkZS9hc3luYyc7XG5pbXBvcnQge2JpbmQsIHByb3ZpZGUsIFByb3ZpZGVyfSBmcm9tICdhbmd1bGFyMi9zcmMvY29yZS9kaSc7XG5pbXBvcnQge1dlYkRyaXZlckFkYXB0ZXJ9IGZyb20gJy4uL3dlYl9kcml2ZXJfYWRhcHRlcic7XG5cbmltcG9ydCAqIGFzIHdlYmRyaXZlciBmcm9tICdzZWxlbml1bS13ZWJkcml2ZXInO1xuXG4vKipcbiAqIEFkYXB0ZXIgZm9yIHRoZSBzZWxlbml1bS13ZWJkcml2ZXIuXG4gKi9cbmV4cG9ydCBjbGFzcyBTZWxlbml1bVdlYkRyaXZlckFkYXB0ZXIgZXh0ZW5kcyBXZWJEcml2ZXJBZGFwdGVyIHtcbiAgc3RhdGljIGdldCBQUk9UUkFDVE9SX0JJTkRJTkdTKCk6IFByb3ZpZGVyW10geyByZXR1cm4gX1BST1RSQUNUT1JfQklORElOR1M7IH1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9kcml2ZXI6IGFueSkgeyBzdXBlcigpOyB9XG5cbiAgX2NvbnZlcnRQcm9taXNlKHRoZW5hYmxlKSB7XG4gICAgdmFyIGNvbXBsZXRlciA9IFByb21pc2VXcmFwcGVyLmNvbXBsZXRlcigpO1xuICAgIHRoZW5hYmxlLnRoZW4oXG4gICAgICAgIC8vIHNlbGVuaXVtLXdlYmRyaXZlciB1c2VzIGFuIG93biBOb2RlLmpzIGNvbnRleHQsXG4gICAgICAgIC8vIHNvIHdlIG5lZWQgdG8gY29udmVydCBkYXRhIGludG8gb2JqZWN0cyBvZiB0aGlzIGNvbnRleHQuXG4gICAgICAgIC8vIFByZXZpb3VzbHkgbmVlZGVkIGZvciBydHRzX2Fzc2VydHMuXG4gICAgICAgIChkYXRhKSA9PiBjb21wbGV0ZXIucmVzb2x2ZShjb252ZXJ0VG9Mb2NhbFByb2Nlc3MoZGF0YSkpLCBjb21wbGV0ZXIucmVqZWN0KTtcbiAgICByZXR1cm4gY29tcGxldGVyLnByb21pc2U7XG4gIH1cblxuICB3YWl0Rm9yKGNhbGxiYWNrKTogUHJvbWlzZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5fY29udmVydFByb21pc2UodGhpcy5fZHJpdmVyLmNvbnRyb2xGbG93KCkuZXhlY3V0ZShjYWxsYmFjaykpO1xuICB9XG5cbiAgZXhlY3V0ZVNjcmlwdChzY3JpcHQ6IHN0cmluZyk6IFByb21pc2U8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuX2NvbnZlcnRQcm9taXNlKHRoaXMuX2RyaXZlci5leGVjdXRlU2NyaXB0KHNjcmlwdCkpO1xuICB9XG5cbiAgZXhlY3V0ZUFzeW5jU2NyaXB0KHNjcmlwdDogc3RyaW5nKTogUHJvbWlzZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5fY29udmVydFByb21pc2UodGhpcy5fZHJpdmVyLmV4ZWN1dGVBc3luY1NjcmlwdChzY3JpcHQpKTtcbiAgfVxuXG4gIGNhcGFiaWxpdGllcygpOiBQcm9taXNlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLl9jb252ZXJ0UHJvbWlzZShcbiAgICAgICAgdGhpcy5fZHJpdmVyLmdldENhcGFiaWxpdGllcygpLnRoZW4oKGNhcHNPYmplY3QpID0+IGNhcHNPYmplY3Quc2VyaWFsaXplKCkpKTtcbiAgfVxuXG4gIGxvZ3ModHlwZTogc3RyaW5nKTogUHJvbWlzZTxhbnk+IHtcbiAgICAvLyBOZWVkZWQgYXMgc2VsZW5pdW0td2ViZHJpdmVyIGRvZXMgbm90IGZvcndhcmRcbiAgICAvLyBwZXJmb3JtYW5jZSBsb2dzIGluIHRoZSBjb3JyZWN0IHdheSB2aWEgbWFuYWdlKCkubG9nc1xuICAgIHJldHVybiB0aGlzLl9jb252ZXJ0UHJvbWlzZSh0aGlzLl9kcml2ZXIuc2NoZWR1bGUoXG4gICAgICAgIG5ldyB3ZWJkcml2ZXIuQ29tbWFuZCh3ZWJkcml2ZXIuQ29tbWFuZE5hbWUuR0VUX0xPRykuc2V0UGFyYW1ldGVyKCd0eXBlJywgdHlwZSksXG4gICAgICAgICdXZWJEcml2ZXIubWFuYWdlKCkubG9ncygpLmdldCgnICsgdHlwZSArICcpJykpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGNvbnZlcnRUb0xvY2FsUHJvY2VzcyhkYXRhKTogT2JqZWN0IHtcbiAgdmFyIHNlcmlhbGl6ZWQgPSBKU09OLnN0cmluZ2lmeShkYXRhKTtcbiAgaWYgKCcnICsgc2VyaWFsaXplZCA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG4gIHJldHVybiBKU09OLnBhcnNlKHNlcmlhbGl6ZWQpO1xufVxuXG52YXIgX1BST1RSQUNUT1JfQklORElOR1MgPSBbXG4gIGJpbmQoV2ViRHJpdmVyQWRhcHRlcilcbiAgICAgIC50b0ZhY3RvcnkoKCkgPT4gbmV3IFNlbGVuaXVtV2ViRHJpdmVyQWRhcHRlcigoPGFueT5nbG9iYWwpLmJyb3dzZXIpLCBbXSlcbl07XG4iXX0=