gremlins.js

Post on 23-Aug-2014

167 Views

Category:

Internet

1 Downloads

Preview:

Click to see full reader

DESCRIPTION

Видео доклада по ссылке https://www.youtube.com/watch?v=zvZmBO1sRFE

TRANSCRIPT

Gremlins.js

Onikiienko Bogdan2GIS-Kiev

Видео доклада ТУТ

Monkey testing(Fuzzy)

security+blackbox+stress

Нанимать. У.

Что делать?

Автоматизация. У.

Android Monkey program

Прочие

● Monkey Fuzz testing● JBroFuzz

Viva Gremlins!

- javascript- desktop- server- mobile- NO selenium- contributing

Для начала

var horde = gremlins.createHorde()

horde.unleash();

// каждые 10 ms, 1000 раз

Сущности

Gremlin

Mogwai

Gizmo

Что такое гремлин?

var evt = document.createEvent("MouseEvents");

var clickType = config.randomizer.pick(config.clickTypes);

evt.initMouseEvent(clickType...);

targetElement.dispatchEvent(evt);

На что влияем

● clickTypes(['click', 'mouseover']); // the mouse event

types to trigger

● positionSelector(function() { // find a random pair of

coordinates to click });

● showAction(function(x, y) { // show the gremlin

activity on screen });

● canClick(function(element) { return true }); // to

limit where the gremlin can click

● maxNbTries(5); // How many times the gremlin must look

for a clickable element before quitting

● logger(loggerObject); // inject a logger

● randomizer(randomizerObject); // inject a randomizer

Свой гремлин

// новый гремлин для blur на активном элементе

horde.gremlin(function() {

document.activeElement.blur();

});

Кто такие Mogwai и Gizmo- alertMogwaiif (config.watchEvents.indexOf('confirm'))

- fpsMogwaiif (fps < 10)

- gizmoMogwai

if (nbErrors == config.maxErrors){horde.stop();}

До выпуска, после выпускаhorde.before(function startProfiler() {

console.profile('gremlins');

});

horde.after(function stopProfiler() {

console.profileEnd();

});

Стратегииhorde.strategy(gremlins.strategies

.delay(50)

.distribution([0.3, 0.3, 0.3, 0.1])

.nb(1000)

.randomizer(randomizerObject))

Выводvar customLogger = {

log: function(msg) { /* .. */ },

info: function(msg) { /* .. */ },

warn: function(msg) { /* .. */ },

error: function(msg) { /* .. */ }

};

horde.logger(customLogger);

или...

Minilogvar log = Minilog('2GIS')Minilog.enable();horde.logger(customLogger);

Давайте пробовать!

grunt-gremlins

Всё

top related