🐐 Split up memory tests
parent
285e45d993
commit
49d775092c
|
@ -0,0 +1,24 @@
|
|||
var path = require('path');
|
||||
var drool = require('drool');
|
||||
var heapDiffPrinter = require('./utils.js').heapDiffPrinter;
|
||||
var webdriver = drool.webdriver;
|
||||
|
||||
module.exports = function(stamps, i, driver) {
|
||||
drool.flow({
|
||||
setup: function() {
|
||||
driver.get('file://' + path.join(__dirname, '../../dist/components/menu/demo.html'));
|
||||
},
|
||||
action: function() {
|
||||
driver.findElement(webdriver.By.css('#demo-menu-lower-left')).click();
|
||||
driver.sleep(1000);
|
||||
driver.findElement(webdriver.By.css('#demo-menu-lower-left')).click();
|
||||
},
|
||||
beforeAssert: function() {
|
||||
driver.sleep(1000);
|
||||
},
|
||||
assert: function(after, initial) {
|
||||
heapDiffPrinter(after, initial, i, 'menu');
|
||||
stamps.push([after.jsEventListeners, initial.jsEventListeners]);
|
||||
}
|
||||
}, driver);
|
||||
};
|
|
@ -0,0 +1,24 @@
|
|||
var path = require('path');
|
||||
var drool = require('drool');
|
||||
var heapDiffPrinter = require('./utils.js').heapDiffPrinter;
|
||||
|
||||
module.exports = function(stamps, i, driver) {
|
||||
drool.flow({
|
||||
setup: function() {
|
||||
driver.get('file://' + path.join(__dirname, '../../dist/components/snackbar/demo.html'));
|
||||
},
|
||||
action: function() {
|
||||
driver.executeScript('document.querySelector("#demo-snackbar-example").MaterialSnackbar.showSnackbar({message: "🐐", timeout: 300})');
|
||||
driver.sleep(400);
|
||||
},
|
||||
beforeAssert: function() {
|
||||
driver.sleep(400);
|
||||
},
|
||||
assert: function(after, initial) {
|
||||
heapDiffPrinter(after, initial, i, 'snackbar');
|
||||
stamps.push([after.jsEventListeners, initial.jsEventListeners]);
|
||||
}
|
||||
}, driver);
|
||||
}
|
||||
|
||||
|
|
@ -1,67 +1,21 @@
|
|||
'use strict';
|
||||
|
||||
var drool = require('drool');
|
||||
var path = require('path');
|
||||
var humanize = require('humanize');
|
||||
var assert = require('assert');
|
||||
var webdriver = drool.webdriver;
|
||||
var controlFlow = webdriver.promise.controlFlow();
|
||||
var measureSnackbar = require('./snackbar');
|
||||
var measureMenu = require('./menu');
|
||||
var driver = drool.start({chromeOptions: 'no-sandbox'});
|
||||
var snackbarStamps = [];
|
||||
var menuStamps = [];
|
||||
|
||||
function heapDiffPrinter(after, initial, i, title) {
|
||||
console.log(title + ' .. run: ' + (i + 1));
|
||||
console.log('node delta: ' + (after.nodes - initial.nodes));
|
||||
console.log('heap delta: ' + humanize.filesize(after.jsHeapSizeUsed - initial.jsHeapSizeUsed));
|
||||
console.log('event listener delta: ' + (after.jsEventListeners - initial.jsEventListeners));
|
||||
for (var i = 0; i < 3; ++i) {
|
||||
measureSnackbar(snackbarStamps, i, driver);
|
||||
}
|
||||
|
||||
function measureSnackbar(stamps, i) {
|
||||
drool.flow({
|
||||
setup: function() {
|
||||
driver.get('file://' + path.join(__dirname, '../../dist/components/snackbar/demo.html'));
|
||||
},
|
||||
action: function() {
|
||||
driver.executeScript('document.querySelector("#demo-snackbar-example").MaterialSnackbar.showSnackbar({message: "🐐", timeout: 700})');
|
||||
driver.sleep(1000);
|
||||
},
|
||||
beforeAssert: function() {
|
||||
driver.sleep(1000);
|
||||
},
|
||||
assert: function(after, initial) {
|
||||
heapDiffPrinter(after, initial, i, 'snackbar');
|
||||
stamps.push([after.jsEventListeners, initial.jsEventListeners]);
|
||||
}
|
||||
}, driver);
|
||||
}
|
||||
|
||||
function measureMenuFlow(stamps, i) {
|
||||
drool.flow({
|
||||
setup: function() {
|
||||
driver.get('file://' + path.join(__dirname, '../../dist/components/menu/demo.html'));
|
||||
},
|
||||
action: function() {
|
||||
driver.findElement(webdriver.By.css('#demo-menu-lower-left')).click();
|
||||
driver.sleep(1000);
|
||||
driver.findElement(webdriver.By.css('#demo-menu-lower-left')).click();
|
||||
},
|
||||
beforeAssert: function() {
|
||||
driver.sleep(1000);
|
||||
},
|
||||
assert: function(after, initial) {
|
||||
heapDiffPrinter(after, initial, i, 'menu');
|
||||
stamps.push([after.jsEventListeners, initial.jsEventListeners]);
|
||||
}
|
||||
}, driver);
|
||||
}
|
||||
|
||||
for (var i = 0; i < 5; ++i) {
|
||||
measureSnackbar(snackbarStamps, i);
|
||||
}
|
||||
|
||||
for (var i = 0; i < 5; ++i) {
|
||||
measureMenuFlow(menuStamps, i);
|
||||
for (var i = 0; i < 3; ++i) {
|
||||
measureMenu(menuStamps, i, driver);
|
||||
}
|
||||
|
||||
controlFlow.execute(function() {
|
||||
|
|
|
@ -0,0 +1,10 @@
|
|||
var humanize = require('humanize');
|
||||
|
||||
module.exports = {
|
||||
heapDiffPrinter: function(after, initial, i, title) {
|
||||
console.log(title + ' .. run: ' + (i + 1));
|
||||
console.log('node delta: ' + (after.nodes - initial.nodes));
|
||||
console.log('heap delta: ' + humanize.filesize(after.jsHeapSizeUsed - initial.jsHeapSizeUsed));
|
||||
console.log('event listener delta: ' + (after.jsEventListeners - initial.jsEventListeners));
|
||||
}
|
||||
};
|
Loading…
Reference in New Issue