UNPKG

@angular/benchpress

Version:

Benchpress - a framework for e2e performance tests

73 lines 7.66 kB
/** * @license * Copyright Google LLC 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 { WebDriverAdapter } from '../web_driver_adapter'; /** * Adapter for the selenium-webdriver. */ export class SeleniumWebDriverAdapter extends WebDriverAdapter { constructor(_driver) { super(); this._driver = _driver; } waitFor(callback) { return this._driver.call(callback); } executeScript(script) { return this._driver.executeScript(script); } executeAsyncScript(script) { return this._driver.executeAsyncScript(script); } capabilities() { return this._driver.getCapabilities().then((capsObject) => { const localData = {}; for (const key of Array.from(capsObject.keys())) { localData[key] = capsObject.get(key); } return localData; }); } logs(type) { // Needed as selenium-webdriver does not forward // performance logs in the correct way via manage().logs return this._driver.schedule(new Command('getLog').setParameter('type', type), 'WebDriver.manage().logs().get(' + type + ')'); } } SeleniumWebDriverAdapter.PROTRACTOR_PROVIDERS = [{ provide: WebDriverAdapter, useFactory: () => new SeleniumWebDriverAdapter(global.browser), deps: [] }]; /** * Copy of the `Command` class of webdriver as * it is not exposed via index.js in selenium-webdriver. */ class Command { constructor(name_) { this.name_ = name_; this.parameters_ = {}; } getName() { return this.name_; } setParameter(name, value) { this.parameters_[name] = value; return this; } setParameters(parameters) { this.parameters_ = parameters; return this; } getParameter(key) { return this.parameters_[key]; } getParameters() { return this.parameters_; } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZW5pdW1fd2ViZHJpdmVyX2FkYXB0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9iZW5jaHByZXNzL3NyYy93ZWJkcml2ZXIvc2VsZW5pdW1fd2ViZHJpdmVyX2FkYXB0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBSUgsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFHdkQ7O0dBRUc7QUFDSCxNQUFNLE9BQU8sd0JBQXlCLFNBQVEsZ0JBQWdCO0lBTzVELFlBQW9CLE9BQVk7UUFDOUIsS0FBSyxFQUFFLENBQUM7UUFEVSxZQUFPLEdBQVAsT0FBTyxDQUFLO0lBRWhDLENBQUM7SUFFUSxPQUFPLENBQUMsUUFBbUI7UUFDbEMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRVEsYUFBYSxDQUFDLE1BQWM7UUFDbkMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRVEsa0JBQWtCLENBQUMsTUFBYztRQUN4QyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVRLFlBQVk7UUFDbkIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLGVBQWUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLFVBQWUsRUFBRSxFQUFFO1lBQzdELE1BQU0sU0FBUyxHQUF5QixFQUFFLENBQUM7WUFDM0MsS0FBSyxNQUFNLEdBQUcsSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFvQixVQUFXLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRTtnQkFDbkUsU0FBUyxDQUFDLEdBQUcsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7YUFDdEM7WUFDRCxPQUFPLFNBQVMsQ0FBQztRQUNuQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFUSxJQUFJLENBQUMsSUFBWTtRQUN4QixnREFBZ0Q7UUFDaEQsd0RBQXdEO1FBQ3hELE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQ3hCLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLEVBQ2hELGdDQUFnQyxHQUFHLElBQUksR0FBRyxHQUFHLENBQUMsQ0FBQztJQUNyRCxDQUFDOztBQXRDTSw2Q0FBb0IsR0FBcUIsQ0FBQztRQUMvQyxPQUFPLEVBQUUsZ0JBQWdCO1FBQ3pCLFVBQVUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLHdCQUF3QixDQUFPLE1BQU8sQ0FBQyxPQUFPLENBQUM7UUFDckUsSUFBSSxFQUFFLEVBQUU7S0FDVCxDQUFDLENBQUM7QUFxQ0w7OztHQUdHO0FBQ0gsTUFBTSxPQUFPO0lBRVgsWUFBb0IsS0FBYTtRQUFiLFVBQUssR0FBTCxLQUFLLENBQVE7UUFEekIsZ0JBQVcsR0FBeUIsRUFBRSxDQUFDO0lBQ1gsQ0FBQztJQUVyQyxPQUFPO1FBQ0wsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3BCLENBQUM7SUFFRCxZQUFZLENBQUMsSUFBWSxFQUFFLEtBQVU7UUFDbkMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxLQUFLLENBQUM7UUFDL0IsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsYUFBYSxDQUFDLFVBQWdDO1FBQzVDLElBQUksQ0FBQyxXQUFXLEdBQUcsVUFBVSxDQUFDO1FBQzlCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELFlBQVksQ0FBQyxHQUFXO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRUQsYUFBYTtRQUNYLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUMxQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHtTdGF0aWNQcm92aWRlcn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7V2ViRHJpdmVyQWRhcHRlcn0gZnJvbSAnLi4vd2ViX2RyaXZlcl9hZGFwdGVyJztcblxuXG4vKipcbiAqIEFkYXB0ZXIgZm9yIHRoZSBzZWxlbml1bS13ZWJkcml2ZXIuXG4gKi9cbmV4cG9ydCBjbGFzcyBTZWxlbml1bVdlYkRyaXZlckFkYXB0ZXIgZXh0ZW5kcyBXZWJEcml2ZXJBZGFwdGVyIHtcbiAgc3RhdGljIFBST1RSQUNUT1JfUFJPVklERVJTID0gPFN0YXRpY1Byb3ZpZGVyW10+W3tcbiAgICBwcm92aWRlOiBXZWJEcml2ZXJBZGFwdGVyLFxuICAgIHVzZUZhY3Rvcnk6ICgpID0+IG5ldyBTZWxlbml1bVdlYkRyaXZlckFkYXB0ZXIoKDxhbnk+Z2xvYmFsKS5icm93c2VyKSxcbiAgICBkZXBzOiBbXVxuICB9XTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9kcml2ZXI6IGFueSkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBvdmVycmlkZSB3YWl0Rm9yKGNhbGxiYWNrOiAoKSA9PiBhbnkpOiBQcm9taXNlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLl9kcml2ZXIuY2FsbChjYWxsYmFjayk7XG4gIH1cblxuICBvdmVycmlkZSBleGVjdXRlU2NyaXB0KHNjcmlwdDogc3RyaW5nKTogUHJvbWlzZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5fZHJpdmVyLmV4ZWN1dGVTY3JpcHQoc2NyaXB0KTtcbiAgfVxuXG4gIG92ZXJyaWRlIGV4ZWN1dGVBc3luY1NjcmlwdChzY3JpcHQ6IHN0cmluZyk6IFByb21pc2U8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuX2RyaXZlci5leGVjdXRlQXN5bmNTY3JpcHQoc2NyaXB0KTtcbiAgfVxuXG4gIG92ZXJyaWRlIGNhcGFiaWxpdGllcygpOiBQcm9taXNlPHtba2V5OiBzdHJpbmddOiBhbnl9PiB7XG4gICAgcmV0dXJuIHRoaXMuX2RyaXZlci5nZXRDYXBhYmlsaXRpZXMoKS50aGVuKChjYXBzT2JqZWN0OiBhbnkpID0+IHtcbiAgICAgIGNvbnN0IGxvY2FsRGF0YToge1trZXk6IHN0cmluZ106IGFueX0gPSB7fTtcbiAgICAgIGZvciAoY29uc3Qga2V5IG9mIEFycmF5LmZyb20oKDxNYXA8c3RyaW5nLCBhbnk+PmNhcHNPYmplY3QpLmtleXMoKSkpIHtcbiAgICAgICAgbG9jYWxEYXRhW2tleV0gPSBjYXBzT2JqZWN0LmdldChrZXkpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGxvY2FsRGF0YTtcbiAgICB9KTtcbiAgfVxuXG4gIG92ZXJyaWRlIGxvZ3ModHlwZTogc3RyaW5nKTogUHJvbWlzZTxhbnk+IHtcbiAgICAvLyBOZWVkZWQgYXMgc2VsZW5pdW0td2ViZHJpdmVyIGRvZXMgbm90IGZvcndhcmRcbiAgICAvLyBwZXJmb3JtYW5jZSBsb2dzIGluIHRoZSBjb3JyZWN0IHdheSB2aWEgbWFuYWdlKCkubG9nc1xuICAgIHJldHVybiB0aGlzLl9kcml2ZXIuc2NoZWR1bGUoXG4gICAgICAgIG5ldyBDb21tYW5kKCdnZXRMb2cnKS5zZXRQYXJhbWV0ZXIoJ3R5cGUnLCB0eXBlKSxcbiAgICAgICAgJ1dlYkRyaXZlci5tYW5hZ2UoKS5sb2dzKCkuZ2V0KCcgKyB0eXBlICsgJyknKTtcbiAgfVxufVxuXG4vKipcbiAqIENvcHkgb2YgdGhlIGBDb21tYW5kYCBjbGFzcyBvZiB3ZWJkcml2ZXIgYXNcbiAqIGl0IGlzIG5vdCBleHBvc2VkIHZpYSBpbmRleC5qcyBpbiBzZWxlbml1bS13ZWJkcml2ZXIuXG4gKi9cbmNsYXNzIENvbW1hbmQge1xuICBwcml2YXRlIHBhcmFtZXRlcnNfOiB7W2tleTogc3RyaW5nXTogYW55fSA9IHt9O1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG5hbWVfOiBzdHJpbmcpIHt9XG5cbiAgZ2V0TmFtZSgpIHtcbiAgICByZXR1cm4gdGhpcy5uYW1lXztcbiAgfVxuXG4gIHNldFBhcmFtZXRlcihuYW1lOiBzdHJpbmcsIHZhbHVlOiBhbnkpIHtcbiAgICB0aGlzLnBhcmFtZXRlcnNfW25hbWVdID0gdmFsdWU7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBzZXRQYXJhbWV0ZXJzKHBhcmFtZXRlcnM6IHtba2V5OiBzdHJpbmddOiBhbnl9KSB7XG4gICAgdGhpcy5wYXJhbWV0ZXJzXyA9IHBhcmFtZXRlcnM7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBnZXRQYXJhbWV0ZXIoa2V5OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5wYXJhbWV0ZXJzX1trZXldO1xuICB9XG5cbiAgZ2V0UGFyYW1ldGVycygpIHtcbiAgICByZXR1cm4gdGhpcy5wYXJhbWV0ZXJzXztcbiAgfVxufVxuIl19