🐐 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';
|
'use strict';
|
||||||
|
|
||||||
var drool = require('drool');
|
var drool = require('drool');
|
||||||
var path = require('path');
|
|
||||||
var humanize = require('humanize');
|
|
||||||
var assert = require('assert');
|
var assert = require('assert');
|
||||||
var webdriver = drool.webdriver;
|
var webdriver = drool.webdriver;
|
||||||
var controlFlow = webdriver.promise.controlFlow();
|
var controlFlow = webdriver.promise.controlFlow();
|
||||||
|
var measureSnackbar = require('./snackbar');
|
||||||
|
var measureMenu = require('./menu');
|
||||||
var driver = drool.start({chromeOptions: 'no-sandbox'});
|
var driver = drool.start({chromeOptions: 'no-sandbox'});
|
||||||
var snackbarStamps = [];
|
var snackbarStamps = [];
|
||||||
var menuStamps = [];
|
var menuStamps = [];
|
||||||
|
|
||||||
function heapDiffPrinter(after, initial, i, title) {
|
for (var i = 0; i < 3; ++i) {
|
||||||
console.log(title + ' .. run: ' + (i + 1));
|
measureSnackbar(snackbarStamps, i, driver);
|
||||||
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));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function measureSnackbar(stamps, i) {
|
for (var i = 0; i < 3; ++i) {
|
||||||
drool.flow({
|
measureMenu(menuStamps, i, driver);
|
||||||
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);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
controlFlow.execute(function() {
|
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