@luminati-io/webdriverio8
Version:
Next-gen browser and mobile automation test framework for Node.js
42 lines • 2.54 kB
JavaScript
/**
* Throttles the CPU to emulate a slower processor.
*
* :::info
*
* Note that using the `throttleCPU` command requires support for Chrome DevTools protocol and e.g.
* can not be used when running automated tests in the cloud. Find out more in the
* [Automation Protocols](/docs/automationProtocols) section.
*
* :::
*
* <example>
:throttleCPU.js
it('should throttle the CPU', async () => {
await browser.throttleCPU(2) // 2x slowdown
});
* </example>
*
* @alias browser.throttleCPU
* @param {number} factor slowdown factor (1 is no throttle, 2 is 2x slowdown, etc)
* @type utility
*
*/
export async function throttleCPU(factor) {
if (typeof factor !== 'number') {
throw new Error('Invalid factor for "throttleCPU". Expected it to be a number (int)');
}
const failedConnectionMessage = 'No Puppeteer connection could be established which is required to use this command';
// Connect to Chrome DevTools
await this.getPuppeteer();
if (!this.puppeteer) {
throw new Error(failedConnectionMessage);
}
const pages = await this.puppeteer.pages();
if (!pages.length) {
throw new Error(failedConnectionMessage);
}
const client = await pages[0].target().createCDPSession();
// Set CPU throttling
await client.send('Emulation.setCPUThrottlingRate', { rate: factor });
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhyb3R0bGVDUFUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tbWFuZHMvYnJvd3Nlci90aHJvdHRsZUNQVS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNCRztBQUVILE1BQU0sQ0FBQyxLQUFLLFVBQVUsV0FBVyxDQUU3QixNQUFjO0lBRWQsSUFBSSxPQUFPLE1BQU0sS0FBSyxRQUFRLEVBQUUsQ0FBQztRQUM3QixNQUFNLElBQUksS0FBSyxDQUFDLG9FQUFvRSxDQUFDLENBQUE7SUFDekYsQ0FBQztJQUVELE1BQU0sdUJBQXVCLEdBQUcsb0ZBQW9GLENBQUE7SUFFcEgsNkJBQTZCO0lBQzdCLE1BQU0sSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFBO0lBQ3pCLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDbEIsTUFBTSxJQUFJLEtBQUssQ0FBQyx1QkFBdUIsQ0FBQyxDQUFBO0lBQzVDLENBQUM7SUFFRCxNQUFNLEtBQUssR0FBRyxNQUFNLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUE7SUFFMUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNoQixNQUFNLElBQUksS0FBSyxDQUFDLHVCQUF1QixDQUFDLENBQUE7SUFDNUMsQ0FBQztJQUVELE1BQU0sTUFBTSxHQUFHLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLGdCQUFnQixFQUFFLENBQUE7SUFFekQscUJBQXFCO0lBQ3JCLE1BQU0sTUFBTSxDQUFDLElBQUksQ0FBQyxnQ0FBZ0MsRUFBRSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFBO0FBQ3pFLENBQUMifQ==