@angular/benchpress
Version:
Benchpress - a framework for e2e performance tests
73 lines • 7.66 kB
JavaScript
/**
* @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