tm-perfomance-check
Version:
Check page perfomance metrics on test machine
99 lines (98 loc) • 3.14 kB
JavaScript
;
require('babel-polyfill');
var _commandLineArgs = require('command-line-args'),
_commandLineArgs2 = _interopRequireDefault(_commandLineArgs);
function _interopRequireDefault(a) {
return a && a.__esModule ? a : { default: a };
}
function _asyncToGenerator(a) {
return function() {
var b = a.apply(this, arguments);
return new Promise(function(a, c) {
function d(e, f) {
try {
var g = b[e](f),
h = g.value;
} catch (a) {
return void c(a);
}
return g.done
? void a(h)
: Promise.resolve(h).then(
function(a) {
d('next', a);
},
function(a) {
d('throw', a);
},
);
}
return d('next');
});
};
}
var SocketHub = require('socket.io-client'),
Spinner = require('cli-spinner').Spinner,
config = require('../config/config.json'),
optionDefinitions = [
{ name: 'verbose', alias: 'v', type: String },
{ name: 'fps', type: String },
{ name: 'dom', type: String },
{ name: 'load', type: String },
{ name: 'error', type: String },
{ name: 'url', alias: 'u', type: String },
{ name: 'serviceURL', alias: 's', type: String, defaultValue: 'http://192.168.44.253:3000/' },
],
options = (0, _commandLineArgs2.default)(optionDefinitions);
options.serviceURL !== void 0 && (config.serviceURL = options.serviceURL),
options.url === void 0 && (void 0, process.exit(5));
var spinner = new Spinner('Testing url performance: %s');
spinner.setSpinnerString('|/-\\'), spinner.start();
function logFPS(a) {
Math.ceil;
a.framesPerSec_raf < config.framesPerSec_raf
? (void 0, options.error !== void 0 && process.exit(2))
: void 0;
}
function logLoad(a) {
a.loadTime > config.loadTime ? (void 0, options.error !== void 0 && process.exit(3)) : void 0;
}
function logDOM(a) {
a.domReadyTime > config.domReadyTime
? (void 0, options.error !== void 0 && process.exit(4))
: void 0;
}
_asyncToGenerator(
regeneratorRuntime.mark(function a() {
var b;
return regeneratorRuntime.wrap(
function(a) {
for (;;)
switch ((a.prev = a.next)) {
case 0:
(b = SocketHub(config.serviceURL)),
b.on('connect', function() {
b.emit('url', options.url, function(a) {
spinner.stop(),
void 0,
a.framesPerSec_raf === void 0 && (void 0, process.exit(1)),
options.verbose !== void 0 && (void 0, process.exit(0)),
options.fps === void 0
? options.load === void 0
? options.dom === void 0 ? (logFPS(a), logLoad(a), logDOM(a)) : logDOM(a)
: logLoad(a)
: logFPS(a),
process.exit(0);
});
});
case 2:
case 'end':
return a.stop();
}
},
a,
void 0,
);
}),
)();