browsertime
Version:
Get performance metrics from your web page using Browsertime.
67 lines (60 loc) • 1.55 kB
JavaScript
import merge from 'lodash.merge';
import yargs from 'yargs';
import { hideBin } from 'yargs/helpers';
import { Engine } from '../lib/core/engine/index.js';
import { configure as logging } from '../lib/support/logging.js';
async function runBrowsertime() {
let yargsInstance = yargs(hideBin(process.argv));
let parsed = yargsInstance
.env('BROWSERTIME')
.require(1, 'url')
.option('browser', {
alias: 'b',
default: 'chrome',
choices: ['chrome', 'firefox', 'edge'],
describe: 'Specify browser'
})
.option('connectivity.latency', {
default: undefined,
group: 'connectivity'
})
.count('verbose')
.alias('v', 'verbose');
const defaultConfig = {
iterations: 1,
connectivity: {
downstreamKbps: undefined,
upstreamKbps: undefined,
latency: undefined,
engine: 'external',
localhost: true
},
delay: 0,
video: false,
visualMetrics: false,
resultDir: '/tmp/browsertime',
screenshotParams: {
type: 'jpg'
},
chrome: {
ignoreCertificateErrors: true
}
};
const btOptions = merge({}, parsed.argv, defaultConfig);
logging(parsed.argv);
const engine = new Engine(btOptions);
try {
await engine.start();
const result = await engine.runMultiple(parsed.argv._);
for (let errors of result.errors) {
if (errors.length > 0) {
process.exitCode = 1;
}
}
} finally {
await engine.stop();
process.exit();
}
}
await runBrowsertime();