🐐 Split up memory tests

master
Sam Saccone 2015-09-25 20:54:14 -07:00
parent 285e45d993
commit 49d775092c
4 changed files with 64 additions and 52 deletions

24
test/memory/menu.js Normal file
View File

@ -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);
};

24
test/memory/snackbar.js Normal file
View File

@ -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);
}

View File

@ -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() {

10
test/memory/utils.js Normal file
View File

@ -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));
}
};